محاسبه ریشه یک تابع به روش نیوتن-رافسون یکی از دقیق ترین روش های پیدا کردن ریشه معادلات است.
در روش نیوتن برای بدست آوردن ریشه تابع از مشتق استفاده می شود در واقع
در کد زیر معادله اولیه به فرم
f=a*x^2+b*x-10
داده شده است که به ازای گرفتن مقادیر مختلف a و b به تعداد سه دفعه ریشه این معادله را پیدا کرده و در پایان نمودار این سه تابع را رسم می کند.
ابتدا دو فانکشن فایل باز می کنیم و در اولی کد معرفی تابع و در دومی مشتق تابع را قرار می دهیم:
کد تعریف تابع f:
%Coding by WWW.CHEMICAL-ENG.IR function y = f(a,b,x) y=a*x.^2+b.*x-10; end
کد تعریف مشتق تابع f همان تابع (g):
%Coding by WWW.CHEMICAL-ENG.IR function z = g(a,b,x) z=2.*a.*x+b; end
کد روش نیوتن-رافسون برای ریشه یابی تابع f:
%Coding by WWW.CHEMICAL-ENG.IR clear; clc; for i=1:3 fprintf('a %d:',i); a(i)=input(''); fprintf('b %d:',i); b(i)=input(''); end x0=input('x0:'); iter=input('max iter:'); tolx=input('tolx:'); for i=1:3 xx(1,i)=x0; for k=2:iter xx(k,i)=xx(k-1,i)-(feval('f',a(i),b(i),xx(k-1,i))/feval('g',a(i),b(i),xx(k-1,i))); end end fprintf('root:%d',xx(iter,:)); s=xx(iter,1)-10:xx(iter,1)+10; ff1=feval('f',a(1),b(1),s); ff2=feval('f',a(2),b(2),s); ff3=feval('f',a(3),b(3),s); plot(s,ff1,s,ff2,s,ff3) grid;
امیدواریم از این آموزش لذت برده باشید :)
1 دیدگاه
yas3548
سلام این شرت کد تو ی صفحه ی ارتباط با ما وچند جا دیگه مثل درخواست-پروژه هست
پلاگین فرم سازت کار نمی کنه