下面是我的程序。我现在想变化tita,使得最后的结果E=0,但是我现在只会把tita写成一个固定值,不会改变它。我想用二分法变化tita,望高手帮忙,多谢,急用!
% 列出x,y向量
x=[260 250 240 230 220 210 200 190 180 170 160 150 140 130 120];
y=[46 54 60 74 86 116 138 155 185 236 284 347 390 450 528];
% 计算向量的维数
[m,n]=size(x);
% 求x的平均值
x0=(x(1)+x(n))/2;
% 设置初始值tita
tita=10
% 循环求解x_heng_up,x_heng_down及x_heng
x_heng=0;
x_heng_up=0;
x_heng_down=0;
for i=1:n
I=1+tita*(x(i)-x0);
x_heng_up=x_heng_up+x(i)/I^2;
x_heng_down=x_heng_down+1/I^2;
end
% 求出x_heng
x_heng=x_heng_up/x_heng_down;
x_heng;
% 循环求解y_heng_up,y_heng_down及y_heng
y_heng=0;
y_heng_up=0;
y_heng_down=0;
for i=1:n
I=1+tita*(x(i)-x0);
y_heng_up=y_heng_up+y(i)/I^2;
y_heng_up;
y_heng_down=y_heng_down+1/I^2;
y_heng_down;
end
% 求出y_heng
y_heng=y_heng_up/y_heng_down;
y_heng;
% 求解lyy0
lyy0=0;
for i=1:n
I=1+tita*(x(i)-x0);
lyy0=lyy0+(y(i)-y_heng)^2*(x(i)-x0)/(I)^3;
lyy0;
end
% 求解lxx0
lxx0=0;
for i=1:n
I=1+tita*(x(i)-x0);
lxx0=lxx0+(x(i)-x_heng)^2*(x(i)-x0)/(I)^3;
lxx0;
end
% 求解lxy0
lxy0=0;
for i=1:n
I=1+tita*(x(i)-x0);
lxy0=lxy0+(x(i)-x_heng)*(y(i)-y_heng)*(x(i)-x0)/(I)^3;
lxy0;
end
% 求解lxy
lxy=0;
for i=1:n
I=1+tita*(x(i)-x0);
lxy=lxy+(x(i)-x_heng)*(y(i)-y_heng)/(I)^2;
lxy;
end
% 求解lxx
lxx=0;
for i=1:n
I=1+tita*(x(i)-x0);
lxx=lxx+(x(i)-x_heng)^2/(I)^2;
lxx;
end
% 求解lyy
lyy=0;
for i=1:n
I=1+tita*(x(i)-x0);
lyy=lyy+(y(i)-y_heng)^2/(I)^2;
lyy;
end
% 求解E
E=lyy0+lxy^2*lxx0/(lxx)^2-2*lxy*lxy0/lxx;