請問怎么用matlab求解既有微分方程又有一般方程的混合方程組啊
請問怎么用matlab求解既有微分方程又有一般方程的混合方程組啊
dy(1)=a1*t+b1*y(1);
y(2)=a2+b2*(t-y(1));
dy(3)=-a3*y(2)*(y(3)-t)/y(1) 請注意第二個方程沒有微分,其中ab都是常數(shù),想得到y(tǒng)(1)-t,y(2)-t,y(3)-t的圖形
dy(1)=a1*t+b1*y(1);
y(2)=a2+b2*(t-y(1));
dy(3)=-a3*y(2)*(y(3)-t)/y(1) 請注意第二個方程沒有微分,其中ab都是常數(shù),想得到y(tǒng)(1)-t,y(2)-t,y(3)-t的圖形
數(shù)學人氣:865 ℃時間:2020-09-30 19:59:57
優(yōu)質(zhì)解答
這個可以不當成方程組來處理,因為可以先解出第一個方程,再解出第二個方程,再解出第三個方程.另,dy(1)這樣的表達方式看不出是對哪個自變量做的微分,并且沒有提供初始條件或邊界條件.非常謝謝您啊。dy(1),dy(3)都是對t的微分,初始條件知道,t范圍也知道的。我可以解出第一個方程,第二個就不知道怎么解了,因為第一個方程只能得到y(tǒng)(1)-t的數(shù)值解,而y(2)跟t和y(1)都有關(guān)系啊,而y(3)中y(1)、y(2)都是隨t變而改變,所以更不知道怎么解啊。我是matlab新手,懇請賜教??!如果您能把相干程序附上感激不盡嗯,客氣了。我覺得你可能不知道怎么把第一個方程得到的解作為函數(shù)代入第二第三個方程,這個我在后面會補充說一下。先說將這個直接當作方程組處理吧。先編寫方程組函數(shù),例如:function dy = myfun(t,y)dy = zeros(3,1);% a column vectordy(1) = 2*t+2*y(1);% 這里的a1,b1參數(shù)我是隨意取的,下面的也是y(2) = 3+1*(t-y(1));dy(3) = 2*y(2)*(y(3)-t)/y(1);將它保存為myfun.m;然后運行[T,Y] = ode23(@myfun,[0 10],[0 0 0]);調(diào)用函數(shù)并得到解。Y矩陣的每一行分別對應要求的Y(1)、Y(2)、Y(3);至于要得到圖形,比如y(1)-t,運行plot(T,Y(:,1)-T(:,1))即可。===================================至于先求解了第一個方程后,解接下來的方程,這是另一種做法。第二個方程其實不用解,就是個矩陣運算;第三個方程實際上相當于求解y'(t) + f(t)y(t) = g(t)類型的常微分方程,這里的f(t),g(t)由上方解已知,將它們代入第三個方程處理的方法是編寫函數(shù)function dydt = myfunn(t,y,T,f,T,g)f = interp1(T,f,t); % 對已知的f矩陣根據(jù)新的求解過程進行插值g = interp1(T,g,t); % dydt = -f.*y + g調(diào)用的話可以用[T Y] = ode45(@(t,y) myode(t,y,T,f,T,g),Tspan,IC),Tspan和IC是自己定義的時間跨度和初始條件。具體需要你自己調(diào)試了。顯然第一種方法更簡單;雖然第二種方法有時候運算更有效率。第一種方法很好用哦,非常感謝你。我的方程是這樣的dy(1)=(0.558*abs(200*exp(-t/0.22)-y(1))*(200*exp(-t/0.22)-y(1))+20.996*(200*exp(-t/0.22)-y(1))*(200*exp(-t/0.22)-y(1))^0.5+128.852*(200*exp(-t/0.22)-y(1))+19.598)/(y(1)+10);y(2)=1036+159.12*(abs(200*exp(-t/0.22)-y(1)))^0.5;dy(3)=-3.744*y(2)*(y(3)-353+40*exp(-10*t))/(y(1)+10);y(1)-t是對的,可是y(2)-t畫圖怎么是直線呢?條件[0 0.4],[10 3229 780]嗯,我剛發(fā)現(xiàn)我設置的初始值有問題,而且ode算法確實不支持混合方程。這樣改一下myfun:function dy = myfun(t,y)dy = zeros(2,1);% a column vectordy(1)=(0.558*abs(200*exp(-t/0.22)-y(1))*(200*exp(-t/0.22)-y(1))+20.996*(200*exp(-t/0.22)-y(1))*(200*exp(-t/0.22)-y(1))^0.5+128.852*(200*exp(-t/0.22)-y(1))+19.598)/(y(1)+10);dy(2) = -3.744*(1036+159.12*(abs(200*exp(-t/0.22)-y(1)))^0.5)*(y(2)-353+40*exp(-10*t))/(y(1)+10);求解的話調(diào)用[T,Y]=ode23(@myfun,[0,0.4],[10 780]);這樣解出了Y(1)和Y(3),當然Y(3)是用Y(2)表示的。然后再用Y(:,3)=Y(:,2);Y(:,2)=1036+159.12*(abs(200*exp(-T./0.22)-Y(:,1))).^0.5;得到完整的Y矩陣,接下來就可以作圖了。這是有重復計算的做法,應該不是最優(yōu)的,也許把Y(2)設置成其他形式可以避免重復運算。
我來回答
類似推薦
- 用matlab方程求解微分方程
- 小弟最近學matlab解微分方程
- 用matlab解微分方程
- 怎樣用matlab求解復雜的微分方程組
- 表演者取出一裝滿水的飲料瓶,旋開瓶蓋,水卻從瓶底流出的真相(用物理知識回答)
- 求一/二階微分方程通解
- 把這句話改為比喻句:我的心很疼痛,很難受.如題
- 兩分鐘英語對話,兩人的,一共十來句就行,新穎點的,不簡單也不難,
- who can tell me?thanks alot.
- My mother works for 8__________(huor)a day
- 碳酸鈉與水二氧化碳反應方程式:Na2CO3+CO2+H2O=2NaHCO3這個反應方程式有離子方程式
- 科學家指2019年2月1日地球可能末日
猜你喜歡
- 1關(guān)于虛擬語氣的一個問題!if條件句,表示與將來事實相反時,從句謂語是過去時或should do
- 2分子間都存在范德華力嗎
- 3出租車:乘車不超過3千米時,收費5元(起步價)超過部分每千米加收1.5元.王叔叔乘車15千米,
- 4幼兒園阿姨給小朋友分糖,如果每個小朋友分6顆,還多18顆糖,如果每個小朋友分9顆,就差8顆
- 5在三角形ABC中,CE平分角ACB,AC=8cm,AB=12cm,BC=10cm,過B作BD平行于CE,求BD的長.
- 6大自然的作文 300字
- 7We left the classroom after we finished the homework.(改成同義句) we___ ____ the classroom _____.
- 8AB是圓O的直徑,PA垂直于圓O所在的平面,C是圓周上的任意一點,求證:BC⊥面PAC
- 9奧運會幾年一次
- 10So 15 bottles of beer should be enough.
- 11I am gIad to learn that you wiIl coming to China.
- 12we watch TV at home改一般疑問句并做否定回答