《坐标轮换法matlab程序8141.pdf》由会员分享,可在线阅读,更多相关《坐标轮换法matlab程序8141.pdf(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、现代设计方法及其应用 matlab 程序作业()源程序:%坐标轮换法 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*x12+106*x22+10*x1*x2+96*x1+100*x2);t=solve(df);X=X+t*e1;C=X+s
2、*e2;%沿 e2 方向搜索 x1=C(1,1);x2=C(2,1);df=diff(10*x12+106*x22+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*x12+106*x
3、22+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*x12+106*x22+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);k=k+1;end Y=10*X(1,1)2+106*X(2,1)2+10*X(1,1)*X(2,1)+9
4、6*X(1,1)+100*X(2,1);A%n 次迭代得到 X 值矩阵 a%n 次迭代得到函数值数组 fprintf(轮换次数 k=%fn,k);X Y 调试结果:CoordinateExchange 输入精度要求 e:输入初始点:4;3 A=4,-63/10,-9991/2120,-2101267/449440,-9/,-923/360 3,-37/212,-11209/44944,-2393133/9528128,-1/36,-/4832 a=1918,-447593/2120,-617/,-073/48320,-9537/94080,-3/0 轮换次数 k=X=-923/360-/4832 Y=-3/0 机研 1203 班 宁晖 38