matlab中的lsqcurvefit使用
来源:互联网 发布:人工智能与医疗 编辑:程序博客网 时间:2024/05/17 04:28
非线性曲线拟合是已知输入向量xdata和输出向量ydata,并且知道输入与输出的函数关系为ydata=F(x, xdata),但不知道系数向量x。今进行曲线拟合,求x使得输出的如下最小二乘表达式成立:min Σ(F(x,xdatai)-ydatai)^2函数 lsqcurvefit格式 x = lsqcurvefit(fun,x0,xdata,ydata)x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub)x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)[x,resnorm] = lsqcurvefit(…)[x,resnorm,residual] = lsqcurvefit(…)[x,resnorm,residual,exitflag] = lsqcurvefit(…)[x,resnorm,residual,exitflag,output] = lsqcurvefit(…)[x,resnorm,residual,exitflag,output,lambda] = lsqcurvefit(…)[x,resnorm,residual,exitflag,output,lambda,jacobian] =lsqcurvefit(…)参数说明:x0为初始解向量;xdata,ydata为满足关系ydata=F(x, xdata)的数据;lb、ub为解向量的下界和上界lb≤x≤ub,若没有指定界,则lb=[ ],ub=[ ];options为指定的优化参数;fun为待拟合函数,计算x处拟合函数值,其定义为 function F = myfun(x,xdata)resnorm=sum ((fun(x,xdata)-ydata).^2),即在x处残差的平方和;residual=fun(x,xdata)-ydata,即在x处的残差;exitflag为终止迭代的条件;output为输出的优化信息;lambda为解x处的Lagrange乘子;jacobian为解x处拟合函数fun的jacobian矩阵。 例 求解如下最小二乘非线性拟合问题已知输入向量xdata和输出向量ydata,且长度都是n,待拟合函数的表达式为ydata(i)=x(1)-xdata(i)^2+x(2)-sin(xdata(i))+x(3)-xdata^3即目标函数为min Σ(F(x,xdata(i))-ydata(i))^2其中:F(x,xdata) = x(1)*xdata^2 + x(2)*sin(xdata) + x(3)*xdata^3初始解向量为x0=[0.3, 0.4, 0.1],即表达式的 个参数[x(1),x(2),x(3)]。解:先建立拟合函数文件,并保存为myfun.mfunction F = myfun(x,xdata)F = x(1)*xdata.^2 + x(2)*sin(xdata) + x(3)*xdata.^3;然后给出数据xdata和ydata>>xdata = [3.6 7.7 9.3 4.1 8.6 2.8 1.3 7.9 10.0 5.4];>>ydata = [16.5 150.6 263.1 24.7 208.5 9.9 2.7 163.9 325.0 54.3];>>x0 = [10, 10, 10]; %初始估计值>>[x,resnorm] = lsqcurvefit(@myfun,x0,xdata,ydata)结果为:Optimization terminated successfully:Relative function value changing by less than OPTIONS.TolFunx = 0.2269 0.3385 0.3021=>即解出的系数最优估计值resnorm = 6.2950=>在x解值处的目标最小二乘表达式值。即所谓残差。
0 0
- matlab中的lsqcurvefit使用
- matlab中的lsqcurvefit 拟合
- Matlab中的lsqcurvefit,非线性拟合
- matlab使用lsqcurvefit函数出现 lsqcurvefit at 253 Function value and YDATA sizes are incommensurate.
- matlab关于plotfit函数,lsqcurvefit函数,cftool工具箱的使用
- matlab lsqcurvefit函数&nbsp…
- matlab中的save使用
- matlab中的rand使用
- LibSVM 在matlab中的使用
- LibSVM 在matlab中的使用
- LibSVM 在matlab中的使用
- matlab中的imshow函数使用
- LibSVM 在matlab中的使用
- LibSVM 在matlab中的使用
- libsvm在matlab中的使用
- LIBSVM在MATLAB中的使用
- LibSVM 在matlab中的使用
- LibSVM 在matlab中的使用
- 改变VS2012主题(theme)颜色、编辑框添加背景(so cool)
- Delphi 编写数字签名验证并获取签名信息
- ARM Linux 3.x的设备树(Device Tree)
- 开发工具推荐
- 汇编 之 子程序(eg : 小写字母 -> 大写字母)
- matlab中的lsqcurvefit使用
- hdu 3306 Another kind of Fibonacci(矩阵快速幂)
- 利用函数查找数据
- 不可变字符串NSString和可变字符串NSMutableArray
- android播放GIF
- ARCHIVELOG模式下用户管理的完全恢复—总结
- eclipse + hadoop 远程文件操作中出现的问题
- 数据结构中图的邻接矩阵表示方法
- [数据结构与算法]编译原理文法知识