سوال درمورد دستور solve در متلب

مدیر انجمن: parse

ارسال پست
نمایه کاربر
mahsa.a.j

عضویت : شنبه ۱۳۹۱/۷/۱ - ۲۱:۱۶


پست: 20

سپاس: 5

جنسیت:

سوال درمورد دستور solve در متلب

پست توسط mahsa.a.j »

با سلام
من با دستور solve تو متلب دوتا مشکل دارم!
مشکل اول: باید حتما تابع را به طور کامل در دستور solve بنویسی با یه مثال ساده بخوام توضیح بدم:
solve('2*x+1')
این برنامه جواب میده ولی اگه y=2*x+1 رو قبلا تعریف کرده باشیم نمیشه برنامه رو به صورت زیر بنویسیم:
syms x,y=2*x+1,
solve('y=0','x')
اینطوری جواب نمیده! راهی نیست که بشه یه تابع از قبل تعریف شده رو در دستور solve فراخوانی کنیم؟
مشکل دوم: اگه از قبل به یه متغیری عدد نسبت داده باشیم بعد از اون متغیر در دستور solve استفاده کنیم متوجه نمیشه! برای مثال:
a=2;
solve('a*x+1','x')
من انتظار دارم جواب منفیه 1/2 بهم بده ولی منفیه 1/a رو میده! راهی هست برای رفع این مشکل؟
البته مسئله ی من به این سادگی نیست خواستم با یه مثال ساده توضیح بدم واضح باشه!
ممنون میشم اگه راهنماییم کنید

نمایه کاربر
javad123javad

نام: Javad

محل اقامت: NoWhere

عضویت : پنج‌شنبه ۱۳۸۷/۳/۲ - ۱۱:۱۷


پست: 912

سپاس: 211

جنسیت:

Re: سوال درمورد دستور solve در متلب

پست توسط javad123javad »

باسلام
وقتی که شما دو متغیر رو به صورت سمبولیک(با syms) تعریف می کنید دیگه نیازی به نوشتن پارامترهای مورد حل و یا قرار دادن صفر برای y نیست.
برای مثال
syms x,y=x^2+3x+1
solve(y)
ans =

5^(1/2)/2 - 3/2
- 5^(1/2)/2 - 3/2
در مورد مقادیر پارامتری مثل a. اگر شما اون رو در syms تعریف کنید به عنوان پارامتر در نظر گرفته شده و حل هم بر اساس پارامتر صورت می گیره. ولی اگر به صورت معمولی به عنوان یک متغیر تعریف کرده و بعد yوx رو تعریف کنید مشکلی در حل پیش نماید.
مثلاً:
a=2
syms x,y=x^2+a*x+1
solve(y)
ans =

-1
-1

نمایه کاربر
mahsa.a.j

عضویت : شنبه ۱۳۹۱/۷/۱ - ۲۱:۱۶


پست: 20

سپاس: 5

جنسیت:

Re: سوال درمورد دستور solve در متلب

پست توسط mahsa.a.j »

کاملا متوجه شدم مشکلم حل شد smile020
واقعا سپاسگزارم از راهنماییتون
موفق باشید smile072

ارسال پست