matlab微分方程求解用ode23函式

2021-03-27 15:52:19 字數 4012 閱讀 2675

1樓:不好好改就革

請給初始值,o(∩_∩)o謝謝!!

比如我給初始值:初始值:

θ(0)=0.5;  θ'(0)=0;

下面用y代表θ,然後,函式程式:

function yprime=verderpol(t,y)global g;

global l;

g=9.8;

l=10;

yprime=[y(2);-g/l*sin(y(1))];

end主程式:

clc; clear all

global g;

global l;

g=9.8;

l=10;

y0=[0.5;0];%初始值:y(0)=0.5;y'(0)=0;

hold on

[t,y]=ode23('verderpol',[0,3*pi],y0);

plot(t,y(:,1),'r','linewidth',2);

plot(t,y(:,2),'g','linewidth',2);

legend('θ-t圖','θ''-t圖')grid on

hold on

畫出的影象:

希望我的回答對你有所幫助,滿意敬請採納喲,o(∩_∩)o謝謝!

2樓:匿名使用者

給的條件不夠,只好自己假設了

l = 1m, g=9.8  θ0=π/12%存為fun.m

function xdot=fun(t,theta)g=9.8; l=1;

xdot=[theta(2);-g*sin(theta(1))/l];

%存為main.m

theta0=[pi/12,0];

[t, theta]=ode23('fun',[0,10],theta0);

plot(t,theta(:,1));

3樓:匿名使用者

g=10;

l=1;

fun=@(t,x) [x(2),;-g/l*sin(x(1))];

ts=[0,20];

x0=[pi/20,0];

[t,x]=ode23(fun,ts,x0);

t=t';

theta=x(:,1)';

plot(t,theta);

xlabel('t');

ylabel('\theta');

matlab ode45和ode23有什麼區別

4樓:

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

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

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

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

5樓:匿名使用者

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

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

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

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

matlab 用ode23 解方程舉例

6樓:匿名使用者

算微分方程的

有ode23、ode45等等好多種

都是 龍格-庫塔 方法但是ode45個精確一些用法例如

[t,y] = ode23(@f,[0 2*pi],2)第一引數是迭代函式

第二個引數是t的取值範圍

第三個引數是y的初值

請用euler和matlab函式ode23求解下列微分方程

7樓:宇宙無敵小陽

1--尤拉法

t=0;

h=0.02;

y(1)=10;

for i=2:100000000

y(i)=y(i-1)+0.02*h*(1-0.001*y(i-1))*y(i-1);

if i*h>=20

break;

endend

2-----ode23

先建立function dy=dfun(t,y)dy=0.02*(1-0.001*y)*y;

再編寫[t,y]=ode23(@dfun,[0 120],10);

plot(t,y)

matlab中ode23是什麼意思?

8樓:唯我最逍遙

算微分方程的

有ode23、ode45等等好多種

都是 龍格-庫塔 方法但是ode45個精確一些用法例如

[t,y] = ode23(@f,[0 2*pi],2)第一引數是迭代函式

第二個引數是t的取值範圍

第三個引數是y的初值

9樓:匿名使用者

ode23 解非剛性微分方程,低精度,使用runge-kutta法的二三階演算法。

ode45 解非剛性微分方程,中等精度,使用runge-kutta法的四五階演算法。

ode113 解非剛性微分方程,變精度變階次adams-bashforth-moulton pece演算法。

ode23t 解中等剛性微分方程,使用自由內插法的梯形法則。

ode15s 解剛性微分方程,使用可變階次的數值微分(ndfs)演算法。

ode23s 解剛性微分方程,低階方法,使用修正的rosenbrock公式。

ode23tb 解剛性微分方程,低階方法,使用tr-bdf2方法,即runger-kutta公式的第一級採用梯形法則,第二級採用gear法。

10樓:飲水蒹葭

一種定步長的微分方程解法

11樓:百度使用者

微分方程解法器的一種,使用runge-kutta演算法

matlab中ode23函式輸出的是什麼

12樓:匿名使用者

ode系列函式的輸出引數bai都是du一致的:

[t,y] = solver(odefun,tspan,y0)其中solver代表求解zhi器(ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb),第乙個輸出daot是**時間,y是微分方程內

(組)在容t時刻的解,每列代表乙個變數。

如何使用matlab求解複雜的微分方程組

13樓:二中混過

這說明此微分方程沒有顯示解,應用數值方法求解,例如ode45等函式就乙個例子(選自matlab幫助文件)

解入下微分方程組

1,建立方程組函式

function dy = rigid(t,y)dy = zeros(3,1);    % a column vector

dy(1) = y(2) * y(3);

dy(2) = -y(1) * y(3);

dy(3) = -0.51 * y(1) * y(2);

2,求解並繪圖

[t,y] = ode45(@rigid,[0 12],[0 1 1]);

plot(t,y(:,1),'-',t,y(:,2),'-.',t,y(:,3),'.')結果

求解微分方程,求解微分方程的方法

上面答的是都是什麼呀。y 明顯的是對x求導。這是乙個高等數學問題,絕對的本科內容。dy dx a y b a by y dx dy y a by dx y a by dy 1 b a b b y a dy 兩邊同時積分,得 x y b a ln b b y a b b c得到了x關於y的函式。可以反...

如何用matlab求解微分方程並畫圖

1 找到關於求解常微分方程的習題。2 這裡用matlab求解,主要用到的就是 dsolve 具體的格式如下,但是不僅僅侷限下面兩種,其中eq就是代表方程式,而con為初始條件。3 這裡的 x 關於x的函式。知道語法就可以進行計算了。4 在matlab中輸入如下,dsolve d2y 2 dy exp...

matlab怎麼解偏微分方程,matlab怎麼求解二元二次偏微分方程

看到這個問題 本來想略過的,但還是留下來說了句。經常看到網上有版人這樣問 問題,你這麼權問我猜沒有人會回答的,想回答也沒辦直接回答。問的太大了,太模糊了。首先,偏微方程是乙個很大的概念,什麼偏微分方程,拋物的,橢圓的還是雙曲的?也沒有方程具體表達,其次解方程的條件是什麼,第一類邊界,第二類還是第三類...