clear
format long max1=100; eps1=1.0e-10; eps2=1.0e-10;
>> x0=[1.0 1.0 1.0]'; x=x0;
for i=1:max1, A=Fd(x); b=F(x);
dx=A\\b; %矩阵左除,即b除以A x=x-dx;
sprintf('第%d次迭代结果:\\n',i)
[x dx F(x)] %在屏幕上输出每次的x(i),dx(i),F(x(i)) if (max(abs(dx)) ans = 第1次迭代结果: ans = 0.927166027521650 0.072833972478350 1.311182125908511 0.460825540362209 0.539174459637791 -24.062491382655779 -0.530054079590231 1.530054079590231 0.147573280945995 ans = 第2次迭代结果: ans = 0.501864104391215 0.425301923130435 0.010481398754868 0.187314778076301 0.273510762285908 -5.878576435100477 -0.528121534118709 -0.001932545471522 0.013528291912525 ans = 第3次迭代结果: ans = 0.500584409641405 0.001279694749810 0.061044731777892 0.126270046298410 -0.525085549559423 -0.003035984559286 ans = 第4次迭代结果: ans = 0.500107112426742 0.000477297214663 0.011564314962922 0.049480416814970 -0.523882243946242 -0.001203305613181 ans = 第5次迭代结果: ans = 0.500005489806405 0.000101622620337 0.000598953020793 0.010965361942129 -0.523613482331101 -0.000268761615141 ans = 第6次迭代结果: 0.002266904992268 -1.291470136051974 0.002837480507536 0.000339688961465 -0.198312653023639 0.000407361167536 0.000016518597927 -0.009739343772851 0.000019534404784 ans = 0.500000016296294 0.000005473510111 0.000000048889317 0.000001781713292 0.000597171307501 -0.000028885615500 -0.523598819360676 -0.000014662970425 0.000000057655862 ans = 第7次迭代结果: ans = 0.500000000000145 0.000000016296149 0.000000000000435 0.000000000015860 0.000001781697432 -0.000000000257129 -0.523598775598688 -0.000000043761988 0.000000000000515 ans = 第8次迭代结果: ans = 0.500000000000000 0.000000000000145 0 -0.000000000000000 0.000000000015860 0 -0.523598775598299 -0.000000000000389 -0.000000000000002 x = 0.500000000000000 -0.000000000000000 -0.523598775598299 function J=Fd(x) J=[3,x(3)*sin(x(2)*x(3)),x(2)*sin(x(2)*x(3)); 2*x(1), 0,-x(3)*exp(-x(2)*x(3)),-x(2)*exp(-x(2)*x(3))+20]; end -162*(x(2)+0.1),cos(x(3)); function y=F(x) y(1)=3*x(1)-cos(x(2)*x(3))-0.5; y(2)=x(1)^2-81*(x(2)+0.1)^2+sin(x(3))+1.06; y(3)=exp(-x(2)*x(3))+20*x(3)+(10*pi-3)/3; y=[y(1);y(2);y(3)]; end >> format long max1=100; eps=10^-10; x0=[1.5 6.5 -1.5]'; x=x0; for i=1:max1, A=Fd(x); b=F(x); dx=A\\b; %矩阵左除,即b除以A x=x-dx; sprintf('第%d次迭代结果:\\n',i) [x dx F(x)] %在屏幕上输出每次的x(i),dx(i),F(x(i)) if (max(abs(dx)) ans = 第1次迭代结果: ans = 1.0e+002 * 0.018260041276393 -0.003260041276393 1.282722246254234 0.051372043181457 0.013627956818543 -0.027779961192519 -0.059329655500873 0.044329655500873 0.120824526189354 ans = 第2次迭代结果: ans = 0.994927877357504 0.831076250281804 20.209590716010979 4.841021490625312 0.296182827520425 -0.688906997783128 -4.215483503909539 -1.717482046177776 -1.017377377305003 ans = 第3次迭代结果: ans = 1.004360806623757 -0.009432929266254 0.170590076715641 5.004522196988448 -0.163500706363136 0.006593465398733 -4.007001753553082 -0.208481750356457 0.068173826894217 ans = 第4次迭代结果: ans = 1.000006025842147 0.004354780781610 0.000239857076068 5.000015490093148 0.004506706895300 0.000028464472008 -4.000018005978956 -0.006983747574126 -0.000062947406697 ans = 第5次迭代结果: ans = 1.000000000028884 0.000006025813263 0.000000001069779 5.000000000090221 0.000015490002927 0.000000000171521 -4.000000000099142 -0.000018005879814 -0.000000000557833 ans = 第6次迭代结果: ans = 1.000000000000000 0.000000000028884 0 5.000000000000000 0.000000000090221 0 -4.000000000000000 -0.000000000099142 0 >> x = 1 5 -4 function y=F(x) y(1)=x(1)-5*x(2)^2+7*x(3)^2+12; y(2)=3*x(1)*x(2)+x(1)*x(3)-11*x(1); y(3)=2*x(2)*x(3)+40*x(1); y=[y(1);y(2);y(3)]; end function J=Fd(x) J=[1,-10*x(2),14*x(3); 3*x(2)+x(3)-11, 3*x(1),x(1); 40,2*x(3),2*x(2)]; end 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于牛顿拉夫逊法潮流计算的matlab实验报告(5)在线全文阅读。
相关推荐: