انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
حل معادله دیفرانسیل (متلب - MATLAB)

حل معادله دیفرانسیل (متلب - MATLAB)

#1
سلام به کاربران گرامی برای رفع خطای داده شده برای معادله زیر باید چیکار کنم؟خطا به صورت زیر است(Error in sym/subsref (line 859)

            R_tilde = builtin('subsref',L_tilde,Idx))

کد اصلی :

کد پی‌اچ‌پی:
syms e1(te2(t e3(te4(te5(te6(tl1(tl2(tl3(tl4(tl5(tl6(t)
zdsolve(diff(e1,t)== e2-l1,diff(e2,t)==e3-l2,diff(e3,t)==-6*e1-2.92*e2-1.2*e3+(e4-e1)^2-l3,diff(e4,t)==0,diff(e5,t) == 0,diff(e6,t)==0,diff(l1,t) == ,diff(l2,t)==0,diff(l3,t)==0diff(l4,t) ==0diff(l5,t) ==0,diff(l6,t) ==0)
z.e1
z
.e2
z
.e3
z
.e4
z
.e5
z
.e6
z
.l1
z
.l2
z
.l3
z
.l4
z
.l5
z
.l6 


فایل‌های پیوست

دانلود Untitled3.m

نام فایل Untitled3.m
نوع فایل .m
دفعات دانلود 103
اندازه 380 بایت
ارسال کننده فایل sohrabkarimi18
پاسخ

حل معادله دیفرانسیل (متلب - MATLAB)

#2
سلام.
کد متلب (MATLAB) مورد نظر به صورت زیر می باشد :

کد پی‌اچ‌پی:
syms e1(te2(t e3(te4(te5(te6(tl1(tl2(tl3(tl4(tl5(tl6(t)
zdsolve(diff(e1,t)== e2-l1,diff(e2,t)==e3-l2,diff(e3,t)==-6*e1-2.92*e2-1.2*e3+(e4-e1)^2-l3,diff(e4,t)==0,diff(e5,t) == 0,diff(e6,t)==0,diff(l1,t) == ,diff(l2,t)==0,diff(l3,t)==0diff(l4,t) ==0diff(l5,t) ==0,diff(l6,t) ==0)
z.e1
z
.e2
z
.e3
z
.e4
z
.e5
z
.e6
z
.l1
z
.l2
z
.l3
z
.l4
z
.l5
z
.l6 

بنابراین آن را اجرا می کنیم که نتیجه به صورت زیر خواهد بود :

کد پی‌اچ‌پی:
WarningExplicit solution could not be found
In dsolve at 197
  In kelidestan at 12 
 
=
 
[ empty 
sym ]
 
Comma separated list expansion has cell syntax for an array that is not a cell.

Error in sym/subsref (line 685)
 
           [inds{k},refs{k}] = privformat(inds{k});

Error in kelidestan (line 13)
z.e1 

همان طور که شما تذکر دادید، نتیجه دارای یک پیام خطا می باشد. اما این خطا در کد  z.e1 به وجود می آید که می خواهیم بخشی از اطلاعات پاسخ معادله دیفرانسیل (یعنی z) را بخوانیم.
اما اگر دقت کنید، دستور dsolve اعلام کرده است که نتوانسته پاسخ معادله دیفرانسیل را بیابد. بنابراین خواندن اطلاعات از متغیر z ، باعث به وجود آمدن خطا می شود.
برای اینکه صرفا اعلام نتیجه دستور dsolve را مشاهده کنید، بخشی از کدها را به صورت توضیح (Comment) در می آوریم (تا خروجی شلوغ نشود) :

کد پی‌اچ‌پی:
syms e1(te2(t e3(te4(te5(te6(tl1(tl2(tl3(tl4(tl5(tl6(t)
zdsolve(diff(e1,t)== e2-l1,diff(e2,t)==e3-l2,diff(e3,t)==-6*e1-2.92*e2-1.2*e3+(e4-e1)^2-l3,diff(e4,t)==0,diff(e5,t) == 0,diff(e6,t)==0,diff(l1,t) == ,diff(l2,t)==0,diff(l3,t)==0diff(l4,t) ==0diff(l5,t) ==0,diff(l6,t) ==0)
z.e1
z.e2
z.e3
z.e4
z.e5
z.e6
z.l1
z.l2
z.l3
z.l4
z.l5
z.l6 

اکنون با اجرای کد متلب (MATLAB) بالا، خروجی زیر را خواهیم داشت :

کد پی‌اچ‌پی:
WarningExplicit solution could not be found
In dsolve at 197
  In kelidestan at 2 
 
=
 
[ empty 
sym 

بنابراین مشاهده می کنید که چون دستور dsolve ، پاسخ معادله دیفرانسیل را پیدا نکرده است، متغیر z دارای هیچ مقداری نمی باشد.

Flower
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان