View Full Version : گرفتن معادله دیفرانسیل از کاربر
علیرضا.ا
پنج شنبه 06 فروردین 1394, 18:48 عصر
سلام
میخام با استفاده از تابع input از کاربر یه معادله دیفرانسیل بگیرم و انتگرال اون رو نمایش بدم
اگه از این راه برم:
syms x y ;
U=input('enter eq: ');
اگه کاربر توی معادله Dx یا Dy بزنه با خطای متغیر تعریف نشده روبرو میشم
اگه از این راه برم:
syms x y Dx Dy;
U=input('enter eq: ');
اونوقت Dx خودش یه متغیر حساب میشه نه مشتق x
الان من باید چیکار کنم مثلا اگه کاربر وارد کرد x + Dx چیزی که چاپ میشه ( انتگرال این عبارت) X^2/2 + x باشه؟
hhamidy
جمعه 07 فروردین 1394, 01:06 صبح
سلام.
من منظورتونو از "
الان من باید چیکار کنم مثلا اگه کاربر وارد کرد x + Dx چیزی که چاپ میشه ( انتگرال این عبارت) X^2/2 + x باشه؟" متوجه نشدم!
علیرضا.ا
جمعه 07 فروردین 1394, 01:22 صبح
الگوریتم برنامه من اینه:
از کاربر یه معادله دیفرانسیل میگیره .
که فقط برحسب x و مشتق x که همون Dx باشه هست.
حالا من میخام از این معادله ای که کاربر وارد کرده برحسب x انتگرال بگیرم و اون رو نشون بدم.
دو تا راه رفتم.
راه اول:
syms x;
U=input('enter eq: ');
الان اگه کاربر مثلا بزنه x + Dx برنامه با خطا میاد بیرون ( متغیر Dx تعریف نشده )
راه دوم:
syms x Dx;
U=input('enter eq: ');
الان اگه کاربر مثلا بزنه x + Dx برنامه به Dx به شکل یک متغیر جداگانه به اون نگاه میکنه نه به عنوان مشتق اول x و جوابی که به من میده (x*(2*Dx + x))/2 هست ( معادل با x^2/2 + xDx ) در حال که من انتظار داشتم به من جواب x^2 /2 + x بده
الان باید چیکار کنم؟:/
hhamidy
جمعه 07 فروردین 1394, 14:20 عصر
الگوریتم برنامه من اینه:
از کاربر یه معادله دیفرانسیل میگیره .
که فقط برحسب x و مشتق x که همون Dx باشه هست.
حالا من میخام از این معادله ای که کاربر وارد کرده برحسب x انتگرال بگیرم و اون رو نشون بدم.
دو تا راه رفتم.
راه اول:
syms x;
U=input('enter eq: ');
الان اگه کاربر مثلا بزنه x + Dx برنامه با خطا میاد بیرون ( متغیر Dx تعریف نشده )
راه دوم:
syms x Dx;
U=input('enter eq: ');
الان اگه کاربر مثلا بزنه x + Dx برنامه به Dx به شکل یک متغیر جداگانه به اون نگاه میکنه نه به عنوان مشتق اول x و جوابی که به من میده (x*(2*Dx + x))/2 هست ( معادل با x^2/2 + xDx ) در حال که من انتظار داشتم به من جواب x^2 /2 + x بده
الان باید چیکار کنم؟:/
سلام،
قبلش اینکه Dx مشتق هست رو تعریف نمی کنید؟
syms x y ;
U=input('enter eq: ');
Dx=diff(U,x)
Dy=diff(U,y)
d=int(U)
الان d داره انتگرال رو به این صورت حساب میکنه دیگه:
params =
(x*(x + 2))/2
علیرضا.ا
جمعه 07 فروردین 1394, 14:32 عصر
سلام،
قبلش اینکه Dx مشتق هست رو تعریف نمی کنید؟
syms x y ;
U=input('enter eq: ');
Dx=diff(U,x)
Dy=diff(U,y)
d=int(U)
الان d داره انتگرال رو به این صورت حساب میکنه دیگه:
params =
(x*(x + 2))/2
سلام
دقیقا مشکل من تعریف Dx به عنوان مشتق x بود.
مرسی. الان فکر کنم درست شد ولی نفهمیدم چی شد:لبخندساده:
از یو نسبت به ایکس مشتق گرفتیم گفتیم این میشه Dx ؟ چجوری این جوری شد:متفکر:
hhamidy
جمعه 07 فروردین 1394, 15:11 عصر
خواهش می کنم.
خب براش تعریف کردم که اگر کاربر Dx رو وارد کرد منظور اینه که بر حسب x از این معادله ای که وارد کرده مشتق بگیره و یا اگر در معادله ی تعریفی کاربر Dy وجود داشت یعنی بر حسب y از معادله مشتق بگیره.
که در ادامه اگر انتگرال رو خواست بدست بیاره مشکلی وجود نداشته باشه.
علیرضا.ا
جمعه 07 فروردین 1394, 15:53 عصر
واقعا ممنون.
مشکلم حل شد:)
اون روشی که گفتین یذره مشکل داشت
این راه رو رفتم تا الان که بدون مشکل جواب داده ..:)
syms x y U;
U = x + y;
Dx=diff(U,x);
Dy=diff(U,y);
U=input('enter U: ');
d=int(U)
hhamidy
جمعه 07 فروردین 1394, 16:02 عصر
واقعا ممنون.
مشکلم حل شد:)
اون روشی که گفتین یذره مشکل داشت
این راه رو رفتم تا الان که بدون مشکل جواب داده ..:)
syms x y U;
U = x + y;
Dx=diff(U,x);
Dy=diff(U,y);
U=input('enter U: ');
d=int(U)
چه مشکلی؟
من با توجه به اونچه که گفته بودین در مورد Dx,Dy پاسخ دادم(که نمیدونستید چطور تعریفش کنید).
اگردر کد قبل هم معادله بر حسب x,y (همزمان) در نظر گرفته میشد بازم جواب میداد دیگه، دیگه چرا U رو دوبار به این شکل تعریف کردید؟!
علیرضا.ا
جمعه 07 فروردین 1394, 16:22 عصر
اگه Dx بعد از اینپوت باشه :
برنامه بعد از اینکه اینپوت وارد بشه اگه Dx داشته باشه با خطای متغیر تعریف نشده روبرو میشه .... (طبیعی هم هست چون هنوز Dx نداریم ) -- البته اگه قبلا یه بار برنامه اجرا شده باشه و متغیر Dx توی حافظه وجود داشته باشه ارور نداریم ... ---
اگه Dx رو قبل از اینپوت بزاریم تابع U ناشناختس.
اومدم تابع U رو خیلی ساده در نظر گرفتم و ازش بر حسب x , y مشتق گرفتم تا Dx , Dy ساخته بشن . بعد اینپوت گرفتم:)
hhamidy
جمعه 07 فروردین 1394, 16:30 عصر
اگه Dx بعد از اینپوت باشه :
برنامه بعد از اینکه اینپوت وارد بشه اگه Dx داشته باشه با خطای متغیر تعریف نشده روبرو میشه .... (طبیعی هم هست چون هنوز Dx نداریم ) -- البته اگه قبلا یه بار برنامه اجرا شده باشه و متغیر Dx توی حافظه وجود داشته باشه ارور نداریم ... ---
اگه Dx رو قبل از اینپوت بزاریم تابع U ناشناختس.
اومدم تابع U رو خیلی ساده در نظر گرفتم و ازش بر حسب x , y مشتق گرفتم تا Dx , Dy ساخته بشن . بعد اینپوت گرفتم:)
درسته، آفرین.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.