关于采用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>
附图见后面:


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>
当前非线性拟合和多元拟合的工具较少,这是针对常用的拟合算法,开发的一款数据拟合为主的软件。包括线性拟合的各种算法,非线性拟合的各种算法,以及多元拟合的各种算法。其中提供了很多非线性方程的模型,以满足不同的需求,也可以制定自己所需要的指定非线性方程模型的,采用最先进的初始值估算算法,无需初始值就可以拟合自己想要的非线性方程模型各个模块的介绍如下。 1.线性拟合算法模块 根据最小二乘拟合算法,对输入的数据进行变量指定次方的拟合。同时可对自变量或因变量进行自然对数和常用对数的转换后再拟合。根据实际情况,开发了单调性拟合以针对各种定量分析的用途。同时开发了,针对一组数据,得到最高相关系数的自动拟合功能,由程序自动选择拟合次数以及自变量和因变量的数据格式。 2.非线性拟合算法模块 根据非线性方程的特点,开发了最先进的智能初始值估算算法,配合LM迭代算法,进行非线性方程拟合。只需要输入自变量和因变量,就可以拟合出所需要的非线性方程拟合相关系数高,方便快捷。并借助微粒群算法,开发了基于微粒群的智能非线性拟合算法,拟合方程的相关系数相当高,甚至会出现过拟合现象。 3.多元拟合算法模块 根据最小二乘算法的原理开发了多元线性拟合算法,同时开发了能够指定变元次数的高次多元线性拟合。由于多元变量的情况下函数关系复杂,采用高次多元线性拟合能有效提高拟合效果而不会出现过拟合现象。同时针对每个变元可能最合适的拟合次数不一定都一样,开发了自适应高次多元拟合算法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值