坐标轮换的matlab程序,坐标轮换法matlab程序

现代设计方法及其应用matlab程序作业(7.18)

源程序:

%坐标轮换法

clear

e=input('输入精度要求e:');

X=input('输入初始点:');

syms t s

a=10*X(1,1)^2+106*X(2,1)^2+10*X(1,1)*X(2,1)+96*X(1,1)+100*X(2,1); k=1;

e1=[1;0];

e2=[0;1];

A=X; %A矩阵用于存储每一轮变换所得解

C=X+t*e1; %沿e1方向搜索

x1=C(1,1);

x2=C(2,1);

df=diff(10*x1^2+106*x2^2+10*x1*x2+96*x1+100*x2);

t=solve(df);

X=X+t*e1;

C=X+s*e2; %沿e2方向搜索

x1=C(1,1);

x2=C(2,1);

df=diff(10*x1^2+106*x2^2+10*x1*x2+96*x1+100*x2);

s=solve(df);

X=X+s*e2;

A=[A X];

b=10*X(1,1)^2+106*X(2,1)^2+10*X(1,1)*X(2,1)+96*X(1,1)+100*X(2,1); a=[a b];

B=A(:,k+1)-A(:,k);

while double(sqrt(B(1,1)^2+B(2,1)^2))>e

syms t s

C=X+t*e1; %沿e1方向搜索

x1=C(1,1);

x2=C(2,1);

df=diff(10*x1^2+106*x2^2+10*x1*x2+96*x1+100*x2);

t=solve(df);

X=X+t*e1;

C=X+s*e2; %沿e2方向搜索

x1=C(1,1);

x2=C(2,1);

df=diff(10*x1^2+106*x2^2+10*x1*x2+96*x1+100*x2);

s=solve(df);

X=X+s*e2;

A=[A X];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值