محاسبه ریشه یک تابع به روش نیوتن رافسون در Matlab

محاسبه ریشه یک تابع به روش نیوتن-رافسون در Matlab

محاسبه ریشه یک تابع به روش نیوتن-رافسون در Matlab


محاسبه ریشه یک تابع به روش نیوتن-رافسون یکی از دقیق ترین روش های پیدا کردن ریشه معادلات است.

در روش نیوتن برای بدست آوردن ریشه تابع از مشتق استفاده می شود در واقع

روش نیوتن رافسون

 

محاسبه ریشه یک تابع به روش نیوتن-رافسون در Matlab
محاسبه ریشه یک تابع به روش نیوتن-رافسون در Matlab

در کد زیر معادله اولیه به فرم

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 نظر

  • سلام این شرت کد تو ی صفحه ی ارتباط با ما وچند جا دیگه مثل درخواست-پروژه هست

    پلاگین فرم سازت کار نمی کنه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *