关于采用matlab进行指定非线性方程拟合的问题

※1。优化工具箱的利用

 a.线性拟合
   函数名                            描述
 LSQLIN            有约束线性最小二乘优化
 LSQNONNEG  非负约束线性最小二乘优化问题
       当有约束问题存在的时候,应该采用上面的方法代替Polyfit与反斜线(\)。具体例子请参阅优化工具箱文档中的相应利用这两个函数的例子。


 d.  非线性曲线拟合
   函数名                           描述
 FMINBND        只解决单变量固定区域的最小值问题
 FMINSEARCH 多变量无约束非线性最小化问题(Nelder-Mead 方法)。
      下面给出一个小例子展示一下如何利用FMINSEARCH
 

1.首先生成数据
       >> t=0:.1:10;
       >> t=t(:);
       >> Data=40*exp(-.5*t)+rand(size(t));  % 将数据加上随机噪声
 2.写一个m文件,以曲线参数作为输入,以拟合误差作为输出
 function sse=myfit(params,Input,Actural_Output)
     A=params(1);
     lamda=params(2);
     Fitted_Curve=A.*exp(-lamda*Input);
     Error_Vector=Fitted_Curve-Actural_Output;
     %当曲线拟合的时候,一个典型的质量评价标准就是误差平方和
     sse=sum(Error_Vector.^2);
     %当然,也可以将sse写作:sse=Error_Vector(:)*Error_Vector(:);
 3.调用FMINSEARCH
     >> Strarting=rand(1,2);
     >> options=optimset('Display','iter');
     >> Estimates=fiminsearch(@myfit,Strarting,options,t,Data);
     >> plot(t,Data,'*');
     >> hold on
     >> plot(t,Estimates(1)*exp(-Estimates(2)*t),'r');

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值