【求救】matlab 高手请进

来源:百度知道 编辑:UC知道 时间:2024/05/15 07:50:28
我在用fminsearch求解误差和最小时出现矛盾的结果?
编制nihe.m
function e=nihe(x)
a=1995:1:2000;
b=[3001.77 3022.77 3042.92 3059.69 3072.34 3091.09];
e=0;
for i=1:6
e=e+(b(i)-x(1)*a(i)-x(2))^2;
end

然后在命令窗口中输入
x0=[1,1];
[x,fval]=fminsearch(@nihe,x0)

得到结果
x =

1.0e+004 *

0.0017 -3.1884

fval =

32.2751
而我把得到的结果代入原数据而不能得到
fval =

32.2751
的结果
得到的误差向量是
970.7700 974.7700 977.9200 977.6900 973.3400 975.0900
怎么解决??
谢谢你的答复!
其他的高手能不能帮小弟解决?拜托了!!!

你的运算是对的,代入原数据也一样,我用另一种方法计算,结果与你的相同。

function aaa
clc;clear;
x0=[1 1];
[x,fval]=fminsearch(@nihe,x0)

function e=nihe(x)
a=1995:1:2000;
b=[3001.77 3022.77 3042.92 3059.69 3072.34 3091.09];
e=0;
for i=1:6
e=e+(b(i)-x(1)*a(i)-x(2))^2;
end

%check检验
ee=0;xx=x;
for i=1:6
ee=ee+(b(i)-xx(1)*a(i)-xx(2))^2;
end
ee