Peducate.ir

Peducate.ir

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

Peducate.ir

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

حل دستگاه معادلات غیرخطی با دستور fsolve در متلب

حل دستگاه معادلات غیرخطی با دستور fsolve در متلب

در نرم افزار متلب (Matlab)، برای حل دستگاه معادلات غیر خطی، ابتدا تمام معادلات را به سمت چپ برده تا سمت راست تساوی صفر شود مثلا تابع sin(x)=cos(x)+1 را به فرم sin(x)-cos(x)-1=0 تبدیل می کنیم. سپس با استفاده از دستور x=fsolve(y,x0) دستگاه را حل می کنیم.

 

 البته باید توجه داشت که ممکن است نرم افزار متلب نتواند با این دستور هر دستگاهی را حل کند. در دستور فوق y تابع و x0 بازه ای است که حدس می زنیم پاسخ دستگاه در آن باشد. به عنوان نمونه می خواهیم دستگاهی با دو معادله غیرخطی به فرم 2x2-x1 =e^-x2 و 2x1=x2+e^x1 را حل کنیم. برای این کار ابتدا دستورات زیر را در فایل script نوشته و در محل جاری نرم افزار متلب با نام myfun ذخیره کنید:

function F=myfun(x)

F=[2*x(1)-x(2)-exp(x(1));2*x(2)-x(1)-exp(-x(2))];

سپس دستورات زیر را در محیط command متلب بنویسید:

x0=[-5;-5];

x=fsolve(@myfun,x0)

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