itmax=100; end
if nargin<2 ep=1e-5; end
n=length(A); u=ones(n,1);
index=0;k=0;m1=0; invA=inv(A); while k<=itmax
v=invA*u;[vmax,i]=max(abs(v)); m=v(i);u=v/m; if abs(m-m1) m1=m;k=k+1; end µÚ¶þ²½£º½«Ëù¸ø¾ØÕó´úÈë³ÌÐòµÃ³ö½á¹û¡£ ??121??£¬¦Ë1=-6.4210£¬X1=£¨-0.0462 -0.3749 1.0000£©T£»¦Ë3=3.4723£¬ A??2?41????11?6??x3=£¨1.0000 0.5229 0.2422£©¡£ ?4?2??25??71A???31??14???87T T 73?18?1147??£¬¦Ë1=21.3053£¬X1=£¨0.8724 0.5401 0.9973 0.5644 0.4972 7235??2651?3532??5124??1.0000£©£»¦Ë6=1.6214¡£ Î塢ʵÑé½áÂÛ Çón½×·½ÕóAµÄÌØÕ÷ÖµºÍÌØÕ÷ÏòÁ¿£¬Ò²ÊÇʵ¼ÊÖг£³£Åöµ½µÄÎÊÌ⡣ͨ¹ý´Ë´ÎʵÑéÕÆÎÕÁËÓÃÃÝ·¨ºÍ·´ÃÝ·¨ÇóÒ»¸ö·½ÕóµÄ×î´óÌØÕ÷ÖµºÍÌØÕ÷ÏòÁ¿£¬¾ø¶ÔÖµ×îСµÄÌØÕ÷ÖµºÍÌØÕ÷ÏòÁ¿¡£ ʵÑé°Ë ³£Î¢·Ö·½³Ì³õÖµÎÊÌâÊýÖµ½â·¨ Ò»¡¢ÎÊÌâÌá³ö ¿ÆÑ§¼ÆËãÖо³£Óöµ½Î¢·Ö·½³Ì£¨×飩³õÖµÎÊÌ⣬ÐèÒªÀûÓÃEuler·¨£¬¸Ä½øEuler·¨£¬Rung-Kutta·½·¨ÇóÆäÊýÖµ½â£¬ÖîÈçÒÔÏÂÎÊÌ⣺ £¨1£© ??4x?xy?y?y??y?0??0 ? 0?x?2 ·Ö±ðÈ¡h=0.1,0.2,0.4ʱÊýÖµ½â¡£ ³õÖµÎÊÌâµÄ¾«È·½ây?£¨2£© 4?5e?x2¡£ ÓÃr=3µÄAdamsÏÔʽºÍÔ¤ - УʽÇó½â ?y??x2?y2??y??1??0 ?1?x?0 È¡²½³¤h=0.1£¬ÓÃËĽױê×¼R-K·½·¨ÇóÖµ¡£ £¨3£© 0?x?1 ÓøĽøEuler·¨»òËĽױê×¼R-K·½·¨Çó½â È¡²½³¤0.01,¼ÆËãy(0.0y5),??y2?y1????y1?y2?y???y3?3??0???1y1y2?0??0y3?0??1y(0.Êý1Öµ½â£¬²Î¿¼½á¹û y1(0.15)??0.9880787,y2(0.15)?0.1493359,y3(0.15)?0.8613125¡£ £¨4£©ÀûÓÃËĽױê×¼R- K·½·¨Çó¶þ½×·½³Ì³õÖµÎÊÌâµÄÊýÖµ½â £¨I£© (II) ?y???3y??2y?0??y?0??0,y??0??1 0?x?1,h?0.02 ?y???0.11?y2y??y?0?y?0??1,y??0??0 ? 0?x?1,h?0.1 ??(III) y??y??x?e?1?y?0??1,y??0??0 ? 0?x?2,h?0.1 (IV) ? ?y???siny?0?? ?y?0??1,y?0??0 0?x?4,h?0.2 ¶þ¡¢ÒªÇó 1¡¢ ¸ù¾Ý³õÖµÎÊÌâÊýÖµËã·¨£¬·Ö±ðÑ¡Ôñ¶þ¸ö³õÖµÎÊÌâ±à³Ì¼ÆË㣻 2¡¢ ÊÔ·Ö±ðÈ¡²»Í¬²½³¤£¬¿¼²ìij½Úµã´¦xjÊýÖµ½âµÄÎó²î±ä»¯Çé¿ö£» 3¡¢ ÊÔÓò»Í¬Ëã·¨Çó½âij³õÖµÎÊÌ⣬½á¹ûÓкÎÒì³££» 4¡¢ ·ÖÎö¸÷¸öËã·¨µÄÓÅȱµã¡£ Èý¡¢Ä¿µÄºÍÒâÒå 1¡¢ ÊìϤ¸÷ÖÖ³õÖµÎÊÌâµÄËã·¨£¬±à³öËã·¨³ÌÐò£» 2¡¢ Ã÷È·¸÷ÖÖËã·¨µÄ¾«¶ÈÓëËùÑ¡²½³¤ÓÐÃÜÇйØÏµ£» 3¡¢ ͨ¹ý¼ÆËã¸ü¼ÓÁ˽â¸÷ÖÖËã·¨µÄÓÅÔ½ÐÔ¡£ ËÄ¡¢ÊµÑé²½Öè function [x,y]=euler(fun,x0,xfinal,y0,n); if nargin<5,n=50; end h=(xfinal-x0)/n; x(1)=x0;y(1)=y0; for i=1:n; x(i+1)=x(i)+h; y(i+1)=y(i)+h*feval(fun,x(i),y(i)); end ʵÑé³ÌÐò¼°·ÖÎö £¨¢ñ£© £¨1£©¡¢Ëã·¨³ÌÐò function E =Euler_1(fun,x0,y0,xN,N) % EulerÏòǰ¹«Ê½£¬ÆäÖÐ % funΪһ½×΢·Ö·½³ÌµÄº¯Êý % x0,y0Ϊ³õʼÌõ¼þ % xNΪȡֵ·¶Î§µÄÒ»¸ö¶Ëµã % hÎªÇø¼ä²½³¤ % NÎªÇø¼ä¸öÊý % xΪXn¹¹³ÉµÄÏòÁ¿ % yΪyn¹¹³ÉµÄÏòÁ¿ x=zeros(1,N+1);y=zeros(1,N+1); x(1)=x0;y(1)=y0; h=(xN-x0)/N; for n=1:N x(n+1)=x(n)+h; y(n+1)=y(n)+h*feval(fun,x(n),y(n)); end T=[x',y'] function z=f(x,y) z=4*x/y-x*y; (2)¡¢ÔËÐгÌÐò >> Euler_1('f',0,3,2,20) ½á¹û £º >> Euler_1('f',0,3,2,20) T = 0 3.0000 0.1000 2.9836 0.2000 2.9517 0.3000 2.9058 0.4000 2.8481 0.5000 2.7810 0.6000 2.7073 0.7000 2.6297 0.8000 2.5511 0.9000 2.4739 1.0000 2.4004 1.1000 2.3325 1.2000 2.2714 1.3000 2.2177 1.4000 2.1717 1.5000 2.1332 1.6000 2.1017 1.7000 2.0765 1.8000 2.0567 1.9000 2.0414 2.0000 2.0299 Î塢ʵÑé½áÂÛ ºÜ¶à¿ÆÑ§¼¼ÊõºÍ¹¤³ÌÎÊÌâ³£ÓÃ΢·Ö·½³ÌµÄÐÎʽ½¨Á¢ÊýѧģÐÍ£¬Òò´Ë΢·Ö·½³ÌµÄÇó½âÊǺÜÓÐÒâÒåµÄ£¬µ«¶ÔÓÚ¾ø´ó¶àÊýµÄ΢·Ö·½³ÌÎÊÌâºÜÄÑ»òÕ߸ù±¾²»¿ÉÄܵõ½ËüµÄ½âÎö½â£¬Òò´Ë£¬Ñо¿Î¢·Ö·½³ÌµÄÊýÖµ·½·¨ÊǷdz£ÓÐÒâÒåµÄ¡£
Ïà¹ØÍÆ¼ö£º