MATLAB¼ÆËã·½·¨µü´ú·¨Å£¶Ù·¨¶þ·Ö·¨ÊµÑ鱨¸æ ÏÂÔر¾ÎÄ

ÐÕÃû ʵÑ鱨¸æ³É¼¨

ÆÀÓ

Ö¸µ¼½Ìʦ£¨Ç©Ãû£© Äê Ô ÈÕ

˵Ã÷£ºÖ¸µ¼½ÌʦÆÀ·Öºó£¬ÊµÑ鱨¸æ½»Ôº£¨Ïµ£©°ì¹«ÊÒ±£´æ¡£

ʵÑéÒ» ·½³ÌÇó¸ù

Ò»¡¢ ʵÑéÄ¿µÄ

Óø÷ÖÖ·½·¨ÇóÈÎÒâʵº¯Êý·½³Ìf(x)?0ÔÚ×Ô±äÁ¿Çø¼ä[a£¬b]ÉÏ£¬»òijһµã¸½½üµÄʵ¸ù¡£²¢±È½Ï·½·¨µÄÓÅÁÓ¡£ ¶þ¡¢ ʵÑéÔ­Àí (1)¡¢¶þ·Ö·¨

¶Ô·½³Ìf(x)?0ÔÚ[a£¬b]ÄÚÇó¸ù¡£½«Ëù¸øÇø¼ä¶þ·Ö£¬ÔÚ·Öµã¶ÏÊÇ·ñf(x)?0£»ÈôÊÇ£¬ÔòÓиù

x?x?b?a2ÅÐ

b?a2¡£·ñÔò£¬¼ÌÐøÅжÏÊÇ·ñf(a)?f(x)?0,

ÈôÊÇ£¬ÔòÁîb?x,·ñÔòÁîa?x¡£·ñÔòÁîa?x¡£Öظ´´Ë¹ý³ÌÖ±ÖÁÇó³ö·½³Ì

f(x)?0ÔÚ[a,b]ÖеĽüËƸùΪֹ¡£

£¨2£©¡¢µü´ú·¨

½«·½³Ìf(x)?0µÈ¼Û±ä»»Îªx=¦×£¨x£©ÐÎʽ£¬²¢½¨Á¢ÏàÓ¦µÄµü´ú¹«Ê½

xk?1?¦×£¨x£©¡£

£¨3£©¡¢Å£¶Ù·¨

ÈôÒÑÖª·½³Ì µÄÒ»¸ö½üËƸùx0£¬Ôòº¯ÊýÔÚµãx0¸½½ü¿ÉÓÃÒ»½×Ì©ÀÕ¶àÏîʽp1(x)?f(x0)?f'(x0)(x?x0)À´½üËÆ£¬Òò´Ë·½³Ìf(x)?0¿É½üËƱíʾΪ

f(x0)f(x0)?f'(x0)(x?x)?0Éèf'(x0)?0,Ôòx?x0?f'(x0)¡£È¡x×÷Ϊԭ·½³ÌеĽü

ËƸùx1£¬È»ºó½«x1 ×÷Ϊx0´úÈëÉÏʽ¡£µü´ú¹«Ê½Îª£ºxk?1Èý¡¢ ʵÑéÉ豸£ºMATLAB 7.0Èí¼þ ËÄ¡¢ ½á¹ûÔ¤²â

f(xk)?x0?f'(xk)¡£

£¨1£©x11=0.09033 £¨2£©x5=0.09052 £¨3£©x2=0,09052 Îå¡¢ ʵÑéÄÚÈÝ

x£¨1£©¡¢ÔÚÇø¼ä[0,1]ÉÏÓöþ·Ö·¨Çó·½³Ìe?10x?2?0µÄ½üËƸù£¬ÒªÇóÎó²î²»

³¬¹ý

0.5?10?3¡£

f(xk)?x0?f'(xk)£¬Çó·½³Ìex?10x?2?0µÄ

£¨2£©¡¢È¡³õÖµx0?0£¬Óõü´ú¹«Ê½xk?1½üËƸù¡£ÒªÇóÎó²î²»³¬¹ý

0.5?10?3¡£

x£¨3£©¡¢È¡³õÖµx0?0£¬ÓÃÅ£¶Ùµü´ú·¨Çó·½³Ìe?10x?2?0µÄ½üËƸù¡£ÒªÇóÎó

²î²»³¬¹ý

0.5?10?3¡£

Áù¡¢ ʵÑé²½ÖèÓëʵÑé³ÌÐò £¨1£© ¶þ·Ö·¨

µÚÒ»²½£ºÔÚMATLAB 7.0Èí¼þ£¬½¨Á¢Ò»¸öʵÏÖ¶þ·Ö·¨µÄMATLABº¯ÊýÎļþagui_bisect.mÈçÏ£º

function x=agui_bisect(fname,a,b,e) %fnameΪº¯ÊýÃû£¬a,bΪÇø¼ä¶Ëµã£¬eΪ¾«¶È fa=feval(fname,a); %°Ña¶Ëµã´úÈ뺯Êý£¬Çófa fb=feval(fname,b); %°Ñb¶Ëµã´úÈ뺯Êý£¬Çófb if fa*fb>0 error('Á½¶Ëº¯ÊýֵΪͬºÅ'); end

%Èç¹ûfa*fb>0£¬ÔòÊä³öÁ½¶Ëº¯ÊýֵΪͬºÅ k=0 x=(a+b)/2

while(b-a)>(2*e) %Ñ­»·Ìõ¼þµÄÏÞÖÆ

fx=feval(fname,x);%°Ñx´úÈë´úÈ뺯Êý£¬Çófx

if fa*fx<0%Èç¹ûfaÓëfxͬºÅ£¬Ôò°Ñx¸³¸øb£¬°Ñfx¸³¸øfb b=x; fb=fx; else

%Èç¹ûfaÓëfxÒìºÅ£¬Ôò°Ñx¸³¸øa£¬°Ñfx¸³¸øfa a=x; fa=fx; end

k=k+1 %¼ÆËã¶þ·ÖÁ˶àÉÙ´Î

x=(a+b)/2 %µ±Âú×ãÁËÒ»¶¨¾«¶Èºó£¬Ìø³öÑ­»·£¬Ã¿´Î¶þ·Ö£¬¶¼µÃеÄÇø¼ä¶ÏµãaºÍb£¬Ôò½üËƽâΪx=(a+b)/2

end

µÚ¶þ²½£ºÔÚMATLABÃüÁî´°¿ÚÇó½â·½³Ìf(x)=e^x+10x-2=0£¬¼´ÊäÈëÈçÏ >>fun=inline('exp(x)+10*x-2') >> x=agui_bisect(fun,0,1,0.5*10^-3) µÚÈý²½£ºµÃµ½¼ÆËã½á¹û£¬ÇÒ¼ÆËã½á¹ûΪ k 0 1 x 0.50000000000000 0.25000000000000

2 3 4 5 6 7 8 9 10 11 0.12500000000000 0.06250000000000 0.09375000000000 0.07812500000000 0.08593750000000 0.08984375000000 0.09179687500000 0.09082031250000 0.09033203125000 0.09033203125000

£¨2£© µü´ú·¨

µÚÒ»²½£ºµÚÒ»²½£ºÔÚMATLAB 7.0Èí¼þ£¬½¨Á¢Ò»¸öʵÏÖµü´ú·¨µÄMATLABº¯ÊýÎļþagui_main.mÈçÏ£º function x=agui_main(fname,x0,e)

%fnameΪº¯ÊýÃûdfnameµÄº¯ÊýfnameµÄµ¼Êý£¬ x0Ϊµü´ú³õÖµ %eΪ¾«¶È£¬NΪ×î´óµü´ú´ÎÊý(ĬÈÏΪ100) N=100;

x=x0; %°Ñx0¸³¸øx£¬ÔÙËãx+2*e¸³¸øx0

x0=x+2*e; k=0;

while abs(x0-x)>e&k

k=k+1 %ÏÔʾµü´úµÄµÚ¼¸´Î x0=x;

x=(2-exp(x0))/10 %µü´ú¹«Ê½ disp(x)%ÏÔʾx end

if k==N warning('ÒÑ´ïµ½×î´óµü´ú´ÎÊý');end %Èç¹ûK=NÔòÊä³öÒÑ´ïµ½×î´óµü´ú´ÎÊý

µÚ¶þ²½£ºÔÚMATLABÃüÁî´°¿ÚÇó½â·½³Ìf(x)=e^x+10x-2=0£¬¼´ÊäÈëÈçÏ >>fun=inline('exp(x)+10*x-2') >> x=agui_main(fun,0,1,0.5*10^-3) µÚÈý²½£ºµÃ³ö¼ÆËã½á¹û£¬ÇÒ¼ÆËã½á¹ûΪ k 1 2 3 4 5 ÒÔÏÂÊǽá¹ûµÄÆÁÄ»½Øͼ

x 0.10000000000000 0.08948290819244 0.09063913585958 0.09051261667437 0.09051261667437

£¨3£© Å£¶Ùµü´ú·¨

µÚÒ»²½£ºµÚÒ»²½£ºÔÚMATLAB 7.0Èí¼þ£¬½¨Á¢Ò»¸öʵÏÖÅ£¶Ùµü´ú·¨µÄMATLABº¯ÊýÎļþ=agui_newton.mÈçÏ£º function x=agui_newton(fname,dfname,x0,e)

%fnameΪº¯ÊýÃûdfnameµÄº¯ÊýfnameµÄµ¼Êý£¬ x0Ϊµü´ú³õÖµ %eΪ¾«¶È£¬NΪ×î´óµü´ú´ÎÊý(ĬÈÏΪ100) N=100;

x=x0; %°Ñx0¸³¸øx£¬ÔÙËãx+2*e¸³¸øx0 x0=x+2*e; k=0;

while abs(x0-x)>e&k

k=k+1 %ÏÔʾµü´úµÄµÚ¼¸´Î x0=x;

x=x0-feval(fname,x0)/feval(dfname,x0);%Å£¶Ùµü´ú¹«Ê½ disp(x)%ÏÔʾx end

if k==N warning('ÒÑ´ïµ½×î´óµü´ú´ÎÊý');end %Èç¹ûK=NÔòÊä³öÒÑ´ïµ½×î´óµü´ú´ÎÊý

µÚ¶þ²½£ºÔÚMATLABÃüÁî´°¿ÚÇó½â·½³Ìf(x)=e^x+10x-2=0£¬¼´ÊäÈëÈçÏ >>fun=inline('exp(x)+10*x-2') >> dfun=inline('exp(x)+10')

>> x=agui_newton(fun,dfun,0,0.5*10^-3) µÚÈý²½£ºµÃ³ö½á¹û£¬ÇÒ½á¹ûΪ k 1 x 0.09090909090909

2 3 ÒÔÏÂÊǽá¹ûµÄÆÁÄ»½Øͼ

0.09052510858339 0.09052510858339

Æß¡¢ ʵÑé½á¹û

£¨1£©x11=0.09033 £¨2£©x5=0.09052 £¨3£©x2=0,09052 °Ë¡¢ ʵÑé·ÖÎöÓë½áÂÛ

ÓÉÉÏÃæµÄ¶Ô¶þ·Ö·¨¡¢µü´ú·¨¡¢Å£¶Ù·¨ÈýÖÖ·½·¨µÄÈý´ÎʵÑé½á¹û£¬ÎÒÃÇ¿ÉÒԵóöÕâÑùµÄ½áÂÛ£º¶þ·Ö·¨ÒªÑ­»·k=11´Î£¬µü´ú·¨Òªµü´úk=5´Î£¬Å£

x¶Ù·¨Òªµü´úk=2´Î²ÅÄÜ´ïµ½¾«¶ÈΪ0.5?10?3µÄÒªÇ󣬶øÇÒ·½³Ìe?10x?2?0µÄ¾«È·½â¾­¼ÆË㣬Ϊ0.0905250, ¼ÆËãÁ¿´Ó´óµ½Ð¡ÒÀ´ÎÊÇ:¶þ·Ö·¨,µü´ú·¨,Å£¶Ù·¨¡£ÓÉ´Ë¿ÉÖª£¬Å£¶Ù·¨ºÍµü´ú·¨µÄ¾«È·¶ÈÒªÓÅÔ½ÓÚ¶þ·Ö·¨¡£¶øÕâÈýÖÖ·½·¨ÖУ¬Å£¶Ù·¨²»½ö¼ÆËãÁ¿ÉÙ£¬¶øÇÒ¾«È·¶È¸ß¡£´Ó¶ø¿É֪ţ¶Ùµü´ú·¨ÊÕÁ²ËÙ¶ÈÃ÷ÏÔ¼Ó¿ì¡£¿ÉÊǵü´ú·¨ÊǾֲ¿ÊÕÁ²µÄ£¬ÆäÊÕÁ²ÐÔÓë³õÖµx0Óйء£¶þ·Ö·¨ÊÕÁ²ËäÈ»ÊÇËÙ¶È×îÂý£¬µ«Ò²ÓÐ×Ô¼ºµÄÓÅÊÆ£¬¿É³£ÓÃÓÚÇ󾫶Ȳ»¸ßµÄ½üËƸù¡£µü´ú·¨ÊÇÖð´Î±Æ½üµÄ·½·¨,Ô­Àí¼òµ¥,µ«´æÔÚÊÕÁ²ÐÔºÍÊÕÁ²ËٶȵÄÎÊÌâ¡£¶ÔÓ벻ͬµÄÌâÄ¿£¬¿ÉÒÔ´ÓÈýÖÖ·½·¨µÄÓÅȱµã¿¼ÂÇÓÃÄÄÒ»ÖÖ·½·¨±È½ÏºÃ¡£