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

※1。优化工具箱的利用
<wbr>函 数 <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>描述<br> LSQLIN <wbr><wbr><wbr><wbr>有约束线性最小二乘优化<br> LSQNONNEG <wbr>非负约束线性最小二乘优化问题<br> 当有约束问题存在的时候,应该采用上面的方法代替Polyfit与反斜线(\)。具体例子请参阅优化工具箱文档中的相应利用这两个函数的例子。</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
d. <wbr>非线性曲线拟合<br><wbr>利用MATLAB的内建函数<br> 函数名 <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>描述<br> FMINBND <wbr><wbr><wbr><wbr>只解决单变量固定区域的最小值问题<br> FMINSEARCH 多变量无约束非线性最小化问题(Nelder-Mead 方法)。<br> 下面给出一个小例子展示一下如何利用FMINSEARCH<br> 1. 首先生成数据<br> &gt;&gt; t=0:.1:10; <wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
>> t=t(:); <wbr><br> &gt;&gt; Data=40*exp(-.5*t)+rand(size(t)); <wbr>% 将数据加上随机噪声<br> 2.写一个m文件,以曲线参数作为输入,以拟合误差作为输出 <wbr><br><wbr>function sse=myfit(params,Input,Actural_Output)<br><wbr>A=params(1);<br><wbr>lamda=params(2);<br> Fitted_Curve=A.*exp(-lamda*Input);<br> Error_Vector=Fitted_Curve-Actural_Output;<br> %当曲线拟合的时候,一个典型的质量评价标准就是误差平方和<br> sse=sum(Error_Vector.^2);<br> %当然,也可以将sse写作:sse=Error_Vector(:)*Error_Vector(:);</wbr></wbr></wbr></wbr></wbr></wbr>
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'); <wbr><br><wbr>Estimates将是一个包含了对原数据集进行估计的参数值的向量。 <wbr></wbr></wbr></wbr>
附图见后面:


关于采用matlab进行指定非线性方程拟合的问题(1)
FMINSEARCH通常能够用来解决不连续情况,特别是如果他们不出现在解的附近的时候。它得到的通常也是局部解。FMINSEARCH只能够最小化实数值(也就是说,解的域必须只能包括实数,函数的输出只能够为实数值)。当感兴趣的是复数变量的域的时候,他们必须被分割为实部与虚部。
※2.MATLAB的FIGURE窗口:最基本的拟合界面与数据统计工具
MATLAB通过基本的拟合界面也支持基本曲线拟合。利用这个界面,你可以快速地在简单易用的环境中实现许多基本的曲线拟合。这个界面可以实现以下功能:
a. 通过比样条插值(spline interpolant)、hermite 插值、或者是高达10阶的多项式插值实现数据的拟合;
b. 对给定数据同时实现多样插值的绘制;
c. 绘制残差图;
d. 检查拟合结果的残差的数值;
e. 通过内插值或者外推插值评价一个拟合结果;
f. 对拟合结果和残差的模进行图形绘制;
g. 将拟合结果保存入MATLAB工作空间。
开发你的拟合应用的时候,你可以通过基本拟合(Basic Fitting)界面,也可以通过命令行函数,也可以同时作用。你可以通过基本拟合界面只能够实现2-D数据的拟合。然而,如果你用subplot绘制多个数据集,只要有至少一个数据集是2D的,那么就可以用基本拟合界面。
可以通过如下步骤激活基本拟合界面:
1. 绘制数据;
2. 从figure窗口的 Tools 菜单条下面选择Basic Fitting 菜单项;
有关Basic Fitting界面的更多信息,请查阅MATLAB帮助文档的相应部分。
注意:对于HP,IBM以及SGI平台,MATLAB6.0(R12.0)以及MATLAB6.1(R12.1)的基本拟合界面不受支持。
数据统计界面可以用来对图形中的每个数据集进行统计量的计算。可以通过如下步骤将数据统计界面激活:
1. 制数据;
2. 从figure窗口的 Tools 菜单条下面选择Data Statistics 菜单项; <wbr><wbr><br></wbr></wbr>

你可能感兴趣的:(matlab)