谁有这个函数阿 lsqcurvefit(Optimization tool)
我没有这个工具包Optimization too。。。能帮忙贴一下吗 oder mailen....$送花$ $送花$ $送花$ 已经pm你了,可以msn加我,我可以传给你,不过因为这个函数可能还睡调用另外的函数,不能保证copy给你,你就能用 我想到有两个办法-你装一个optimization toolbox
-你可以用现成的matlab有的函数,自己写一个用最小二乘法曲线拟合函数。如果你所遇到的问题是线性问题的话(线性回归问题),matlab有直接解决线性回归问题的函数,不需要任何toolbox。 关于线性问题我来补充一下,就是什么样的问题可以化为线性问题处理?
比如
Y = f(x) = A1 + A2 * x + A3 * X ^2 + A4 * X ^3;
A1 ~ A4 是拟合参数,就是一个典型线性方程。对于这个方程,用最小二乘法可以直接解决:
假如有100个数 :
x = rand( 100 , 1);
拟合的方程是:
y =0.7 + 33 * x + 7 * x.^2 +2.7 * x.^3 ;
这里我们加点噪声:
y = y + randn (100,1) * 0.05;
到这一步,我们假设了 A1 ~ A4 分别是 0.7, 33, 7, 2.7;
x, y 都是 100个数的一维矩阵
如何用最小二乘法呢?
过程如下:
1)建立一个自变量矩阵 X (100 , 4),具体步骤:
X(:,1)=ones(100 , 1);
X(:,2)=x;
X(:,3)=x.^2;
X(:,4)=x.^3;
2)用backslash 运算:
a = X\y;
然后呢?完了!
不信?
显示一下 a: a =
0.6952
33.0483
6.8306
2.8365
------------------------------------------------
是的,就是这么简单!只要一步 "\" backslash运算。
页:
[1]