MATLABÊýÖµ·ÖÎöʵÑéËÄ£¨ÑŸ÷±È¡¢¸ß˹ÈüµÂ¶ûµü´ú£¬ÒÔ¼°¶þ·Ö·¨ºÍÅ£¶Ùµü´ú½â·ÇÏßÐÔ·½³Ì£© ÁªÏµ¿Í·þ

·¢²¼Ê±¼ä : ÐÇÆÚÈý ÎÄÕÂMATLABÊýÖµ·ÖÎöʵÑéËÄ£¨ÑŸ÷±È¡¢¸ß˹ÈüµÂ¶ûµü´ú£¬ÒÔ¼°¶þ·Ö·¨ºÍÅ£¶Ùµü´ú½â·ÇÏßÐÔ·½³Ì£©¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁ

·ðɽ¿Æѧ¼¼ÊõѧԺ

ʵ Ñé ±¨ ¸æ

¿Î³ÌÃû³Æ ÊýÖµ·ÖÎö ʵÑéÏîÄ¿ µü´ú·¨

רҵ°à¼¶ »úе¹¤³Ì ÐÕ Ãû Óàºì½Ü ѧ ºÅ 2111505010 Ö¸µ¼½Ìʦ ³Â½£ ³É ¼¨ ÈÕ ÆÚ Ô ÈÕ

Ò». ʵÑéÄ¿µÄ

1¡¢ ÔÚ¼ÆËã»úÉÏÓÃJacobiµü´ú·¨ºÍGauss-Seidelµü´ú·¨ÇóÏßÐÔ·½³Ì×é ¡£ 2¡¢ ÔÚ¼ÆËã»úÉÏÓöþ·Ö·¨ºÍNewtonµü´ú·¨Çó·ÇÏßÐÔ·½³Ì µÄ¸ù¡£ ¶þ. ʵÑéÒªÇó

1¡¢°´ÕÕÌâÄ¿ÒªÇóÍê³ÉʵÑéÄÚÈÝ£» 2¡¢Ð´³öÏàÓ¦µÄMatlab ³ÌÐò£»

3¡¢¸ø³öʵÑé½á¹û(¿ÉÒÔÓñí¸ñչʾʵÑé½á¹û)£» 4¡¢·ÖÎöºÍÌÖÂÛʵÑé½á¹û²¢Ìá³ö¿ÉÄܵÄÓÅ»¯ÊµÑé¡£ 5¡¢Ð´³öʵÑ鱨¸æ¡£ Èý. ʵÑé²½Öè

1¡¢ÓÃMatlab±àдJacobiµü´ú·¨ºÍGauss-Seidelµü´ú·¨ÇóÏßÐÔ·½³Ì×éAx?bµÄ³ÌÐò¡£ 2¡¢ÓÃMatlab±àд¶þ·Ö·¨ºÍNewton·¨Çó·ÇÏßÐÔ·½³Ìf(x)?0µÄ¸ù³ÌÐò¡£

?3?3¡¢ÉèA??0??2?0?2??21?,b?(1,3,1)T,¶ÔÓÚÏßÐÔ·½³Ì×éAx?b£¬¿¼ÂÇÈçÏÂÎÊÌ⣺ 12??£¨1£©·Ö±ðд³öJacobiµü´ú¾ØÕóºÍGauss-Seidelµü´ú¾ØÕó

£¨2£©ÓÃJacobiµü´ú·¨ºÍGauss-Seidelµü´ú·¨½â¸Ã·½³Ìʱ£¬ÊÇ·ñÊÕÁ²£¿Ë­ÊÕÁ²µÄ¸ü¿ì£¿ £¨3£©ÓÃʵÑé²½Öè1±àºÃµÄÁ½ÖÖµü´ú·¨³ÌÐò½øÐÐʵÑ飬ͨ¹ýÊýÖµ½á¹ûÑéÖ¤£¨2£©µÄ½áÂÛ¡£ 4¡¢Óõ÷ÊԺõĶþ·Ö·¨ºÍNewtonµü´ú·¨³ÌÐò½â¾öÈçÏÂÎÊÌâ

Çóe5x?sinx?x3?20?0µÄ¸ù£¬ÆäÖпØÖƾ«¶Èeps?10?8£¬×î´óµü´ú´ÎÊýM?50¡£

ËÄ. ʵÑé½á¹û 1.%Jacob.m

function [x,B] = Jacob(A,b,n)

%Jacobiµü´úÇó½â·½³Ì×éAx=b£¬ÏµÊý¾ØÕóA£¬µü´ú´ÎÊýn %Çó½âµÄ×¼±¸¹¤×÷£¬¹¹½¨¸÷µü´úϵÊýÕóµÈ£º m = length(A); D = diag(diag(A)); L = -tril(A,-1); U = -triu(A, 1); J = D^(-1)*(L+U); B = J;

f = D^(-1)*b;

%³õʼ»¯x¼´Æô¶¯Öµ£º x = zeros(m,1);

%¸ù¾Ýx(k+1)=Jx(k)+f½øÐоØÕóÔËË㣺 for i=1:n

x = J*x + f; end

%GauSeid.m

function [x,G] = GauSeid(A,b,n)

%Gauss-Seidelµü´úÇó½â·½³Ì×éAx=b£¬ÏµÊý¾ØÕóA£¬µü´ú´ÎÊýn %Çó½âµÄ×¼±¸¹¤×÷£¬¹¹½¨¸÷µü´úϵÊýÕóµÈ£º m = length(A); D = diag(diag(A)); L = -tril(A,-1); U = -triu(A, 1); G = inv(D-L)*U; f = inv(D-L)*b; %³õʼ»¯¾ØÕó£º

%¸ù¾Ýx(k+1)=Gx(k)+f½øÐоØÕóÔËË㣺 x = zeros(m,1); for i = 1:n

x = G*x + f; end

2.%Dichotomy.m

function x=Dichotomy(x1,x2,p,n) %ÀûÓöþ·Ö·¨Çó¸ù£¬Çø¼ä[x1,x2] %pΪ¾«¶È a = x1; b = x2;

%½øÐÐn´Î¶þ·Ö£º

%µÚÒ»¸öÌõ¼þÅжϸùÔÚa,bÇø¼äÄÚ

%µÚ¶þ¸öÌõ¼þÅжÏÊÇ·ñÖмäµã¾ÍÊǸù£¬ÊÇÔòµü´úÖÕÖ¹£» %µÚÈý¸öÌõ¼þÅж϶þ·Öºó¸ùÔÚÖеã×ó²à»¹ÊÇÓҲࣻ %µÚËĸöÌõ¼þÅжϾ«¶ÈÊÇ·ñ´ï±ê£¬ÓÃÇø¼ä³¤¶È´úÌæ for i=1:n

if f(a)*f(b)<0 x0 = (a+b)/2; p0 = (b-a)/(2^i); if f(x0)==0 x = x0; else

if f(a)*f(x0)<0 b = x0; else a= x0; end end end if p0>p

continue; else x = x0; break; end end

%NewIterat.m

function x=NewIterat(x0,p,n) %ÀûÓÃÅ£¶Ùµü´ú·¨Çó¸ù£»

%x0ΪÆô¶¯µã£¬¹À¼ÆµÄ¿¿½ü¸ùµÄÖµ£¬pΪ¾«¶È£¬nΪµü´ú´ÎÊý£» syms x1;

%ÉèÖÃÒ»¸ö×Ô±äÁ¿x1£¬·½±ãºóÃæµÄÇóµ¼: f1 = diff(f(x1));

%½øÐÐn´Îµü´ú£¬¾«¶È´ï±ê»áÌáÇ°ÖÕÖ¹£»

%µÚÒ»¸öÅжÏÊǸù¾Ý¿ØÖÆÌõ¼þÀ´È·¶¨ÕæʵÎó²îÊÇÑ¡¾ø¶Ô»¹ÊÇÏà¶ÔÎó²î£» %µÚ¶þ¸öÅжÏÊÇÈ·¶¨¾«¶ÈÊÇ·ñÂú×ãÒªÇó for i=1:n

x1 = x0;

x = x0-f(x0)/eval(f1); if x<1

RealDiv = abs(x-x0);

else RealDiv = abs(x-x0)/abs(x); end

if RealDiv>p x0 = x; else break; end end

3.run43.m

clc,clear;

A = [3 0 -2;0 2 1;-2 1 2]; b = [1;3;1]; n1 = 50; n2 =100;

%ÊäÈëA,b¾ØÕó£¬ÉèÖõü´ú´ÎÊýΪ50´Î£» %µ÷Óõü´úº¯Êý£¬·µ»Øµü´ú¾ØÕó£» [x,B] = Jacob(A,b,n1); xj50 = x;

f1 = max(abs(eig(B))) %ÏÔʾÆװ뾶£¬È·¶¨ÊÕÁ²ÐÔ£» [x,B] = GauSeid(A,b,n1); xg50 = x;

f2 = max(abs(eig(B))) %Æװ뾶£»

xj100 = Jacob(A,b,n2); xg100 = GauSeid(A,b,n2); Jacobi= [xj50,xj100]

%¶Ô±Èµü´ú50´ÎºÍ100´ÎµÄ½á¹û GauSei= [xg50,xg100]

%ºÜÈÝÒ׿´³ö׼ȷ½âΪ[1£»1£»1]

4.f.m

function y = f(x)

%ËùÓÐf(x)=0ÖÐf(x)º¯Êý£» y = exp(5*x)-sin(x)+x^3-20;

ÏÂÒ³ÊǾßÌå½âʱµÄ³ÌÐò£º