Re: [問題] 解微分方程式迴圈已回收
使用num2str及eval
num2str是將數字轉為字串
eval則是將字串視為matlab指令執行
eval也可以將dsolve解出後原本是符號型態的解轉成double型態
k=0;
wn=sqrt(50);
for dr=0.0096:0.0001:0.01
k=k+1;
c=dr*2*wn;
eval(['eq=''D2u+',num2str(c),'*Du+50*u=0'';']) %修改
int='u(0)=0.2,Du(0)=0';
so(k)=dsolve(eq,int,'s');
l=0; %修改
for s=0.005:0.005:10
l=l+1;
dis(k,l)=eval(so(k)); %修改
end
end
我看了一下執行結果
你的l=0應該要放在第一層迴圈
※ 引述《tarepanda275 (趴趴熊)》之銘言:
: 我想解一個迴圈找出這回圈裡的所有方程式
: 程式碼為
: k=0;
: l=0;
: wn=sqrt(50);
: for dr=0.0096:0.0001:0.01
: k=k+1;
: c=dr*2*wn
: eq='D2u+c*Du+50*u=0';
: int='u(0)=0.2,Du(0)=0';
: so(k)=dsolve(eq,int,'s')
: for s=0.005:0.005:10
: l=l+1;
: dis(k,l)=so(k);
: end
: end
: 結果他跑不出我想要的dis所有的值
: 查了一下,他並沒有幫我把c跟s這兩個變數用我上面寫的
: c=dr*2*wn
: 以及
: s=0.005:0.005:10
: 代換掉
: 請問我該怎麼修呢,感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.250.9.113
※ 編輯: ejialan 來自: 111.250.9.113 (09/25 11:33)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章
-10
17