关于采用matlab进行指定非线性方程拟合的问题(1)
来源:互联网 发布:如何看淘宝买家信誉 编辑:程序博客网 时间:2024/05/22 03:35
※1。优化工具箱的利用
LSQLIN
LSQNONNEG
当有约束问题存在的时候,应该采用上面的方法代替Polyfit与反斜线(\)。具体例子请参阅优化工具箱文档中的相应利用这两个函数的例子。
d. 非线性曲线拟合
利用MATLAB的内建函数
函数名描述
FMINBND只解决单变量固定区域的最小值问题
FMINSEARCH 多变量无约束非线性最小化问题(Nelder-Mead 方法)。
下面给出一个小例子展示一下如何利用FMINSEARCH
1. 首先生成数据
>> t=0:.1:10;
函数名
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(:);
>> Data=40*exp(-.5*t)+rand(size(t));
2.写一个m文件,以曲线参数作为输入,以拟合误差作为输出
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');
Estimates将是一个包含了对原数据集进行估计的参数值的向量。
>> 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');
附图见后面:
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 菜单项;
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 菜单项;
- 关于采用matlab进行指定非线性方程拟合的问题
- 关于采用matlab进行指定非线性方程拟合的问题(1)
- 关于采用matlab进行指定非线性方程拟合的问题(2)
- matlab非线性拟合所碰到的问题
- Matlab 线性拟合 & 非线性拟合
- Matlab 线性拟合 & 非线性拟合
- Matlab 线性拟合 & 非线性拟合
- Matlab 线性拟合 & 非线性拟合
- Matlab 线性拟合 & 非线性拟合
- Matlab 线性拟合 & 非线性拟合
- Matlab 线性拟合 & 非线性拟合
- Matlab 线性拟合 & 非线性拟合
- Matlab 线性拟合 & 非线性拟合
- Matlab非线性拟合
- Matlab非线性方程求根
- Matlab非线性方程求解
- 数据拟合---使用自定义函数进行非线性拟合 -在Origin。matlab拟合工具箱cftool
- 数据拟合---使用自定义函数进行非线性拟合 -在Origin。matlab拟合工具箱cftool
- ubuntu安装deb,rpm安装包方法
- 二,HelloWorld 及源码关联 & Manifest 类关联
- Debian 自带的Emacs不能打开手册
- 敏捷开发绩效管理之七:敏捷开发生产率(下)(简化功能点分析,NESMA,两级简化)
- DateTime.UtcNow.ToString(DateFormat) 时间格式化问题
- 关于采用matlab进行指定非线性方程拟合的问题(1)
- 将数字金额转化为汉字大写
- 硬件靠积累,软件靠更新
- Delphi数据类型列表
- Android与iPhone的对比
- 关于采用matlab进行指定非线性方程拟合的问题(2)
- Using Groovy to read values from a different view object
- hook syscall table and clear cr0
- LLVM