, ,

محاسبه ریشه یک تابع به روش نیوتن رافسون در 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 پاسخ
  1. yas3548 says:

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

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

    پاسخ دادن

دیدگاه خود را ثبت کنید

Want to join the discussion?
Feel free to contribute!

پاسخ دهید

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