X
تبلیغات
نماشا
رایتل

(*blog_title*)

(*blog_short_description*)

Peducation

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

جستجو
تقویم
مرداد 1395
شیدسچپج
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
بایگانی
نظرسنجی
چقدر از مطالب پورتال رضایت دارید؟

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

در نرم افزار متلب (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)


نام :
ایمیل :
وب/وبلاگ :
ایمیل شما بعد از ثبت نمایش داده نخواهد شد