matlab编写二分法程序,我写的程序,想用Matlab二分法实现,望高手帮忙!

下面是我的程序。我现在想变化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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值