Matlabode45和ode23有什麼區別

2021-03-05 09:22:00 字數 7547 閱讀 2988

1樓:

引用一下matlab論壇裡大神的回答:

總得來說:二者演算法相似,只不過ode45比ode23精度要高一點,其它沒什麼差別。

具體ode是matlab專門用於解微分方程的功能函式;solver有變步長(variable-step)和定步長(fixed-step)兩種型別,不同型別有著不同的求解器。ode45求解器屬於變步長的一種,採用runge-kutta演算法;和他採用相同演算法的變步長求解器還有ode23。ode45表示採用四階,五階runge-kutta單步演算法,截斷誤差為(δx)3。

解決的是nonstiff(非剛性)的常微分方程.是解決數值解問題的首選方法,若長時間沒結果,應該就是剛性的,換用ode23來解。

2樓:匿名使用者

ode23 是 bogacki 和 shampine 的顯式 runge-kutta (2,3) 對的實現。在容

差較寬鬆且剛度適中的情況下,它可能比 ode45 更加有效。ode23 是單步求解器,是求解非剛性微分方程的低階方法。(在數學中,剛性方程是指一個微分方程,其數值分析的解只有在時間間隔很小時才會穩定,只要時間間隔略大,其解就會不穩定。

目前很難去精確地去定義哪些微分方程是剛性方程,但是大體的想法是:這個方程的解包含有快速變化的部分。)

參考其中ode23和ode45的對比網頁連結

matlab ode45 與ode15s 有什麼區別 應該怎麼選擇?

3樓:匿名使用者

以下是我個人的一些理解,供參考:

matlab提供了7個常微分方程求解器(solver),分別是ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb,其中前3個適用於求解非剛性(nonstiff)問題,後4個適用於剛性問題。所謂剛性問題,簡單點說,就是系統包含多個相互作用但變化速度相差十分懸殊的子過程。

ode45基於顯式4-5階龍格庫塔公式,其演算法屬於單步法;ode15s是一個變階求解器,用的是多步法。

對於很多問題,這些求解器都是可以使用的,儘管可能存在一些效率和精度方面的差異。

但是,這些求解器並不是可以互相取代的,它們分別適用於不同的精度要求和問題的型別。也就是說,沒有任何一個求解器在任何情況下都優於或劣於其它求解器。否則,matlab也沒必要提供這麼多求解器。

要徹底搞清楚這些求解器的差別和適用範圍是有一定難度的,需要對其背後的演算法有一定了解才行。matlab在函式參考裡對演算法做了簡要的說明,並給出了多個參考文獻,如果有興趣,可以進一步查閱。

如果對於問題的性質比較清楚,也知道什麼演算法可能比較有效,可以直接選擇適當的求解器。在沒有對於問題是否剛性的先驗知識的條件下,根據matlab的建議,ode45是大多數情況下應該嘗試的首選,如果ode45求解失敗或效率很低,次選就是ode15s。

4樓:地表最帥

matlab提供了7個常微分方程求解器(solver),分別是ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb,其中前3個適用於求解非剛性(nonstiff)問題,後4個適用於剛性問題。所謂剛性問題,簡單點說,就是系統包含多個相互作用但變化速度相差十分懸殊的子過程。

這些求解器並不是可以互相取代的,它們分別適用於不同的精度要求和問題的型別。也就是說,沒有任何一個求解器在任何情況下都優於或劣於其它求解器。否則,matlab也沒必要提供這麼多求解器。

要徹底搞清楚這些求解器的差別和適用範圍是有一定難度的,需要對其背後的演算法有一定了解才行。matlab在函式參考裡對演算法做了簡要的說明,並給出了多個參考文獻,如果有興趣,可以進一步查閱。

如果對於問題的性質比較清楚,也知道什麼演算法可能比較有效,可以直接選擇適當的求解器。在沒有對於問題是否剛性的先驗知識的條件下,根據matlab的建議,ode45是大多數情況下應該嘗試的首選,如果ode45求解失敗或效率很低,次選就是ode15s。

matlab 程式中 ode 都有哪些? 比如ode15、ode23 ode45,各有什麼優缺點?適用範圍有哪些?

5樓:

這張圖來自於matlab 技術論壇,這是一個非常有價值的**,裡面高手雲集,希望你可以進去看看,裡面有非常詳細的關於ode的介紹

matlab/simulink中,什麼叫oder45和ode23bt演算法?

6樓:匿名使用者

ode45是基於

四點法和五點法的解微分方程數值解的方法,ode23等也一樣,都是基於已知點「**」下一個點的函式值的方法,不同的演算法「**」的方法不一樣。比較著名的「**」方法有尤拉法,改進的尤拉法,龍格庫塔法,多點法等。在matlab一般使用中這些方法的差別不大,可以不予理會,會用一個即可,推薦ode4。

7樓:matlab課設**

ode45,典型的解微分方程的演算法。matlab自帶的。專門解微分方程的。ode32bt也類似,只是各自針對的微分方程型別略有不同。還有ode15s ,ode23s等等

你好,你在{matlab 程式中 ode 都有哪些? 比如ode15、ode23 ode45,各有什麼優缺點?適用範圍有哪些?}

8樓:山水阿銳

您好,以下這張圖來自於matlab 技術論壇,這是一個非常有價值的**,裡面高手雲集,希望你可以進去看看,裡面有非常詳細的關於ode的介紹:

9樓:

之前給你的論壇裡面已經有寫啦。剛性方程是指一個微分方程,其數值分析的解只有在時間間隔很小時才會穩定,只要時間間隔略大,其解就會不穩定

matlab中ode45,4和5分別代表什麼?

10樓:匿名使用者

matlab中求微分方

程數值解的函式有五個:ode45,ode23,ode113,ode15s,ode23s。

ode是matlab專門用於解微分方程的功能函式,他有ode23,ode45,ode23s等等,採用的是runge-kutta演算法。ode45表示採用四階,五階runge-kutta單步演算法,截斷誤差為(δx)3。解決的是nonstiff(非剛性)的常微分方程.

是解決數值解問題的首選方法,若長時間沒結果,應該就是剛性的,換用ode23來解.

用matlab算ode23、ode45求解初值等問題

11樓:匿名使用者

編寫m檔案

cdq.m

function dy=cdq(x,y)

dy=zeros(2,1);

dy(1)=y(2);

dy(2)=-2*y(2)-y(1)+cos(x);

編寫m檔案cdq1.m

function dy=cdq1(x,y)

dy=[0 1;-1 -2]*y+[0;1]*cos(x);

命令視窗

>> subplot(1,2,1),ode23(@ cdq,[0,2*pi],[0,3/2]),grid

>> subplot(1,2,2),ode45(@ cdq,[0,2*pi],[0,3/2]),grid

>> [x,y]=ode23(@ cdq1,[0,2*pi],[0,3/2]),grid

x =0

0.0001

0.0003

0.0017

0.0083

0.0417

0.1276

0.2556

0.4238

0.6344

0.8650

1.0990

1.3340

1.5637

1.8325

2.2382

2.6170

2.9650

3.2904

3.4980

3.7056

3.9507

4.2760

4.6394

4.7487

4.8580

4.9902

5.1739

5.4015

5.6654

5.9586

6.2249

6.2832

y =0    1.5000

0.0001    1.4999

0.0005    1.4994

0.0025    1.4967

0.0124    1.4834

0.0608    1.4188

0.1760    1.2638

0.3244    1.0602

0.4831    0.8328

0.6329    0.5964

0.7450    0.3810

0.8118    0.1941

0.8376    0.0292

0.8275   -0.1145

0.7763   -0.2626

0.6317   -0.4416

0.4422   -0.5515

0.2416   -0.5947

0.0495   -0.5812

-0.0677   -0.5454

-0.1754   -0.4902

-0.2851   -0.4029

-0.3928   -0.2583

-0.4528   -0.0735

-0.4576   -0.0160

-0.4562    0.0412

-0.4463    0.1088

-0.4180    0.1981

-0.3613    0.2975

-0.2700    0.3911

-0.1443    0.4611

-0.0172    0.4891

0.0114    0.4904

>> [x,y]=ode45(@ cdq1,[0,2*pi],[0,3/2]),grid

x =0

0.0000

0.0001

0.0001

0.0001

0.0003

0.0005

0.0006

0.0008

0.0016

0.0025

0.0033

0.0042

0.0083

0.0125

0.0167

0.0209

0.0418

0.0628

0.0837

0.1046

0.2093

0.3140

0.4186

0.5233

0.6667

0.8101

0.9535

1.0969

1.2540

1.4111

1.5682

1.7252

1.8823

2.0394

2.1965

2.3536

2.5106

2.6677

2.8248

2.9819

3.1390

3.2960

3.4531

3.6102

3.7497

3.8892

4.0288

4.1683

4.3147

4.4612

4.6076

4.7540

4.8899

5.0258

5.1617

5.2976

5.4425

5.5874

5.7323

5.8773

5.9787

6.0802

6.1817

6.2832

y =0    1.5000

0.0001    1.4999

0.0001    1.4999

0.0002    1.4998

0.0002    1.4997

0.0005    1.4994

0.0007    1.4991

0.0010    1.4987

0.0012    1.4984

0.0025    1.4967

0.0037    1.4951

0.0050    1.4934

0.0062    1.4917

0.0124    1.4834

0.0186    1.4751

0.0248    1.4669

0.0309    1.4587

0.0610    1.4185

0.0903    1.3792

0.1188    1.3410

0.1465    1.3037

0.2737    1.1305

0.3838    0.9767

0.4787    0.8393

0.5599    0.7156

0.6515    0.5640

0.7226    0.4291

0.7752    0.3073

0.8111    0.1958

0.8329    0.0833

0.8377   -0.0207

0.8268   -0.1171

0.8014   -0.2061

0.7625   -0.2876

0.7114   -0.3610

0.6495   -0.4259

0.5781   -0.4813

0.4989   -0.5265

0.4134   -0.5607

0.3234   -0.5834

0.2307   -0.5941

0.1374   -0.5928

0.0452   -0.5792

-0.0439   -0.5536

-0.1282   -0.5166

-0.1975   -0.4751

-0.2603   -0.4258

-0.3160   -0.3697

-0.3633   -0.3078

-0.4033   -0.2380

-0.4327   -0.1644

-0.4513   -0.0883

-0.4587   -0.0114

-0.4554    0.0591

-0.4426    0.1277

-0.4208    0.1933

-0.3903    0.2547

-0.3490    0.3143

-0.2996    0.3666

-0.2432    0.4107

-0.1810    0.4457

-0.1348    0.4644

-0.0869    0.4781

-0.0379    0.4867

0.0117    0.4902

5和9是45的倍數還是45的因數

分析 據因數和倍數的意義 如果數a能被數b整除 b 0 a就叫做 專b的倍數,b就叫做a的因屬數 據此解答即可.因為5 9 45,則45 5 9,所以45既是5的倍數,也是9的倍數 5和9都是45的因數 故答案為 5,9,5,9.點評 此題考查因數和倍數的意義,因數和倍數是兩個數之間的關係.因為5 ...

45歲適合什麼髮型和顏色,45歲女人適合什麼髮型

我的一位遠房親戚,年齡四十五六,衣裝服飾老氣橫秋。你只要看到她那身打扮,就會感到所有的地方都不對。首先是頭。俗話說人要洋氣,一頭一腳。頭髮是很重要的。人到中年,頭髮是要經常打理的。黑色清湯掛麵式的短髮不是適合所有人的,特別是對於中年婦女來說,比較難顯出穿衣特色,因此燙髮是首要的。燙髮也有講究,不能把...

cos45度等於多少,cos45度和sin45度 得多少

cos45度 2 2。角a的鄰邊比斜邊叫做角a的餘弦,記作 cosa 由余弦英文cosine簡寫得來 即 cosa等於角a的鄰邊 斜邊 直角三角形 記作cos x r。已知角x的一個三角函式值求角x,所得的角不一定只有一個,角的個數要根據角的取值範圍來確定。1 已知三角形的三條邊長,可求出三個內角 ...