کلیدستان

نسخه‌ی کامل: حل معادله دیفرانسیل (متلب - MATLAB)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام به کاربران گرامی برای رفع خطای داده شده برای معادله زیر باید چیکار کنم؟خطا به صورت زیر است(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 
سلام.
کد متلب (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