※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');
关于采用matlab进行指定非线性方程拟合的问题
最新推荐文章于 2022-09-11 19:43:12 发布
本文介绍了如何使用MATLAB的优化工具箱进行非线性曲线拟合。具体涉及FMINBND、FMINSEARCH函数解决单变量和多变量非线性最小化问题,以及LSQNONLIN和LSQCURVEFIT函数在非线性数据拟合中的应用。通过实例展示了如何编写m文件进行拟合并评估结果,以及MATLAB基本拟合界面的功能。
摘要由CSDN通过智能技术生成