Peducate.ir

Peducate.ir

با هم بیاموزیم
Peducate.ir

Peducate.ir

با هم بیاموزیم

محاسبه ریشه توابع دلخواه به روش نیوتن

محاسبه ریشه توابع دلخواه به روش نیوتن

در نرم افزار متلب (Matlab)، میخواهیم برنامه ای نوشته شود تا برای هر تابع دلخواه ریشه را به دست دهد. برای این کار از تابع محاسبه گر ریشه به روش نیوتن استفاده می کنیم.

  

function [x]=newtonroot(f,x0,e)

syms x h;

g=inline(limit((((f(x+h)-f(x))/h),h,0));

k=1;

x=x0-(f(x0)/g(x0));

while abs(x-x0)>e

x0=x;

x=x0-(f(x0)./g(x0));

k=k+1;

end

disp(x);

در خط اول با دستور function تابع محاسبه گر ریشه به روش نیوتن و با نام newtonroot تعریف می شود. این کدها باید در m فایل نوشته شده و با همین نام در محل جاری ذخیره شوند. تابع f، حدس اولیه ریشه x0 و خطای پایان الگوریتم e از ورودی های تابع هستند. خروجی تابع ریشه x می باشد.

در خط دوم با دستور syms متغیرهای سمبلیک x,h تعریف می شوند.

در خط سوم مشتق پارامتری تابع ورودی از طریق محاسبه حد با دستور limit در متغیری با نام g ذخیره می شود.

در خط چهارم گام اولیه تعریف شده و در خط پنجم اولین مقدار ریشه توسط فرمول نیوتن محاسبه می شود.

از خط ششم تا دهم، با حلقه while الگوریتم نیوتن پیاده سازی می گردد.

در خط آخر و با دستور disp مقدار ریشه بدست آمده نمایش داده می شود.

حال از محیط خط فرمان یا command متلب، با دستور inline تابعی که قرار است ریشه آن محاسبه گردد وارد می شود. سپس تابع را فراخوانی می کنیم و ریشه نمایش داده می شود. به عنوان مثال در خط فرمان به صورت زیر عمل می کنیم:

f=inline('sin(x)-cos(x)+x-0.3');

newtonroot(f,1.5,0.0001);

نظرات 0 + ارسال نظر
ایمیل شما بعد از ثبت نمایش داده نخواهد شد