|
非线性拟合的算法之一就是用非线性最小二乘法进行拟合,给定一组观察值,非线性最小二乘拟合本质上是求系统与观察值之差的平方和的最小值问题。具体到楼主的问题即:求m,使得
- y = (quadl(@(t) t.^m.*cos(t),0,w(1))-N(1))^2 + (quadl(@(t) t.^m.*cos(t),0,w(2))-N(2))^2 ...
- + (quadl(@(t) t.^m.*cos(t),0,w(3))-N(3))^2;
复制代码 取得最小值.
因此得到下面代码:
- function m = Findm
- w = [pi/2,pi,pi*1.5];
- N = [pi/2-1,-2,-1.5*pi-1];
- function y = ObjecFun(m)
- y = (quadl(@(t) t.^m.*cos(t),0,w(1))-N(1))^2 + (quadl(@(t) t.^m.*cos(t),0,w(2))-N(2))^2 ...
- + (quadl(@(t) t.^m.*cos(t),0,w(3))-N(3))^2;
- end
- m = fminbnd(@ ObjecFun,0,2);
- end
复制代码 运行这个函数:
- format long
- m = Findm
- m =
- 1.000000256506471
复制代码 |
评分
-
1
查看全部评分
-
|