Transcript
Page 1: آموزش محاسبات عددی - بخش ششم

محاسبات عددیMATLABبه کمک

faradars.org/fvmth102

MATLABمحاسبات عددی به کمک نرم افزار «عددی ریشه یابی معادالت غیر خطیروش های »

:مدرساشکان تاشک

درجه و رشته تحصیلیمخابرات گرایش سیستم و مدرس دانشگاه-دکترای مهندسی برق

فرادرس

FaraDars.org

Page 2: آموزش محاسبات عددی - بخش ششم

ششمعناوين فصل

غيرخطي معادالت عددي يابي ريشه :ششم فصليابي ريشه مسأله مقدمه -1

خطي غير معادالت يابي ريشه براي عددي هاي رهيافت انواع -) MATLAB برنامه همراه به( بسته يا محدود دامنه عددي يابي ريشه هاي روش -2

Bisectionيا كردن نصف روش -

Regula يا خطا موقعيت يا نابجايي روش - Falsi يا False Position

) MATLAB برنامه همراه به( باز يا نامحدود دامنه عددي يابي ريشه هاي روش -3)Secant( سكانت روش -يافته تعميم و ساده )Newton-Raphson( رافسون-نيوتون روش -)Fixed-Point( ثابت نقطه روش -

)Matlab برنامه همراه به( نيوتون روش به غيرخطي معادالت هاي دستگاه حل -42

فرادرس

FaraDars.org

Page 3: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102مقدمه

اهداف: خطي غير معادالت ريشه محاسبه• اي چندجمله هاي ريشه• غيرخطي معادالت دستگاه•

عددي هاي روش بندي دسته تابع مشتق به وابستگي عدم• تابع مشتق به وابسته•

3

دسته بندي دوم روش هايعددي

دامنه محدود •نامحدود دامنه•

رهيافت هاي محاسباتي :سعي و خطا•رسم منحني•) بسته(دامنه محدود •دامنه نامحدود•

فرادرس

FaraDars.org

Page 4: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102رهيافت هاي محاسباتيxفرض جواب : روش هاي سعي و خطا• = α محاسبه ،f(α) تكرار آلگوريتم تا ،f(α)≈0 و در انتها

.توقف محاسبه تبديل صورت اين غير در ها،xمحور با آن تقاطع محل يافتن و x(f( رسم :منحني رسم روش•

)x(f = )x(1f-)x(2f بايكديگر دادن تالقي و آنها رسم و) بسته(دامنه محدود •

aمحدوده در جواب فرض• < x < b ، در جواب حفظ با سيستماتيك ، بصورت دامنه كاهش .دامنه داخل

:دو روش متداول• (bisection method)بازه يا تصنيفنصف كردن ) 1

False position or regula)موقعيت خطا ) 2 falsi)

4

فرادرس

FaraDars.org

Page 5: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102ادامه رهيافت هاي محاسباتي

نامحدود دامنه• .مشخص محدوده در ريشه حفظ عدم• .جواب تخمين براي تابع اطالعات از استفاده• :متداول روش چهار•

ثابت، نقطه روش .1نيوتن، روش .2.سكانت روش .3.مولر روش .4.هستند نظر مورد نامحدود دامنه يابي ريشه هاي شيوه از اول روش سه تنها اينجا در *

5

فرادرس

FaraDars.org

Page 6: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

روش هاي دامنه محدود

)بسته(6

فرادرس

FaraDars.org

Page 7: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 روش نصف كردن بازه)Bisection(f(x)=0: بيان رياضي•.يك ريشه در بازه معين: محدوديت هاي روش•:فرضيات رياضياتي•

•y = f(x) دربازه[a,b] پيوسته است.f(a).f(b) < 0 •

f ’(x) ≠ 0 •:حالت مناسب•

7

فرادرس

FaraDars.org

Page 8: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 الگوريتم روش نصف كردن بازه)Bisection(

: گام اول•

:گام دوم•

: گام سوم•

ولاگر شرط فوق برقرار باشد، به مرحله چهار برو، در غيراينصورت بازگرد به گام ا•

.به عنوان ريشه و پايان الگوريتم cنمايش : گام چهارم•

8

فرادرس

FaraDars.org

Page 9: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 ادامه الگوريتم روش نصف كردن بازه)Bisection(

9

:معايب:مزايا .نرخ همگرائي كند* روش ساده و محاسبه خطا آسان *

. در موارد خاص روش به جواب نمي رسد*

فرادرس

FaraDars.org

Page 10: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102)Bisection(روش نصف كردن بازه matlabبرنامه

10

فرادرس

FaraDars.org

Page 11: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102)Bisection(روش نصف كردن بازه matlabبرنامه

11

function bisect(f,a,b,tol,n)% Bisection method for solving the nonlinear %equation f(x)=0.a0=a;b0=b; iter=0;u=feval(f,a);v=feval(f,b);c=(a+b)*0.5;err=abs(b-a)*0.5;disp('_______________________________________')disp(' iter a b c f(c) |b-a|/2 ')disp('_______________________________________')fprintf('\n')if (u*v<=0)

while (err>tol)&(iter<=nw=feval(f,c);

fprintf('%2.0f %10.4f %10.4f %12.6f %10.6f,

%10.6f\n',iter,a,b,c,w,err)

if (w*u<0)b=c;v=w;

endif (w*u>0)

a=c;u=w;enditer=iter+1;c=(a+b)*0.5;err=abs(b-a)*0.5;

end if (iter>n)

disp(' Method failed to converge')end

elsedisp(' The method cannot be applied f(a)f(b)>0')

end% Plot f(x) in the interval [a,b].fplot(f, [a0 b0])xlabel('x');ylabel('f(x)');grid

فرادرس

FaraDars.org

Page 12: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102Bisectionمثال ريشه يابي به شيوه

12

:

f پس (a)f (b)<0===========================================================================================================================

كه نتايج در جدول

فرادرس

FaraDars.org

Page 13: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102Bisection ادامه مثال ريشه يابي به شيوه

]1 ,2[در بازه 2x-3x)=x(f-1رسم تابع •

13

>>bisect('f1',1,2,10^(‐4),40)iter a                 b                c              f( c)          |b‐a|/2________________________________________________   0      1.0000      2.0000      1.500000    0.125000    0.5000001      1.0000      1.5000      1.250000   ‐0.609375    0.2500002      1.2500      1.5000      1.375000   ‐0.291016    0.1250003      1.3750      1.5000      1.437500   ‐0.095947    0.0625004      1.4375      1.5000      1.468750    0.011200    0.0312505      1.4375      1.4688      1.453125   ‐0.043194    0.0156256      1.4531      1.4688      1.460938   ‐0.016203    0.0078137      1.4609      1.4688      1.464844   ‐0.002554    0.0039068      1.4648      1.4688      1.466797    0.004310    0.0019539      1.4648      1.4668      1.465820    0.000875    0.00097710     1.4648      1.4658      1.465332   ‐0.000840   0.00048811     1.4653      1.4658      1.465576   0.000017     0.00024412     1.4653      1.4656      1.465454    ‐0.000411   0.000122

فرادرس

FaraDars.org

Page 14: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102)Bisection(قضيه مهم در مورد همگرايي روش نصف كردن بازه

14

===========================================================================================================================

فرادرس

FaraDars.org

Page 15: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102Bisectionمثال از دقت ريشه يابي به شيوه

15

fتابعتعداد دفعات الزم تكرار عمل نصف كردن براي يافتن صفر : مثال (x) تعريف شده در مثال قبل را.بدست آوريد 10-6مطلق با دقت كمتر از خطاي

=========================================================================================================

:كه داشته باشيمرا به گونه اي بدست آوريم nمي خواهيم ) جواب

:در اين صورت

.الزم خواهد بود 10-6تقريب حدود بار تكرار عمل نصف كردن، براي بدست آوردن يك 19بنابراين حداكثر

61 1 1 1

2 1| | ( ) 102 2n n n n n

b ac b a

6( 1) log(2) 6 1 19log 2

n or n

فرادرس

FaraDars.org

Page 16: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 معيارهاي خطا براي خاتمه روش نصف كردن بازه)Bisection(:ردك استفاده زير قرار به هايي فرمول از توان مي خطا، محاسبه براي :نكته•

يا يا

16

| |n n

n

a ba

| |n na b فرادرس

FaraDars.org

Page 17: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

تابع غيرخطيf (x) در بازه[a,b] بصورت خطي تقريب زده مي شود.

روش False Positionنام به كهRegula Falsi شيوه ي مشابه است، مشهور نيزBisection،از تربيش كمي سرعت با كه است برتري اين داراي كه تفاوت اين با مي باشد

.مي دهد بدست را جواب قبل، شيوه ي3 معادلهx بين واصل خط تالقي محل از كه جديد :شود مي حاصل و نقطه دو

False Positionروش نابجايي يا

17

2 13 2 2

2 1

( )( ) ( )

x xx x f x

f x f x

1 1( , ( ))x f x2 2( , ( ))x f x

فرادرس

FaraDars.org

Page 18: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102)False Position(الگوريتم روش موقعيت خطا

: گام اول•

:گام دوم•

: گام سوم•

ولاگر شرط فوق برقرار باشد، به مرحله چهار برو، در غيراينصورت بازگرد به گام ا•

.به عنوان ريشه و پايان الگوريتم cنمايش : گام چهارم•18

n

n

n

n

bcbf

acaf

nn

nnnn bfaf

babfbc

anbn

f(an)

next estimate, c

f(bn)

F(c)

nnn

nnnn

bbcaotherwiseaacbafcfif

11

11

,,0)().(

2111 ||/|| ceorandabe nnnn

فرادرس

FaraDars.org

Page 19: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102شبه كد الگوريتم روشFalse position

19

فرادرس

FaraDars.org

Page 20: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 False positionروشMatlabبرنامه

function false(f,a,b,tol,n)

% False position method for solving the nonlinear

% equation f(x)=0.

a0=a;

b0=b;

iter=0;

u=feval(f,a);

v=feval(f,b);

c=(v*a-u*b)/(v-u);

w=feval(f,c);

disp('_________________________________________')

disp(' iter a b c f(c) |b-a|')

disp('_________________________________________')

fprintf('\n')

if (u*v<=0)

while (abs(w)>tol)&(abs(b-a)>tol)&(iter<=n)&((v-

u)~=0)

w=feval(f,c);

fprintf('%2.0f %12.4f %12.4f %12.6f %10.6f

%10.6f\n',iter,a,b,c,w,abs(b-a))

20

if (w*u<0)

b=c;v=w;

end

if (w*u>0)

a=c;u=w;

end

iter=iter+1;

c=(v*a-u*b)/(v-u);

end

if (iter>n)

disp(' Method failed to converge')

end

if (v-u==0)

disp(' Division by zero')

end

else

disp(' The method cannot be applied f(a)f(b)>0')

end

% Plot f(x) in the interval [a,b].

fplot(f,[a0 b0])

xlabel('x');ylabel('f(x)'); grid

فرادرس

FaraDars.org

Page 21: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 مثال ريشه يابي به شيوهFalse Position

21

11 ba

:

===========================================================================================================================

فرادرس

FaraDars.org

Page 22: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102خطا ادامه مثال ريشه يابي به شيوه نابجايي يا موقعيت]1 ,2[در بازه 2x-3x)=x(f-1رسم تابع •

22

>> fals('f1',1,2,10^(‐4),40)________________________________________________iter a               b            c            f(c)         |b‐a|________________________________________________

0       1.0000       2.0000      1.250000   ‐0.609375   1.0000001       1.2500       2.0000      1.376623   ‐0.286264   0.7500002       1.3766       2.0000      1.430925   ‐0.117660   0.6233773       1.4309       2.0000      1.452402   ‐0.045671   0.5690754       1.4524       2.0000      1.460613   ‐0.017331   0.5475985       1.4606       2.0000      1.463712   ‐0.006520   0.5393876       1.4637       2.0000      1.464875   ‐0.002445   0.5362887       1.4649       2.0000      1.465310   ‐0.000916   0.5351258       1.4653       2.0000      1.465474   ‐0.000343   0.5346909       1.4655       2.0000      1.465535   ‐0.000128   0.53452610      1.4655       2.0000      1.465558   ‐0.000048   0.534465

فرادرس

FaraDars.org

Page 23: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 روش موقعيت خطا)False Position()False Position(شبه كد و الگوريتم روش نابجايي •

23

1 1

1 1

0,1, ...,( ) ( )

( ) ( )( ). ( ) 0, ,

, , .

n n n n

n n

n n n n

n n n

for n ITMAXf b a f a b

cf b f a

if f a f c set a a b cotherwise set a c b b

فرادرس

FaraDars.org

Page 24: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102)Modified False Position(الگوريتم روش موقعيت خطاي بهبود يافته

0a=0cو na(f=F(و f=G)nb(: مفروضات اوليه•

: گام اول•

:گام دوم•

: گام سوم•

اگر شرط فوق برقرار باشد، به مرحله چهار برو، در غيراينصورت بازگرد به گام اول•

.به عنوان ريشه و پايان الگوريتم cنمايش : گام چهارم•24

FG

FbGabfafbabfbc

nn

nnnnn

][

1

2/,)(,

2/,)(,0)().(

1111

11111

GGafFbbcaotherwise

FFbfGcbaacfcfif

nnnnn

nnnnnnn

21111 ||/|| nnnnn ceorandabe

فرادرس

FaraDars.org

Page 25: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102Modified False positionروشMatlabبرنامه

function Modified_fals(f,a,b,tol,n)

% False position method for solving the nonlinear

% equation f(x)=0.

a0=a;

b0=b;

iter=0;

F=feval(f,a);

G=feval(f,b);

c=(G*a-F*b)/(G-F);

W=feval(f,c);

disp('______________________________________________')

disp(' iter a b c f(c) |b-a|')

disp('______________________________________________')

fprintf('\n')

if (F*G<=0)

while (abs(W)>tol)&(abs(b-a)>tol)&(iter<=n)&((G-F)~=0)

W=feval(f,c);

25

fprintf('%2.0f %12.4f %12.4f %12.6f %10.6f %10.6f\n',iter,a,b,c,w,abs(b-a))

if (W*F<0)b=c;G=W;F=F/2;

endif (W*F>0)

a=c;F=W;G=G/2;enditer=iter+1;c=(G*a-F*b)/(G-F);

endif (iter>n)

disp(' Method failed to converge')endif (G-F==0)

disp(' Division by zero')end

elsedisp(' The method cannot be applied f(a)f(b)>0')

end % Plot f(x) in the interval [a,b].fplot(f,[a0 b0])xlabel('x');ylabel('f(x)'); grid

فرادرس

FaraDars.org

Page 26: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 مثال ريشه يابي به شيوهModified False Position

26

:

===========================================================================================================================

:ده داريمبه عنوان فرضيات اوليه در الگوريتم روش ريشه يابي عددي نابجايي اصالح ش) جواب مثال3)=0b(f=G 1و-)=0a(f=F

:جديد داريم cبراي محاسبه -گام اول از تكرار نخست

:صورت خواهيم داشتاين در -گام دوم از تكرار نخست

چك كردن شرط يا -گام سوم از تكرار نخست

.به علت برقراري هر كدام از دو شرط فوق، به گام اول از تكرار دوم مي رويم

25.1

)1(3]1231[][

100

00

00001

cFG

FbGabfafbabfbc

5.12/,6094.0)(

25.1,20)()(1&6094.0)(

11

110110001

GGcafF

cabbcfcfaccf

tolcf )( 1tola

ab

1

11 ||

فرادرس

FaraDars.org

Page 27: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 ادامه مثال ريشه يابي به شيوهModified False Position

27

-گام اول از تكرار دوم) ادامه جواب مثال

:در اين صورت خواهيم داشت -دومگام دوم از تكرار

يا چك كردن شرط -دومگام سوم از تكرار

.رفت عدب تكرار از اول گام به بايستي مجدد هستند، برقرار سوم گام شرايط همچنان اينكه به توجه با

.به اين ترتيب، عمليات تكرار تا زماني كه شرايط گام سوم نقض شوند ادامه مي يابند

tolcf )( 2

4667.1

)6094.0(5.1)]6094.0(25.125.1[][

211

11

11112

cFG

FbGabfafbabfbc

00397.0)(,3047.02/

25.1,4667.10)()(25.1&00397.0)(

22

12221212

cbfGFF

aacbcfcfccf

tola

ab

1

11 ||

فرادرس

FaraDars.org

Page 28: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102هادامه مثال ريشه يابي به شيوه نابجايي اصالح شد]1 ,2[در بازه 2x-3x)=x(f-1رسم تابع •

28

_________________________________________________iter a       b    c         f(c)      |b‐a|_________________________________________________0       1.0000       2.0000      1.250000   ‐0.609375   1.0000001       1.2500       2.0000      1.466667    0.003852   0.7500002       1.2500       1.4667      1.463962   ‐0.005645   0.2166673       1.4640       1.4667      1.465979    0.001431   0.0027054       1.4640       1.4660      1.465300   ‐0.000953   0.0020175       1.4653       1.4660      1.465687    0.000408   0.0006796       1.4653       1.4657      1.465509   ‐0.000220   0.0003887       1.4655       1.4657      1.465601    0.000106   0.000179

فرادرس

FaraDars.org

Page 29: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

روش هاي نامحدوددامنه )باز(

29

فرادرس

FaraDars.org

Page 30: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102روش سكانت

αو دو تقريب اوليه آن حول صفر تابع به نام Secantشيوه ي

30

False و Bisection روش هاي آنجائيكه از Position با يوه ش لذا مي كنند، ميل ريشه سمت به كمي سرعت

ينچن يك .است نياز ريشه يافتن براي سريعتر ايشيوه ي مشابه .دارد نام Secantشيوه ي شيوه اي،

False Position، زدن تقريب بر نيز روش اين اساس دو هك دارد قرار مستقيم خط يك طريق از تابع ريشه اما مي كند، وصل يكديگر به را تابع نمودار از نقطه داراي حتماً اوليه حدس نقاط كه نيست نيازي.باشند مخالف عالمت

فرادرس

FaraDars.org

Page 31: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102)Secant(الگوريتم روش سكانت

: گام اول•

:گام دوم•

اگر شرط فوق برقرار باشد، به مرحله چهار برو،: گام سوم•: در غيراينصورت داريم

.به عنوان ريشه و پايان الگوريتم 1i+xنمايش : گام چهارم•31

iiii xxxxSet 11 ,

2111 |)(|/|| iniin xfeorandxxe

ii

iiiii xfxf

xxxfxx

1

11

فرادرس

FaraDars.org

Page 32: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 شبه كد و برنامهMatlab ريشه يابي به روش سكانتشبه كد•

32

تابعMatlab فرادرسبراي روش سكانت

FaraDars.org

Page 33: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102سكانت روش Matlabبرنامه

function secant(f,x0,x1,tol,n)

% The secant method for solving the nonlinear

% equation f(x)=0.

iter=0;

u=feval(f,x0);

v=feval(f,x1);

err=abs(x1‐x0);

disp('__________________________________')

disp('iter xn f(xn)      f(xn+1)‐f(xn)    |xn+1‐xn|')

disp('__________________________________')

fprintf('%2.0f  %12.6f  %12.6f\n',iter,x0,u)

33

fprintf('%2.0f  %12.6f  %12.6f  %12.6f  %12.6f\n',iter,x1,v,v‐u,err)while (err>tol)&(iter<=n)&((v‐u)~=0)

x=x1‐v*(x1‐x0)/(v‐u);x0=x1;

u=v;x1=x;v=feval(f,x1);err=abs(x1‐x0);iter=iter+1;fprintf('%2.0f  %12.6f  %12.6f  %12.6f  

%12.6f\n',iter,x1,v,v‐u,err)endif ((v‐u)==0)

disp(' Division by zero')endif (iter>n)

disp(' Method failed to converge')end

فرادرس

FaraDars.org

Page 34: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102مزايا و معايب ريشه يابي به روش سكانت:مزايا•همگرايي سريع) 1

به مشتق نيازي ندارد) 2

34

معايب غير حد از بيش تابع چنانچه )1

حالتي، چنين در باشد، خطي گام در شده يافت هاي ريشه به همگرايي جاي به بعدي، هاي

راواگ شكل، مطابق ريشه، سمت.گردند مي

x0 x1r x2

فرادرس

FaraDars.org

Page 35: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 مثال ريشه يابي به شيوهSecant

35

:

===========================================================================================================================

لكه نتايج در جدو

f (x1)=3

x1

فرادرس

FaraDars.org

Page 36: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102سكانت ادامه مثال ريشه يابي به شيوه

]1 ,2[در بازه 2x-3x)=x(f-1رسم تابع •

36

>> secant('f1',1,2,10^(‐4),40)________________________________________________iter xn f(xn)       f(xn+1)‐f(xn)        |xn+1‐xn|________________________________________________0      1.000000      ‐1.0000000      2.000000       3.000000       4.000000           1.0000001      1.250000      ‐0.609375      ‐3.609375           0.7500002      1.376623      ‐0.286264       0.323111           0.1266233      1.488807       0.083463       0.369727           0.1121844      1.463482      ‐0.007322      ‐0.090786           0.0253255      1.465525      ‐0.000163       0.007160           0.0020436      1.465571      ‐0.000163       0.000163           0.0020437      1.465571      ‐3.20E‐07       ‐0.000000           0.000000 

فرادرس

FaraDars.org

Page 37: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 روش سكانت)Secant(

37

for n=1,2,…, ITMAX

11

1

( )[ ]( ) ( )

n nn n n

n n

x xx x f x

f x f x

11

1

| || ( ) | , | |

| |n n

n n nn

x xf x x x or

x

فرادرس

FaraDars.org

Page 38: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 رافسون ساده-نيوتنروش

.همگراست است جواب نزديك اوليه فرض كه مواردي كليه در تقريباً كه قوي روشي•منحني بر مماس تابع ريشه از استفاده مبناي بر آلگوريتم•

38

فرادرس

FaraDars.org

Page 39: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102)Newton-Raphson(الگوريتم روش نيوتن

: گام اول•

:گام دوم•

اگر شرط فوق برقرار باشد، برو مرحله چهار،: گام سوم•: در غيراينصورت داريم

.به عنوان ريشه و پايان الگوريتم 1i+xنمايش : گام چهارم•39

11 iixxSet ii

2111 |)(|/|| iniin xfeorandxxe

i

iii xf

xfxx

1

فرادرس

FaraDars.org

Page 40: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102رافسون-نيوتن روش Matlabبرنامه

function newton(f,df,x0,tol,n)

% Newton's method for solving the nonlinear

% equation f(x)=0.

iter=0;

u=feval(f,x0);

v=feval(df,x0);

err=abs(u/v);

disp('_____________________________')

disp(' iter x            f(x)          df(x)      |xn+1‐xn|')

disp('_____________________________')

fprintf('%2.0f  %12.6f  %12.6f  %12.6f\n',iter,x0,u,v)

while (err>tol)&(iter<=n)&(v~=0)

x1=x0‐u/v;40

err=abs(x1‐x0);x0=x1;u=feval(f,x0);v=feval(df,x0);iter=iter+1;fprintf('%2.0f  %12.6f  %12.6f  %12.6f  

%12.6f\n',iter,x0,u,v,err)endif (v==0) disp('  division by zero')     

endif (iter>n)disp('  Method failed to converge')

end

فرادرس

FaraDars.org

Page 41: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102ايرادات روش نيوتن

انتخاب عدم صورت در واگرايي• ايبر مثالً مناسب، شروع نقطه هيچگاه شده، داده نشان حالت هاx محور مشتق از حاصل خط.كند نمي قطع را

همحاسب غيرقابل يا و مشكل• ازهب نقاط در تابع مشتق بودن.شده داده اي

41

فرادرس

FaraDars.org

Page 42: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 مثال ريشه يابي به شيوه نيوتن)Newton-Raphson(

42

:

كه

===========================================================================================================================

فرادرس

FaraDars.org

Page 43: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102رافسون-ادامه مثال ريشه يابي به شيوه نيوتن]1 ,2[در بازه 2x-3x)=x(f-1رسم تابع •

43

>> newton('f1','df1',1,10^(‐4),40)________________________________________________iter xn f(xn)            df(xn)             |xn+1‐xn|________________________________________________0      1.000000           ‐1.000000      1.0000001      2.000000            3.000000      8.000000            1.0000002      1.625000            0.650391      4.671875            0.3750003      1.485786            0.072402      3.651108            0.1392144      1.465956            0.001352      3.515168            0.0198305      1.465571            0.000001      3.512556            0.0003856      1.465571            0.000000      3.512555            143E‐7

فرادرس

FaraDars.org

Page 44: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 گانهتعميم يافته و ريشه هاي چندرافسون -نيوتنروش

f شرط تحت را نيوتن الگوريتم قبل، قسمت در• ’ (α)≠ عنوان به نيز را α و آورديم بدست 0 .نموديم فرض ساده ريشه ي

زماني نيوتن روش از استفاده در مشكل روبرو، شكل مطابق•.نباشد ساده ا ي ريشه ديگر α كه مي شود ظاهري

•α مرتبه ي مكرر ي ريشه را kتابع از ام f اگر گوئيم:

44

0)(0)()()( )()1( kk fbutfff 0)(0)()( )()1( kk fbutfff

فرادرس

FaraDars.org

Page 45: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102هتعميم يافته و ريشه هاي چندگانرافسون -ادامه روش نيوتن يك داراي f كه مي كنيم فرض . مي كند نيوتن روش اصالح به مجبور را ما ، مكرر ريشه هاي از ناشي مشكالت

:كنيم مي تعريف را زير جديد تابع ابتدا .است تكرار بار m با α مانند ريشه

f تابع تيلور بسط معادله از استفاده با حال (x) حول α مي آيد در زير صورت به :

: كه اي بگونه

:مي آوريم بدست فوق، معادله از گيري مشتق با

45

( )( )

'( )f x

u xf x

( ) ( ) ( )mf x x h x

( ) ( 1)( ) ( )( ) ( ) ...

! ( 1)!

m mf fh x x

m m

1 1'( ) ( ) '( ) ( ) ( ) ( ) [( ) '( ) ( )]m m mf x x h x m x h x x x h x mh x

0)(0)()()( )()1( mm fbutfff فرادرس

FaraDars.org

Page 46: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102هتعميم يافته و ريشه هاي چندگانرافسون -ادامه روش نيوتن:نوشت زير فرم به را معادله مي توان قبل معادالت از بنابراين

:آن در كه

:داريم .باشد مي كه آنجايي از .باشد

و روش اعمال با حال .است x=α در ريشه ساده يك داراي u(x) كه كرد استباط مي توان فوق، روابط به توجه با

:مي شود حاصل فوق نتايج از استفاده با و u(x) تابع به نيوتن

نيوتن يافته تعميم روش را فوق معادله ي .مي كند مشخص را ريشه چندگانگي درجه m ،رابطه اين در كه)Modified Newton Method( نامند مي.

46

( )( )'( )

f xu xf x

( ) ( )

( ) ( ) ( )( ) '( ) ( )

x h xu x x x

x h x mh x

( )( )

( ) '( ) ( )h x

xx h x mh x

1lim ( )x

xm

( ) ( )( )!

mfhm

1lim '( ) lim[( ) '( ) ( )]x x

u x x x xm

1

( )'( )

nn n

n

f xx x m

f x

فرادرس

FaraDars.org

Page 47: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102ندگانهتعميم يافته و ريشه هاي چرافسون -مثال براي روش نيوتن نظر در با .مي باشد x=1 در مضاعف ريشه ي يك داراي تابع )1 مثال صورت.بزنيد تقريب و تخمين را ريشه اين نيوتن روش از استفاده با و 0x=0 گرفتن

==========================================================================================f از نموداري )مثال پاسخ (x) افزار نرم توسط شده رسم MATLAB در . است شده داده نشان روبرو شكل

به كه هستند اعداد از سري يك 1x,0x,… كه مي كنيم فرض :تعريف .بگيريم نظر در را nx-α=ne مجموعه و باشند همگرا α مثل عددي باشند موجود C مثل ديگري ثابت مثبت عدد و k مثل عددي اگر حال:كه گونه اي به

.مي نامند مجانبي خطاي ثابت را C و همگرائي درجه ي يا مرتبه را k آنگاه

47

3 2( ) 7 11 5f x x x x

1|lim n

kxn

eC

e

0 1 2 3 4 5

-15

-10

-5

0

5

10

15

فرادرس

FaraDars.org

Page 48: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102اي تعميم يافته و ريشه هرافسون -ادامه مثال براي روش نيوتن

چندگانه وتنني روش كه مي شود مشاهده زير، جدول در شده داده عددي نتايج و فوق تعريف به توجه با )مثال پاسخ ادامه

.باشد مي همگرا 1α= سمت به كند، بسيار اما خطي طور به

48

>> newton('f12','df12',0,10^(-4),40)____________________________________________________iter x f(x) df(x) |xn+1-xn|____________________________________________________0 0.000000 -5.000000 11.000000 ---1 0.454545 -1.352367 5.256198 0.4545452 0.711835 -0.356084 2.554434 0.2572903 0.851234 -0.091818 1.256523 0.1393994 0.924307 -0.023352 0.622734 0.0730735 0.961805 -0.005891 0.309935 0.0374986 0.980813 -0.001480 0.154603 0.0190087 0.990384 -0.000371 0.077209 0.0095718 0.995186 -0.000093 0.038582 0.0048029 0.997592 -0.000023 0.019285 0.00240610 0.998795 -0.000006 0.009641 0.00120411 0.999398 -0.000001 0.004820 0.00060212 0.999699 -0.000000 0.002410 0.00030113 0.999849 -0.000000 0.001205 0.00015114 0.999925 -0.000000 0.000602 0.000075

فرادرس

FaraDars.org

Page 49: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102نيوتن تعميم يافته روش Matlabبرنامه

49

function newton2(f,df,x0,m,tol,n)% The Modified Newton's method for solving the nonlinear% equation f(x)=0.iter=0;u=feval(f,x0);v=feval(df,x0);err=abs(m*u/v);disp('___________________________________________')disp('iter x f(x) df(x) |xn+1-xn|')disp('___________________________________________')fprintf('%2.0f %12.6f %12.6f %12.6f\n',iter,x0,u,v)while (err>tol)&(iter<=n)&(v~=0)

x1=x0-m*u/v;err=abs(x1-x0);x0=x1;u=feval(f,x0);v=feval(df,x0);iter=iter+1;fprintf('%2.0f %12.6f %12.6f %12.6f

%12.7f\n',iter,x0,u,v,err)pause(1)y(iter)=err;

endif (v==0)

disp(' division by zero') endif (iter>n), disp(' Method failed to converge') ; end

فرادرس

FaraDars.org

Page 50: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102اي تعميم يافته و ريشه هرافسون -ادامه مثال براي روش نيوتن

چندگانهModifiedشيوه ي از استفاده با حال )مثال پاسخ ادامه Newton Method، به قبل مثال همان هاي داده اعمال و .شود مي همگرا 1α= سمت به سريع، بسيار و خطي طور به ها پاسخ كه ببينيد توانيد مي نيوتن، روش اين

50

>> newton2('f12','df12',0,2,10^(‐2),40)________________________________________________iter xn f(xn)                 df(xn)       |xn+1‐xn|___________________________________________________0      0.000000     ‐5.000000     11.0000001      0.909091     ‐0.033809      0.752066     0.90909092      0.999001     ‐0.000004      0.007995     0.08991013      1.000000     ‐0.000000      0.000001     0.0009989

فرادرس

FaraDars.org

Page 51: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102ندگانهتعميم يافته و ريشه هاي چرافسون -مثال براي روش نيوتن نظر در با .مي باشد x=3 در مضاعف ريشه ي يك داراي تابع )2 مثال صورت.بزنيد تقريب و تخمين را ريشه يافته بسط نيوتن روش از استفاده و =2m و 0x=0 گرفتن

==========================================================================================f از نموداري )مثال پاسخ (x) افزار نرم توسط MATLAB روبرو شكل در . است شده داده نشان سپس و تعريف قرار به توابعي توانيم مي Matlab برنامه از استفاده با حال همان كه newton2 تابع برنامه قالب در است، نيوتن يابي ريشه يافته تعميم فرم

:كنيم استفاده

51

1834)( 23 xxxxf

-2 -1 0 1 2 3 4 5-20

-15

-10

-5

0

5

10

15

20

25

30

13( );^3 4* ^2 3* 18;

13( );3* ^2 8* 3;

function f f xf x x x

function f df xf x x

فرادرس

FaraDars.org

Page 52: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102اي تعميم يافته و ريشه هرافسون -ادامه مثال براي روش نيوتن

چندگانهModifiedشيوه ي از استفاده با حال )مثال پاسخ ادامه Newton Method، روش به قبل صفحه توابع اعمال و .شوند مي همگرا 3α= سمت به سريع، بسيار و خطي طور به ها پاسخ كه ببينيد توانيد مي يافته، تعميم نيوتن

52

>> newton2('f13','df13',0,2,10^(‐2),40)__________________________________________________iter xn f(xn)                   df(xn)              |xn+1‐xn|__________________________________________________0      0.000000        18.000000         ‐3.000000                ‐‐‐1    12.000000     1134.000000      333.000000       12.00000002      5.189189        34.454544         36.269540         6.81081083      3.289273          0.442600           3.143766         1.89991624      3.007700          0.000297           0.077175         0.28157335      3.000006          0.000000           0.000059         0.0076938

>> newton('f13','df13',1,10^(‐2),40)___________________________________________iter x      f(x)      df(x)      |xn+1‐xn|____________________________________________0      1.000000     12.000000     ‐8.0000001      2.500000      1.125000     ‐4.250000      1.5000002      2.764706      0.263790     ‐2.186851      0.2647063      2.885331      0.064237     ‐1.107240      0.1206254      2.943347      0.015866     ‐0.556906      0.0580155      2.971837      0.003944     ‐0.279255      0.0284906      2.985958      0.000983     ‐0.139826      0.0141227      2.992989      0.000245     ‐0.069962      0.0070318      2.996497      0.000061     ‐0.034993      0.0035089      2.998249      0.000015     ‐0.017500      0.00175210      2.999125      0.000004     ‐0.008751      0.00087611      2.999562      0.000001     ‐0.004376      0.00043812      2.999781      0.000000     ‐0.002188      0.00021913      2.999891      0.000000     ‐0.001094      0.00010914      2.999945      0.000000     ‐0.000547      0.000055

فرادرس

FaraDars.org

Page 53: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102بررسي همگرايي روش هاي نيوتن و سكانت

ارائه را زير تعريف ،Secant و Newton روش هاي در همگرائي درجه ي كردن مشخص جهت در• :مي دهيم

همگرا α مثل عددي به كه هستند اعداد از سري يك 1x,0x,… كه مي كنيم فرض :تعريف ديگري ثابت مثبت عدد و k مثل عددي اگر حال .بگيريم نظر در را nx-α=ne مجموعه و باشند:كه گونه اي به باشند موجود C مثل

.مي نامند مجانبي خطاي ثابت را C و همگرائي درجه ي يا مرتبه را k آنگاه

Secantو Newtonروش دو هر براي معادله يك ساده ريشه هاي براي را همگرايي ميزان حال•.مي گيريم نظر در را Newton روش ابتدا .مي كنيم امتحان

53

1|lim n

kxn

eC

e

فرادرس

FaraDars.org

Page 54: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102بررسي همگرايي روش هاي نيوتن و سكانتSecantو Newton روش دو هر براي معادله يك ساده ريشه هاي براي را همگرايي ميزان حال•

.مي گيريم نظر در را Newton روش ابتدا .مي كنيم امتحان :داريم معادله طبق•

:دهد مي بدست را زير عبارت nx حول f تيلور سري باشد، پذير مشتق دوبار f تابع اگر•

.دارد قرار α و nx بين ξ آن در كهf چون• (α) = f و 0 ’ (α) ≠ :داريم فوق رابطه دو كردن تركيب از بنابراين هستند؛ برقرار 0

54

1

( ), 0

'( )n

n nn

f xx x n

f x 1 1

( )'( )

nn n n

n

f xe x x

f x

2( )( ) ( ) ( ) '( ) ''( )

2n

n n n n

xf a f x x f x f

2 21

''( ) ''( )( )

2 '( ) '( )n n

n n nn n

f fe x e

f x f x

فرادرس

FaraDars.org

Page 55: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102بررسي همگرايي روش هاي نيوتن و سكانتf ديگر عبارت به يا باشد، ساده ريشه يك α اگر نتيجه در• ’ (α) ≠ معادله آنگاه 0

دو مرتبه صورت به Newton روش كه مي دهد نشان

خطاي كه شود داده نشان شكل اين به مي تواند موضوع اين مشابه طور به .بود خواهد همگرا:مي كند ارضا را زير معادله ي Secant روش

روش خاطر، همين به .هستند 1n+x و nx، α شامل بازه هاي كوچكترين و آن در كه•Secant ًروش با مشابه همگرائي سرعت داراي تقريبا Newton مي باشد.

55

2 21

''( ) ''( )( )

2 '( ) '( )n n

n n nn n

f fe x e

f x f x

1 1

''( )2 '( )

nn n n

n

fe e e

f

nn

فرادرس

FaraDars.org

Page 56: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 روش تكراري نقطه ثابت)Fixed-Point(

56

هاييمثال گرفتند قرار بررسي و بحث مورد حال به تا كه يي روش ها تمامي از ديگر مهم ي شيوه يك بخش اين در . بودند عمليات تكرار روش هاي از

روش .نماييم مي معرفي g(x)=x فرم به معادالت حل براي را تكرار عمليات از ابتدا در ، مي رود كار به g تابع از ثابت اي نقطه تعيين براي كه ثابت نقطه از سري يك ، اوليه حدس اين كه مي شود آغاز 0p مثل اوليه حدس يك

روش طريق از آمده بدست مقادير

.كند مي مشخص را به n اگر يعني شود، همگرا α مقدار به فوق پروسه و پيوسته تابع يك g اگر همين معادله فرم به معادله جواب گرديد α=np و كرده ميل ،∞ سمت برخورد محل g تابع از p ثابت نقطه ، هندسي بطور .آيد مي بدست صفحه .باشد مي y=g(x) تابع و y=x خط

1 ( ), 0,1, 2...n np g p n

فرادرس

FaraDars.org

Page 57: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102ادامه روش تكراري نقطه ثابت

و واگرايي Fixed-Pointتكرار -2شكل آن از نقطه

57

و Fixed-Pointروش تكرار -1شكل همگرايي آن به نقطه

فرادرس

FaraDars.org

Page 58: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

58

ادامه روش تكراري نقطه ثابت

فرادرس

FaraDars.org

Page 59: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

59

ادامه روش تكراري نقطه ثابتa] بسته بازه روي بر f تابع اگر :متوسط مقدار قضيه b] باز بازه در و بوده پيوسته (a b) باشد، مشتق پذير

a) بازه ي به متعلق c مثل عددي اينصورت در b) كه اي گونه به داشت خواهد وجود:))(()()( abcfafbf

فرادرس

FaraDars.org

Page 60: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

60

ادامه روش تكراري نقطه ثابت .مي باشد مسئله يك براي جواب وجود عدم يا وجود مشخص كردن براي مهم ابزاري زير قضيه

a] بسته بازه روي بر f پيوسته تابع :مياني مقدار قضيه b] اگر .است مفروض w بين عددي هر f(a) و f(b) a) باز بازه ي به متعلق c مثل عددي حداقل اينصورت در ،باشد b) كه اي گونه به داشت خواهد وجود

.بود خواهد برقرار wcf )(فرادرس

FaraDars.org

Page 61: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

61

ادامه روش تكراري نقطه ثابت

دو قضيه قبل

و

با

فرادرس

FaraDars.org

Page 62: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

62

روش تكراري نقطه ثابتمثال هايي از ريشه يابي به 1:

لقضیه قب

قبل صدق نموده و

============================================================================================================================== فرادرس

FaraDars.org

Page 63: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

63

ادامه مثال هايي از ريشه يابي به روش تكراري نقطه ثابت2:

============================================================================================================================== فرادرس

FaraDars.org

Page 64: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

64

روش تكراري نقطه ثابتادامه مثال هايي از ريشه يابي به 3:

===================================================================================================================================nالفب

1

4

1

4

1

4

1

4

1

4

1

4

1

1.00000000

1.30000000

1.53100000

1.69660000

1.80875742

1.88159708

1.92755632

1.95600899

1.97341187

1.98397643

1.99036018

1.99420682

1.99652073

0

1

2

3

4

5

6

7

8

9

10

11

12

بقط يابي ريشه براي را ثابت نقطه روش اعمال از حاصل نتايج روبرو جدول ذكر معادله حل دقيق جواب آنجائيكه از .دهد مي نشان )ب( و )الف( هاي حالت شود مي ديده ، g(x) انتخاب به توجه با باشد، مي 2.0 برابر مثال صورت در شده.باشند مي واگرا )ب( حالت هاي پاسخ و همگرا )الف( حالت هاي پاسخ كه

1

فرادرس

FaraDars.org

Page 65: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102شبه كد ريشه يابي به روش نقطه ثابتشبه كد•

65

فرادرس

FaraDars.org

Page 66: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102)Fixed-point(نقطه ثابت روش Matlabبرنامه

66

function fixed(g,x0,tol,n)% The fixed point iteration method for solving the nonlinear% equation f(x)=0.iter=0;u=feval(g,x0);err=abs(u-x0);disp('_________________________________________')disp('iter x g(x) |xn+1-xn|')disp('_________________________________________')fprintf('%2.0f %12.6f %12.6f\n',iter,x0,u)while (err>tol)&(iter<=n)

x1=u;err=abs(x1-x0);x0=x1;u=feval(g,x0);iter=iter+1;fprintf('%2.0f %12.6f %12.6f %12.8f\n',iter,x0,u,err)

endif (iter>n)

disp('Method failed to converge')end

فرادرس

FaraDars.org

Page 67: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 به روش نيوتن معادالت غير خطيدستگاه هاي حل

67

ريشه به همتغير تك خطي غير تابع يك ريشه هاي يافتن براي قبل هاي قسمت در شده معرفي نيوتن روش بسط• .متغيره چند غيرخطي توابع يابي

.است خطي غير توابع صفرهاي يافتن بيشتر پيچيدگي اصلي مشكل•

آنها بر مماس صفحه ي با را غيرخطي توابع نيوتن ،روش خطي غير تابع هر براي اوليه تخمين يك از شروع با•.مي كند ايجاد را بعدي تقريبي مقدار غيرخطي معادالت حل از حاصل مشترك ريشه و زند مي تخمين

نظر در زير صورت به خطي غير ي معادله دو از دستگاهي ابتدا مي كند، كار الگوريتم اين چطور اينكه فهميدن براي•:گيريم مي

1 1 2

2 1 2

( , ) 0( , ) 0

f x xf x x

فرادرس

FaraDars.org

Page 68: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 به روش نيوتن معادالت غير خطيدستگاه هاي ادامه حل

68

فرادرس

FaraDars.org

Page 69: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 به روش نيوتن معادالت غير خطيدستگاه هاي ادامه حل

69

باال

2

فرادرس

FaraDars.org

Page 70: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 به روش نيوتن معادالت غير خطيدستگاه هاي ادامه حل

70

فرادرس

FaraDars.org

Page 71: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 به روش نيوتن معادالت غير خطيدستگاه هاي ادامه حل

71

فرادرس

FaraDars.org

Page 72: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 به روش نيوتن معادالت غير خطيدستگاه مثال براي حل

72

تا را عمليات اين. كنيد حل x)0()=1,-1( از آغاز و نيوتن روش از استفاده با را زير خطي غير دستگاه )مثال صورت.دهيد ادامه و كرده تكرار را است كه زماني

==============================================================================================

:دهيم تشكيل زير هاي فرمول زير قرار به ژاكوبيني ماتريس بايستي ابتدا )مثال پاسخ

:مي گيرند را زير مقادير ژاكوبين ماتريس و برداري تابع (1-,1) نقطه ي در

:از عبارتند آن هاي جواب .هستند دستگاه جوابهاي هاي ديفرانسيل

6|| || max{| |} 10ix x

31 1 2 1 2

22 1 2 1 2

( , ) 3 21 0

( , ) 2 2 0

f x x x x

f x x x x

21 2

1 21

3 6( , )

2 2x x

J x xx

17 3 6(1 1) , (1 1)

1 2 2F J

(0) (0)1 2,x x

(0)1

(0)2

3 6 172 2 1

x

x

(0)1(0)

(0)2

1.5555562.05556

xx

x

2

فرادرس

FaraDars.org

Page 73: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 وتنبه روش ني معادالت غير خطيدستگاه ادامه مثال براي حل

73

: از است عبارت روش تكرار از نقطه بعدي ، بنابراين )مثال پاسخ ادامه

: از عبارتند بعدي نقطه ي سه ، مشابه طور به

را مسئله اسخپ به نزديك كافي اندازه ي به اوليه تقريب يك سريع بسيار تواند مي نيوتن روش كه داد نشان مثال اين مطالب قطب البته كه مي باشد مرحله درهر زير خطي دستگاه حل به نياز نيوتن، روش مشكالت از يكي .دهد بدست:هستند حل قابل عددي صورت به حاضر، هاي آموزش سري از دوم فصل

(1)1(1)

(1)2

1 1.555556 2.5555561 2.055556 3.055556

xx

x

(2) (3) (4)1.865049 1.661337 1.643173, ,

2.500801 2.359271 2.349844x x x

( )1 11 1

1

( )1

. .

. .

. .

i

n

n ni

n nn

x ff fx x

f fx x fx

فرادرس

FaraDars.org

Page 74: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102نيوتن براي حل دستگاه معادالت غيرخطي روش Matlabبرنامه

74

function newton_sys(F,JF,xx0,tol,maxit)% F is the system given by an (n x 1) matrix;% JF is the Jacobian of F given by an (n x n) matrix;% xx0 is the (n x 1) initial vector, tol ia a tolerance;% max_it is the maximum number of iterations.x0=xx0iter=1;while(iter<=maxit)

y=-feval(JF,x0)\feval(F,x0);xn=x0+y;err= max(abs(xn-x0));if (err<=tol)

x=xn;fprintf(' Newton''s method converges after %3.0f iterations to \n',iter)xreturn;

elsex0=xn;

enditer=iter+1;

enddisp('Newton''s method does not converge')x=xn;

فرادرس

FaraDars.org

Page 75: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 وتنبه روش ني معادالت غير خطيدستگاه ادامه مثال براي حل

75

:كنيم تعريف زير قرار به توابعي بايستي Matlab برنامه از استفاده براي )مثال پاسخ ادامه

.نمود جايگزين newton_sys(f,jf,xx0,tol,n) تابع ورودي هاي آرگومان قالب در را توابع اين بايستي سپس

];2*22.^;212.^*33.^[

);2();1(

)(1

yxyxf

XyXx

Xfffunction

]2,*2;*6,2.^*3[

);2();1(

)(1

xyxjf

XyXx

Xjfjffunction

فرادرس

FaraDars.org

Page 76: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 وتنبه روش ني معادالت غير خطيدستگاه ادامه مثال براي حل

76

:كنيم تعريف زير قرار به توابعي بايستي Matlab برنامه از استفاده براي )مثال پاسخ ادامه

جايگزين newton_sys(‘f1’,’jf1’,xx0,tol,n) تابع ورودي هاي آرگومان قالب در را توابع اين بايستي سپس.نمود

];2*22.^;212.^*33.^[

);2();1(

)(1

yxyxf

XyXx

Xfffunction

]2,*2;*6,2.^*3[

);2();1(

)(1

xyxdf

XyXx

Xjfjffunction

فرادرس

FaraDars.org

Page 77: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

77

مرتبط با ريشه يابي Matlabبرخي دستورات

فرادرس

FaraDars.org

Page 78: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

78

مرتبط با ريشه يابي Matlabادامه برخي دستورات

فرادرس

FaraDars.org

Page 79: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

79

مرتبط با ريشه يابي Matlabادامه برخي دستورات

فرادرس

FaraDars.org

Page 80: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

80

مرتبط با ريشه يابي Matlabادامه برخي دستورات

فرادرس

FaraDars.org

Page 81: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102 ادامه برخي دستوراتMatlab مرتبط با ريشه يابي

ريشه كرد پيدا براي عددي محاسبات رهيافت چه از ،MATLAB افزار نرم در شود بررسي1) شود؟ مي استفاده roots دستور توسط اي جمله چند يك هاي

يابي ريشه براي MATLAB افزار نرم در ديگري توابع و دستورات چه roots دستور از غير2)شود؟ مي يافت غيرخطي معادالت

81

فرادرس

FaraDars.org

Page 82: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org

Page 83: آموزش محاسبات عددی - بخش ششم

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

83

اين اساليد ها بر مبناي نكات مطرح شده در فرادرس» MATLABآموزش محاسبات عددي پيشرفته به كمك نرم افزار«

.تهيه شده است

.براي كسب اطالعات بيشتر در مورد اين آموزش به لينك زير مراجعه نماييد

faradars.org/fvmth102

محاسبات عدديMATLABبه كمك

faradars.org/fvmth102

فرادرس

FaraDars.org


Top Related