用matlab求非線性微分方程問題

時間 2021-09-02 08:10:11

1樓:手機使用者

順序書這樣的

syms xa t

pe=34.1952*(1-xa)/(356.452+37.477*xa)*1.529731063

ps=(31.801*xa+0.0208)/(356.452+37.477*xa)*1.529731063

ph=38.982*xa/(356.452+37.477*xa)*1.529731063

ke=5.7e8*exp(-34420/(1.987*t))

kt=1.3e3*exp(-18880/(1.987*t))

kb=9.1e7*exp(-38190/(1.987*t))

kp=exp(16.12-15350/t)

leme=3.6e-3*exp(-40780/(1.987*t))

lems=1.5e-3*exp(-16430/(1.987*t))

c1=((3624.641-61.549*xa)/2265.401*(1-xa)/2.45)^0.25

g=9430.217/(250*3.14159/4*0.123^2)

ra=c1*0.247*0.95*ke*((pe-ps*ph/kp)+pe*(kt+kb))/(1+leme*pe+lems*ps)^2*1100

dxadz=ra/(3.90469442*0.3884/106)

dtdz=(ra*(-30850)-4*20.02*(t-923.15)/0.123)/(3.90469442*2.22)

結果:dxadz =

4463795012423944608153600000/21270251793403207*20^(1/4)*49^(3/4)*((7970669852027257/4981669482150756-4229615073624064/155677171317211125*xa)*(1-xa))^(1/4)*exp(-34420000/1987/t)*(6889296245303873/4503599627370496*(21372/625-21372/625*xa)/(89113/250+37477/1000*xa)-925089692108581801705371866623314339/10141204801825835211973625643008000*(31801/1000*xa+13/625)/(89113/250+37477/1000*xa)^2*xa/exp(403/25-15350/t)+6889296245303873/4503599627370496*(21372/625-21372/625*xa)/(89113/250+37477/1000*xa)*(1300*exp(-18880000/1987/t)+91000000*exp(-38190000/1987/t)))/(1+62003666207734857/11258999068426240000*exp(-40780000/1987/t)*(21372/625-21372/625*xa)/(89113/250+37477/1000*xa)+20667888735911619/9007199254740992000*exp(-16430000/1987/t)*(31801/1000*xa+13/625)/(89113/250+37477/1000*xa))^2

dtdz =

-4088208510206711143858176000/382583183366251*20^(1/4)*49^(3/4)*((7970669852027257/4981669482150756-4229615073624064/155677171317211125*xa)*(1-xa))^(1/4)*exp(-34420000/1987/t)*(6889296245303873/4503599627370496*(21372/625-21372/625*xa)/(89113/250+37477/1000*xa)-925089692108581801705371866623314339/10141204801825835211973625643008000*(31801/1000*xa+13/625)/(89113/250+37477/1000*xa)^2*xa/exp(403/25-15350/t)+6889296245303873/4503599627370496*(21372/625-21372/625*xa)/(89113/250+37477/1000*xa)*(1300*exp(-18880000/1987/t)+91000000*exp(-38190000/1987/t)))/(1+62003666207734857/11258999068426240000*exp(-40780000/1987/t)*(21372/625-21372/625*xa)/(89113/250+37477/1000*xa)+20667888735911619/9007199254740992000*exp(-16430000/1987/t)*(31801/1000*xa+13/625)/(89113/250+37477/1000*xa))^2-1288029493427961856/17149319079463875*t+5945222134290114936832/85746595397319375

給出初始條件,用ode45求解。

這是動力學問題吧?

2樓:匿名使用者

為什麼它的解不是初等函式呢?

dx/x = w*k*sin(w*t)*t; // k =arcsin(i1/i2)

這兩邊不是都可以積分麼?

如何用matlab求解非線性微分方程組

3樓:匿名使用者

使用符號運算工具。

首先定義變數符號

syms s x t;

使用字串定義公式

eq1 = 'diff(x, t) = 0.11*s*x/(0.06*x+s)';

eq2 = 'diff(s, t) = (-1)*0.029*x-0.234*s/(0.006*x+s)-s/(30*s^2+300*s+0.03)';

接下來是求解 比如現在要求解s,下面的**可以給出s的表示式solution = solve(eq1, eq2, s);

接下來求值

首先給變數賦值

x = 1;

t = 1;

之後執行

result = eval(solution);

可以求出解。

我現在寫出的**可能有錯誤,不過思路是這樣的。我沒除錯。詳細情況可以搜尋 matlab 符號運算。

4樓:梨子也發飆了

若求解析解,沒有解,過程如下:

dsolve('dx=0.11*s*x/(0.006*x+s)','ds=-0.

029*x-0.234*s/(0.006*x+s)-s/(30*s^2+300*s+0.

003)','t')

warning: explicit solution could not be found.

> in dsolve at 101

ans =

[ empty sym ]

若求數值解,過程如下:

m函式定義:

function dy=f7(t,y)

dy=[0.11*y(1)*y(2)/(0.006*y(1)+y(2));-0.

029*y(1)-0.234*y(2)/(0.006*y(1)+y(2))-y(2)/(30*y(2)^2+300*y(2)+0.

003)];

主程式:

[t,y]=ode45('f7',[0,20],[0;0])t =0

0.5000

1.0000

1.5000

2.0000

2.5000

3.0000

3.5000

4.0000

4.5000

5.0000

5.5000

6.0000

6.5000

7.0000

7.5000

8.0000

8.5000

9.0000

9.5000

10.0000

10.5000

11.0000

11.5000

12.0000

12.5000

13.0000

13.5000

14.0000

14.5000

15.0000

15.5000

16.0000

16.5000

17.0000

17.5000

18.0000

18.5000

19.0000

19.5000

20.0000

y =0 0

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

nan nan

貌似也不理想,不知道是不是初值設的不好的原因!

matlab如何解非線性常微分方程組,一共二十個方程。

5樓:望涵滌

這個方程要解出來還要初始條件吧

不妨設(x(0),y(0))=(a,b);

還有用ode45只能得到數值解,不能給出解析式表達那麼先建立一個函式檔案

test_fun.m

function dx=tsst_fun(x,t)dx(1)= c-b*x(1)-w*x(1)*x(2);

dx(2)=w*x(1)*x(2)-(b+m)*x(2);

那麼呼叫ode45

x0=(0,0);

t0=0:0.01:10;

;%根據你所想要的求得值設定t0,間隔是任意的,與求解所用的步長無關,

[x,t]=ode45(@test_fun,t0,x0);得到了

MATLAB求解非線性高階微分方程組方法

信科濱 參考 回答的一樣的問題,還有下面的程式 function dy odefun t,y y 1 x y 2 x y 3 y y 4 y y 5 z y 6 z u 9.8 1 dy zeros 6,1 dy 1 y 2 dy 2 u y 1 sqrt y 1 2 y 3 2 y 5 2 3 d...

如何判斷微分方程是線性定常系統,還是非線性系統

薔祀 所謂的線性定常系統,其特性有 a 只能出現函式本身,以及函式的任何階次的導函式 b 函式本身跟所有的導函式之間除了加減之外,不可以有任何運算 c 函式本身跟本身 各階導函式本身跟本身,都不可以有任何加減之外的運算 d 不允許對函式本身 各階導函式做任何形式的複合運算,例如 若不能複合上面的條件...

關於微分方程已知某二階線性微分方程三解為X,X 1,eX X求其通解及原方程

通解寫成這樣的形式是線性方程解的結構決定的。高等數學 同濟大學第五版p296 若原方程為y p x y q x y f x 則對應的齊次方程y p x y q x y 0 y1 x,y2 x 1,y3 ex x為原方程的特解,則可知y1 y3,y2 y3是對應齊次方程的兩個線性無關的特解,於是 的通...