
نوشته اصلی توسط
pedram.po
سلام دوستان
این معادله ریاضی رو کی میتونه حل کنه؟تو درس بررسی 2 خوردم به این معادله نمیتونم حلش کنم

لطفا کمک کنید
هر کس به جواب رسید راه حلشو توضیح بده
پیش پیش از همتون ممنونم(هر چی زودتر جواب بدین بهتره)
2.4638cos (x)+X =2.5843
باید با روش های نیوتون رافسون حل کرد معادله رو به روش محاسبات عددی
البته میشه به راحتی از مطلب هم استفاده کرد:
حل دستگاه معادلات غیر خطی به سادگی دستگاه معادلات خطی نمی باشد. همانطور که در محاسبات عددی خوانده ایم روشهای حل این گونه دستگاهها روش های تکراری با یک حدس اولیه برای متغیر ها می باشد که روش نیوتن یکی از مهمترین این روشها می باشد.
فرض کنید می خواهیم دستگاه معادله زیر را به کمک متلب حل کنیم:
قدم اول: در قدم اول باید همه معادلات را به یک سمت مساوی برده و برابر صفر قرار دهیم:
قدم دوم: در قدم دوم باید توجه کنید که باید دستگاه معادلات را به صورت یک function در متلب بنویسیم.
توجه کنید این دستگاه دو معادله و دو مجهول x و y دارد. اما در متلب تمامی مجهولات باید مولفه هایی از یک متغیر باشند. یعنی باید مجهولات را برابر با بردار مجهول M قرار دهیم که بردار M برابر می باشد با:
در واقع مجهول M(1) همان جواب x و مجهول M(2) همان y می باشد. پس در هنگام نوشتن دستگاه معادلات در function باید به جای x مقدار M(1) و به جای y مقدار M(2) را قرار دهیم.
نکته: باید دو معادله ای را که برابر با صفر قرار دادید در یک بردار به صورت ستونی در function بازنویسی کنید.
حال با این توضیحات این function را می نویسیم:
out=[ M(1)^2+sin(M(2))-10.5 ; tan(M(1))-exp(M(2))+0.05];
حال به کمک ابن تابع می توانیم این دستگاه معادله را حل کنیم و جواب M را بدست بیاوریم.
دستور حل دستگاه معادلات غیرخطی در متلب دستور fsolve می باشد. ابتدا نحوه نوشتن این دستور را توضیح می دهم:
fsolve ( function , initial_guess)
به جای کلمه function شما باید اسم تابع خودتان را به همراه @ بنویسید.
به جاب initial_guess هم باید بردار حدس اولیه برای متغیرهایتان را وارد کنید. فرض کنید که بردار حدس اولیه برای متغیرهایمان به صورت زیر است:
حال می توانیم دستور fsolve را به کار ببریم:
>> M=fsolve(@myfun , [2 -3])
fsolve completed because the vector of function values is near zero
as measured by the default value of the function tolerance, and
the problem appears regular as measured by the gradient.
<stopping criteria details>
همانطور که میبینید متلب یک بردار با دو عضو را به شما خواهد داد که عضو اول همان x و عضو دوم همان y می باشد. مسلما اگر دستگاه 4 معادله و 4 مجهول داشته باشید M دارای 4 مولفه خواهد بود.
نکات مهم : 1- روشهای تکراری مثل نیوتن بسیار به حدس اولیه حساس می باشند. چنانچه حدس اولیه خیلی پرت زده شود ممکن است الگوریتم نتواند جوابی برای معادلات بدست آورد!
2- حتما در نوشتن function دقت کنید که خروجی تابع (در اینجا out) باید ستونی باشد.