Matlab使用雜談1 微分方程求解及函式求導

2021-10-02 19:58:16 字數 2618 閱讀 5779

微分方程求解

函式求導

參考文獻

tic**

toc用於計算**執行時間

用於解微分方程

y=

dsolve

('m*d2y+k*y=0'

,'x'

)//無初始條件

y=dsolve

('m*d2y+k*y=0'

,'dy(0)=0'

,'y(0)=x0'

,'x'

)//有初始條件

** 注:d必須大寫,如果需要解方程組則

[y1,y2]

=dsolve

('m*d2y+k*y=0'

,'m*d2y+k*x=0'

,'x'

)

1)ode45的函式格式

[t,y] = ode45(@function,tspan,y0)

[t,y] = ode45(@function,tspan,y0,options)

[t,y,te,ye,ie] = ode45(@function,tspan,y0,options)

sol = ode45(@function,[t0 tf],y0…)

其中: function是函式控制代碼,可以是函式檔名,匿名函式控制代碼或內聯函式名;

tspan 是求解區間 [t0 tf],或者一系列散點[t0,t1,…,tf],採用一系列散點只會返回相應的點的值;

y0 是初始值向量;

options 是求解引數設定,可以用odeset在計算前設定誤差,輸出引數,事件等

t返回列向量的離散點;

y 返回對應t的求解列向量;

te 事件發生時間

ye 事件發生時之答案

ie 事件函式消失時之指標i

在進行ode計算時,需要首先對微分方程進行變數轉換,需要將微分方程轉換先轉換為顯示微分方程

下面以例項來說明轉換步驟

step 1

將微分方程的最高項移動到等式右邊,然後將其他項都放在等式右邊

如:微分方程1:

需要轉換為

step2

為除最高端外的多項式選擇相應的狀態參量

針對上述方程式:

x』』『無需選擇狀態參量

其餘引數狀態參量分別為

x0=x;

x1=x』;

x2=x』』;

step3

根據上述參量及原微分方程寫出新的一階狀態參量表示式

x0『=x1;

x1』=x2;

x2』=1/a(x2+3x1-5x-3);

利用轉換好的狀態參量表示式來寫function,然後採用ode45計算

針對原子自發輻射的經典模型,考慮輻射對電子的反作用力,可以得出電子的運動方程為

m為電子質量

x為電子偏離平衡位置的位移

w0為諧振頻率

γ稱為經典阻尼係數

e為電荷量

ε0為真空介電常數

c為光速

針對上述簡諧振子模型,進行ode中function的編寫

function x=harmonicoscillator(y,t)

r=2;

w0=3;

% r 為經典輻射阻尼係數,wo為諧振頻率,此時隨意賦了兩個值

x=[ t(2)

; -r*t(2)+w0*t(1)];

end

x0=

[1,0]

; % 隨意賦得初值

options=odeset(

'reltol',1e-8)

;tic

[t,xt1]

=ode45(@harmonicoscillator,[0,20],x0,options)

tocplot(xt1(:,1),t)

;

diff()函式是matlab的符號函式求導。

diff()使用說明:

diff(s,『v』)——對表示式s中指定符號變數v,計算s的一階導數

diff(s,『v』,n)——對表示式s中指定符號變數v,計算s的n階導數

diff()應用例項

對於顯函式的導數,如y=6x3-4x2+x-5

diff(

'6x^3-4x^2+x-5'

) %求y的一階導數

diff(

'6x^3-4x^2+x-5',2) %求y的二階導數

對於隱函式的導數,如z=sin(x2)*y2

syms x  y

diff(sin(x^2)*y^2,2) %求z對x的二階偏導數

對於引數方程的導數,如y=1-t4,x=1+t2

syms x  y t

dy=diff(1-t^4) %求y對t的一階導數

dx=diff(1+t^2) %求x對t的一階導數

dydx=dy/dx

t=sqrt(x-1),eval(dydx) %求y對x的一階導數

參考文件

matlab解微分方程

1.dsolve函式 這是最簡單的一種求解微分方程的一種方法 符號解法。一般來說,在matlab中解常微分方程有兩種方法,一種是符號解法,另一種是數值解法。在本科階段的微分數學題,基本上可以通過符號解法解決。用matlab解決常微分問題的符號解法的關鍵命令是dslove命令。該命令中可以用d表示微分...

解方程及微分方程 MATLAB

x1,x2,x3,solve eq1 eq2 eq3 x1 x2 x3 s solve eq1 eq2 eq3 x1 x2 x3 第一種方式,對solve的括號中的x1,x2,x3的次序會有要求 與前面的一致 第二種無要求。eq都是等式,不是表示式。最好都打引號,不打引號也可以,但是一定要預先用sy...

微分方程 微分方程 高階微分方程組理論

附 微分方程的分類 常微分方程和偏微分方程。1 常微分方程 ode 是指微分方程的自變數只有乙個的方程。最簡單的常微分方程,未知數是乙個實數或是複數的函式,但未知數也可能是乙個向量函式或是矩陣函式,後者可對應乙個由常微分方程組成的系統。2 偏微分方程 pde 是指微分方程的自變數有兩個或以上,且方程...