范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

MATLAB的lsqnonlin函数拟合非线性式子中的未知参数

  往往在实际问题中都存在exp(x)、lnx、sinx等多种函数组合的非线性经验公式。对此我们就可以通过lsqnonlin函数进行求解,该函数的方法被称为非线性最小二乘,损失函数一样,只不过类似于优化算法,给定参数初始值,然后优化参数,非线性最小二乘模型如下,即目标函数。
  1. lsqnonlin语法
  lsqnonlin函数用于求解非线性最小二乘(非线性数据拟合)问题。 语法 x=lsqnonlin(fun,x0) x=lsqnonlin(fun,x0,lb,ub) x=lsqnonlin(fun,x0,lb,ub,options) x=lsqnonlin(problem) [x,resnorm]=lsqnonlin(___) [x,resnorm,residual,exitflag,output]=lsqnonlin(___) [x,resnorm,residual,exitflag,output,lambda,jacobian]=lsqnonlin(___) lb、ub为解向量的下界和上界lb≤a≤ub,若没有指定界,则lb=[ ],ub=[ ]; options为指定的优化参数; fun为待拟合函数,计算x处拟合函数值,其定义为 function F = myfun(a,xdata) resnorm=sum ((fun(a,xdata)-ydata).^2),即在a处残差的平方和; residual=fun(a,xdata)-ydata,即在x处的残差; exitflag为终止迭代的条件; output为输出的优化信息; lambda为解x处的Lagrange乘子;jacobian为解x处拟合函数fun的jacobian矩阵。
  2. 拟合简单指数
  对数据进行简单的指数衰减曲线拟合。
  从添加了噪声的指数衰减模型生成数据。模型是:
  y=exp(−1.3t)+ε
  其中 t 的范围是从 0 到 3,ε 是均值为 0、标准差为 0.05 的正态分布噪声。
  问题表述为:给定数据(d、y),求出与数据拟合最佳的指数衰减率。
  创建一个匿名函数,该函数接受指数衰减率 r 的值作为输入,并返回采用该衰减率的模型与数据之差组成的向量。
  程序clc; clear all; close all; rng default % rng("default") 将 rand、randi 和 randn 使用的随机数生成器的设置重置为其默认值。 %这样,会生成相同的随机数,就好像您重新启动了 MATLAB。默认设置是种子为 0 的梅森旋转生成器。 d = linspace(0,3); y = exp(-1.3*d) + 0.05*randn(size(d)); fun = @(r) exp(-d*r)-y; %找到最佳衰减率的值。任意选择一个初始估计值 x0 = 4。 x0 = 4; x = lsqnonlin(fun,x0) %绘制数据和最佳拟合指数曲线。 plot(d,y,"ko",d,exp(-x*d),"b-") legend("原始数据","拟合数据") xlabel("t") ylabel("exp(-tx)")
  运行结果Local minimum possible.  lsqnonlin stopped because the final change in the sum of squares relative to  its initial value is less than the value of the function tolerance.    x =      1.2645
  3. 拟合具有边界约束的问题
  当某些拟合参数有边界时,找到最佳拟合模型。找到合适的中心化参数 b 和缩放参数 a,以便拟合以下函数:a*exp(−t)exp(−exp(−(t−b)))。
  程序clc; clear all; close all; %最好地拟合以下标准正态密度分布: %创建数据点组成的向量 t,以及在这些点上的对应正态密度。 t = linspace(-4,4); y = 1/sqrt(2*pi)*exp(-t.^2/2); %创建一个缩放参数 a 为 x(1) 且中心化参数 b 为 x(2) 的函数,来计算中心化并缩放的函数与正态 y 之间的差。 fun = @(x)x(1)*exp(-t).*exp(-exp(-(t-x(2)))) - y; %从 x0 = [1/2,0] 开始寻找最佳拟合,缩放参数 a 的值介于 1/2 和 3/2 之间,中心化参数 b 的值介于 -1 和 3 之间。 lb = [1/2,-1]; ub = [3/2,3]; x0 = [1/2,0]; x = lsqnonlin(fun,x0,lb,ub) %绘制这两个函数来查看拟合的质量。 plot(t,y,"r-",t,fun(x)+y,"b-") xlabel("t") legend("原始数据函数曲线","拟合函数曲线")
  运行结果Local minimum possible.  lsqnonlin stopped because the final change in the sum of squares relative to  its initial value is less than the value of the function tolerance.    x =      0.8231   -0.2444
  4. 检查求解过程
  在求解过程发生时和发生后都对其进行检查(通过将 Display 选项设置为 "iter" 在发生时进行检查,通过检查 output 结构体在发生后进行检查)。
  假设您有观测时间数据 xdata 和观测响应数据 ydata,并且要求得参数 x(1) 和 x(2) 以拟合以下形式的模型:ydata=x(1)exp(x(2)xdata)。
  程序 clc; clear all; close all; % 输入观测时间和响应。 xdata = ...  [0.9 1.5 13.8 19.8 24.1 28.2 35.2 60.3 74.6 81.3]; ydata = ...  [455.2 428.6 124.1 67.3 43.2 28.1 13.1 -0.4 -1.3 -1.5]; % 创建简单的指数衰减模型。该模型计算预测值和观测值之间的差组成的向量。  fun = @(x)x(1)*exp(x(2)*xdata)-ydata; % 以 x0 = [100,-1] 为起点拟合模型。通过将 Display 选项设置为 "iter" 来检查求解过程。获取 output 结构体以获取有关求解过程的详细信息。 x0 = [100,-1]; options = optimoptions("lsqnonlin","Display","iter","PlotFcn","optimplotx"); [x,resnorm,residual,exitflag,output] = lsqnonlin(fun,x0,[],[],options) %Algorithm在 "trust-region-reflective"(默认值)和 "levenberg-marquardt" 之间进行选择。 options.Algorithm = "levenberg-marquardt"; [x1,resnorm1,residual1,exitflag1,output1] = lsqnonlin(fun,x0,[],[],options)
  运行结果                                      Norm of      First-order   Iteration  Func-count     f(x)          step          optimality      0          3          359677                      2.88e+04 Objective function returned Inf; trying a new point...      1          6          359677        11.6976       2.88e+04            2          9          321395            0.5       4.97e+04            3         12          321395              1       4.97e+04            4         15          292253           0.25       7.06e+04            5         18          292253            0.5       7.06e+04            6         21          270350          0.125       1.15e+05            7         24          270350           0.25       1.15e+05            8         27          252777         0.0625       1.63e+05            9         30          252777          0.125       1.63e+05           10         33          243877        0.03125       7.48e+04           11         36          243660         0.0625        8.7e+04           12         39          243276         0.0625          2e+04           13         42          243174         0.0625       1.14e+04           14         45          242999          0.125        5.1e+03           15         48          242661           0.25       2.04e+03           16         51          241987            0.5       1.91e+03           17         54          240643              1       1.04e+03           18         57          237971              2       3.36e+03           19         60          232686              4       6.04e+03           20         63          222354              8        1.2e+04           21         66          202592             16       2.25e+04           22         69          166443             32       4.05e+04           23         72          106320             64       6.68e+04           24         75         28704.7            128       8.31e+04           25         78         89.7947        140.674       2.22e+04           26         81         9.57381        2.02599            684           27         84         9.50489      0.0619926           2.27           28         87         9.50489    0.000462262         0.0114       Local minimum possible. lsqnonlin stopped because the final change in the sum of squares relative to  its initial value is less than the value of the function tolerance.  x =   498.8309   -0.1013 resnorm =     9.5049 residual =     0.1817   -0.0610   -0.7628   -0.1196    0.2659    0.5979    1.0261    1.5124    1.5615    1.6327 exitflag =       3 output =     包含以下字段的 struct:      firstorderopt: 0.0114        iterations: 28         funcCount: 87      cgiterations: 0         algorithm: "trust-region-reflective"          stepsize: 4.6226e-04           message: "↵Local minimum possible.↵↵lsqnonlin stopped because the final change in the sum of squares relative to ↵its initial value is less than the value of the function tolerance.↵↵↵↵Optimization stopped because the relative sum of squares (r) is changing↵by less than options.FunctionTolerance = 1.000000e-06.↵↵"                                          First-Order                    Norm of   Iteration  Func-count    Residual       optimality      Lambda           step      0           3          359677        2.88e+04         0.01 Objective function returned Inf; trying a new point...      1          13          340761        3.91e+04       100000       0.280777      2          16          304661        5.97e+04        10000       0.373146      3          21          297292        6.55e+04        1e+06      0.0589933      4          24          288240        7.57e+04       100000      0.0645444      5          28          275407        1.01e+05        1e+06      0.0741266      6          31          249954        1.62e+05       100000       0.094571      7          36          245896        1.35e+05        1e+07      0.0133606      8          39          243846        7.26e+04        1e+06     0.00944311      9          42          243568        5.66e+04       100000     0.00821622     10          45          243424        1.61e+04        10000     0.00777936     11          48          243322         8.8e+03         1000      0.0673933     12          51          242408         5.1e+03          100       0.675209     13          54          233628        1.05e+04           10        6.59804     14          57          169089        8.51e+04            1        54.6992     15          60         30814.7        1.54e+05          0.1        196.939     16          63         147.496           8e+03         0.01        129.795     17          66         9.51503             117        0.001        9.96069     18          69         9.50489          0.0714       0.0001       0.080486     19          72         9.50489        4.96e-05        1e-05    5.07028e-05 Local minimum possible. lsqnonlin stopped because the relative size of the current step is less than the value of the step size tolerance.  x1 =   498.8309   -0.1013 resnorm1 =     9.5049 residual1 =     0.1817   -0.0610   -0.7628   -0.1196    0.2659    0.5979    1.0261    1.5124    1.5615    1.6327 exitflag1 =       4 output1 =    包含以下字段的 struct:        iterations: 19         funcCount: 72          stepsize: 5.0703e-05      cgiterations: []     firstorderopt: 4.9629e-05         algorithm: "levenberg-marquardt"           message: "↵Local minimum possible.↵lsqnonlin stopped because the relative size of the current step is less than↵the value of the step size tolerance.↵↵↵↵Optimization stopped because the relative norm of the current step, 1.016433e-07,↵is less than options.StepTolerance = 1.000000e-06.↵↵"
  5.属性设置
  优化选项,指定为 optimoptions 的输出或 optimset 返回的结构体。 MaxIterations 允许的迭代最大次数,为正整数。默认值为 400。 OptimalityTolerance 一阶最优性的终止容差(正标量)。默认值为 1e-6。 PlotFcn 对算法执行过程中的各种进度测量值绘图,可以选择预定义的绘图,也可以自行编写绘图函数。传递名称、函数句柄或者由名称或函数句柄组成的元胞数组。对于自定义绘图函数,传递函数句柄。默认值是"无"([]): "optimplotx" 绘制当前点。 "optimplotfunccount" 绘制函数计数。 "optimplotfval" 绘制函数值。 "optimplotresnorm" 绘制残差范数。 "optimplotstepsize" 绘制步长大小。 "optimplotfirstorderopt" 绘制一阶最优性度量。
  参考内容
  [1] https://ww2.mathworks.cn/help/optim/ug/lsqnonlin.html
  作者:郭志龙
  编辑:郭志龙
  校对:郭志龙

开拍续集?傲娇与章经结局里浴火凤凰的真正意思!由陈豪龚嘉欣江嘉敏周嘉洛主演的傲娇与章经已经结局!该剧致敬1984年梁朝伟版鹿鼎记,在剧情上进行深挖加工。在香港跨平台收视率一直徘徊在22点左右,内地某酷独播水花不大。但讨论度和评未拆封茶叶,放了45年还能喝吗?经验丰富的行家3句话说明白对于茶叶,很多人都不是很了解,虽然平时也喝,但只要问关于茶叶基础的问题,大部分人都回答不出来,甚至有人连茶叶有没有保质期都不知道。笔者前段时间就在网上看到了这样一条视频,是一位男子又一湘西州新记录鸟类!琵嘴鸭现身凤凰湿地保护区红网时刻新闻3月3日讯(通讯员陈晨甜郑小君向玉国)近日,生物多样性调查小组成员在凤凰湿地保护区长潭岗景区范围时发现几只黑水鸡小在水中浮游,其中夹杂有一只之前未观测到的水鸟。经过专家原来这就是凤凰传奇不解散的真相娱乐圈里有许多男女合唱组合,这些年相对火热,走势也最好的便是凤凰传奇,由杨魏玲花曾毅组成。他们两人最早时候,一直被人误认为是夫妻两个,但实际上并不是,他们只是好朋友,各自有各自的家特斯拉潮州事故鉴定结果出炉驾驶者踩错踏板?去年11月5日,特斯拉潮州事故造成2死3伤的严重后果,而这起事故也将特斯拉刹车系统是否可靠的质疑推向极致。4个月之后,该起事故的鉴定结果出炉,负责鉴定的第三方机构表示不会公布鉴定结去年年末我国劳动年龄人口降至8。76亿人,青年劳动力稳中有增新京报讯(记者姜慧梓)2022年我国人口60年来首次负增长,造成外界对劳动力供给以及经济发展动力的担忧。3月2日,在权威部门话开局新闻发布会上,人社部副部长俞家栋表示,我国劳动年龄女人到孟晚舟这个年龄,不管有没有发福,仪态和打扮效果都很直观相信很多人都听过身材好才是王道,拥有衣架子好身材,似乎才拿到了通往时尚圈的门票,但对于那些年纪大了的女人,事实真的如此吗?当然不是,女人到了孟晚舟这个年龄,不管有没有发福,仪态和打一带一路旗舰项目巡礼之二十丨拉各斯轻轨蓝线一期通车十余年铸造中非民心工程中国智造大力畅通堵城癸卯兔年正月初三,即新历1月24日,在西非第一大城市拉各斯的商业中心玛瑞纳,一列轻轨列车疾驰而过,天蓝色的车身与海景相互映衬。从车厢里往外看,一片开阔的海景尽收眼底,水波潋滟惹人醉3月3日,由于市场采购兴趣持续,海运铁矿石价格上涨13月3日,由于市场采购兴趣持续,海运铁矿石价格上涨。普氏62指数涨0。2至127。45美元干吨。2当天,淡水河谷131。7美元干吨售出17万吨BRBF,装期4月9日至18日,高品刷视频大受启发的话妇产科男医生脱口秀之妇科二三事1。妇产科男医生脱口秀之妈妈的辛苦和伟大围产期抑郁症男人和女人之间的不同,非常奇妙,男孩小的时候,都不爱带女孩玩,觉得他们柔弱,爱哭,怕脏,还爱打小报告。女人是弱的,男人是强的,无妈妈我想对你说我在头条对她说亲爱的妈妈我想对您说一些尘封已久的心里话。这些话一直潜藏在我的心底,但我一直没有勇气告诉您。今天,我想把它们写下来,因为我知道您一定会看到它们,而且我希望您能够明白我
三千公里直径却有比地球更大海洋,欧罗巴一号看到的生物是真的?人类如今探索宇宙有两个目标,第一是寻找类似地球的宜居星球,第二则是找寻宇宙中的其他生命。对于外星生命的模样我们总是有着诸多幻想,而受到克苏鲁神话的影响,许多外星人都长得与章鱼十分相用ES实现拼音搜索策略构建拼音索引Step1在ES中安装pinyin分词器安装步骤详见网上的众多介绍,这里不赘述,链接。pinyin的开源见GitHubmedclelasticsearchanalysi浪姐背后的Ta,才是真正的实力派近期,IT界浪姐Eva成功出圈,带火了她背后的实力派经纪人亿万克。作为中国企业500强研祥集团旗下专注于服务器和存储等数据中心产品及解决方案的高新技术企业,亿万克是如何在强者林立的鲸J3上手体验,不吹不黑,鲸灵托管扫拖一体,这下彻底解放双手云鲸又又又推出新机了,去年差不多这个时候我入手了人生的第一台扫拖一体机云鲸J2,使用了一年,确确实实云鲸J2给家居清洁带来了不少便捷,而且清洁能力也是毋庸置疑的。不过在体验中发现云无全面不灵动中兴Axon30S官宣9月21日上午10点,中兴官方宣布新机Axon30S将于9月26日正式开售。从宣传海报中我们可以看到,该机再次采用了屏下摄像全面屏设计,屏占比极高,带来了完整的视觉观感。系列前作中真白菜价!84元抢购储侠M9256GB固态硬盘储侠M9SATA固态硬盘256GB(SATA3。0)原价99元,领取满99减15元活动,到手价仅需84元,性价比非常不错,堪称老电脑升级神器,有需要的小伙伴儿可以买起来了。该硬盘采炫彩轻便,iWALKAmourDuoCandy糖果耳机体验无线蓝牙耳机越来越普及,技术也越来越成熟。无线蓝牙耳机可以让用户摆脱线缆的束缚,更加自由无束缚,同时不损失音质的需求,功能又更加丰富,无论是听音乐玩游戏,还是语音通话等多场景都可以韩国要造双发喷气运输机,航程不输运20,中国可效仿在2020年初运20运输机已经展现出实力,因为在军队支援医疗队前往武汉的过程中,中国罕见的动用了大批运20战略运输机,而在随后的一段时间运20运输机也开始出现了密集出国运送物资的行秦安,来自中国台湾省,如今却代表韩国队打世界杯!这是为何?明天下午的15点30分,中国女篮将打响2022年女篮世界杯的首秀,对手将是老对手韩国女篮。这是老对手了,不管是男队还是女队,我想这都是不需要动员的较量。从两队的排名实力对比来看,我撞见特斯拉自动遛狗画面网友惊呼这样合法吗?有美国网友偶然目击,一只狗狗竟独自被放在自动驾驶中的电动车特斯拉上。(图撷取自Reddit)电动车龙头特斯拉(Tesla),其车上有着全自动辅助驾驶系统(FSD)的功能,但该功能推脸上毛孔粗大?知道这几点,变成0毛孔真的不难毛孔粗大怎么办?小编来教你从护肤和化妆两个方面轻松解决,不走弯路还省钱,全程干货,言简意赅,首先拿出一面镜子,一臂的距离,现在还看得到的毛孔它才算是毛孔粗大毛孔变大的原因是因为出油