[討論] 一直無法將sym數據轉成數值來作圖

作者: nissangtr (成大山下智久)   2016-10-04 20:01:35
各位前輩好,在使用matlab解方程式作圖時遇到了一些麻煩
我會先附上我的程式碼,然後簡述我要做的,並指出現在遇到的問題,請知道怎麼辦的人
能夠幫忙一下,謝謝。
tic
clc;clear all;close all;
%設質量=1 自然頻率=1 阻尼比=0.25
m=1;
wn=2*pi;
zeta=0.25;
c=2*m*wn*zeta;
t=0:1:10;
syms y x
u1=dsolve('D2y+2*0.25*2*pi*Dy+2*pi*2*pi*y=(-x)*(exp(-0.5*x))*sin(0.2*x)','Dy(0)=0','y(0)=0','x');
v1=diff(u1,x,1);
EDt_1=int(c*v1.^2);
EDt11=subs(EDt_1,x,t);
EDt1=eval(EDt11);
figure(1);
plot(t,EDt1);
xlabel('t');
ylabel('ED(t)');
legend('a=0.5,b=0.2');
grid on;
title('ED(t),b=0.2');
toc
我想要解一個微分方程
D2y+2*0.25*2*pi*Dy+2*pi*2*pi*y=(-x)*(exp(-0.5*x))*sin(0.2*x),並給定初始條件
y(0)=0,Dy(0)=0
這個微分方程的解u1是代表一個有阻尼的強迫振動的位移歷時,所以將u1進行一次微分
以後可以得到這個系統的速度歷時v1。
接著我要求這個系統在阻尼的作用下所耗散的能量,公式是EDt_1=sigma(c*v1^2)
接著將這個EDt_1轉化成數值EDt1=eval(EDt11),並隨時間t作圖
問題現在我一直碰到一個問題
Error using plot
Data must be numeric, datetime, duration or an array convertible to double.
Error in Untitled9 (line 28)
plot(t,EDt1);
將我的EDt1結果打開來看發現都還是1X1 sym的數據沒有變成數值(如圖)
http://imgur.com/a/F2zFo
發現問題應該是出在我把v1平方了,請問我該怎麼解決呢?
作者: ksr310135 (馨右小小)   2016-10-04 23:11:00
可以請問你跑多久跑出結果的嗎?
作者: hardqwerty   2016-10-07 23:18:00
推成大結構動力

Links booklink

Contact Us: admin [ a t ] ucptt.com