谢谢您,我是新手,多多包涵。今天才上论坛,x1=[1,0,0,1]'; x2=[1559.36,-39.25,-26.88,26.88]';
y=[8.29,-8.29,-5.68,5.68]';得出y=a*x1+b*x2 ,求出参数a,b。
我的代码是这样写的:
子程序:
function f = myfun(x)
global x1 x2 y
f = (y(1)-(x(1)*x1(1)+x(2)*x2(1))).^2+(y(2)-(x(1)*x1(2)+x(2)*x2(2))).^2+(y(3)-(x(1)*x1(3)+x(2)*x2(3))).^2+(y(4)-(x(1)*x1(4)+x(2)*x2(4))).^2;
主程序:
clc;clear
global x1 x2 y
x1=[1,0,0,1]';
x2=[1559.36,-39.25,-26.88,26.88]';
y=[8.29,-8.29,-5.68,5.68]';
x0 = [0,0];
[x,fval]=fminunc(@myfun,x0)
运行结果:x =
5.3146 0.0021
fval =
99.1735
感觉效果不是很好,不知道您好的方法吗? |