精品偷拍一区二区三区,亚洲精品永久 码,亚洲综合日韩精品欧美国产,亚洲国产日韩a在线亚洲

  • <center id="usuqs"></center>
  • 
    
  • 請問怎么用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的圖形
    數(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)設置成其他形式可以避免重復運算。
    我來回答
    類似推薦
    請使用1024x768 IE6.0或更高版本瀏覽器瀏覽本站點,以保證最佳閱讀效果。本頁提供作業(yè)小助手,一起搜作業(yè)以及作業(yè)好幫手最新版!
    版權(quán)所有 CopyRight © 2012-2024 作業(yè)小助手 All Rights Reserved. 手機版