1樓:手機使用者
大哥,這個是matlab程式,你怎麼發到c++這裡了?
不過我還是可以幫你看看:
function ydot = eq1(t,y)ydot = cos(t);
這個檔案要儲存為:eq1.m
接著儲存到安裝目錄下的work資料夾下:不要這麼做,只需要放在你當前執行的資料夾下面就可以了
[t,y] = ode23('eq1',[0 2*pi],2);應該為:[t,y] = ode23(@eq1,[0 2*pi],2)
還有問題可以hi我
matlab微分方程求解 用ode23函式
2樓:不好好改就革
請給初始值,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謝謝!
3樓:匿名使用者
給的條件不夠,只好自己假設了
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));
4樓:匿名使用者
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中ode23是什麼意思?
5樓:唯我最逍遙
算微分方程的
有ode23、ode45等等好多種
都是 龍格-庫塔 方法但是ode45個精確一些用法例如
[t,y] = ode23(@f,[0 2*pi],2)第一引數是迭代函式
第二個引數是t的取值範圍
第三個引數是y的初值
6樓:匿名使用者
ode23 解非剛性微分方程,低精度,使用runge-kutta法的二三階演算法。
ode45 解非剛性微分方程,中等精度,使用runge-kutta法的四五階演算法。
ode113 解非剛性微分方程,變精度變階次adams-bashforth-moulton pece演算法。
ode23t 解中等剛性微分方程,使用自由內插法的梯形法則。
ode15s 解剛性微分方程,使用可變階次的數值微分(ndfs)演算法。
ode23s 解剛性微分方程,低階方法,使用修正的rosenbrock公式。
ode23tb 解剛性微分方程,低階方法,使用tr-bdf2方法,即runger-kutta公式的第一級採用梯形法則,第二級採用gear法。
7樓:八卦星人小林
解非剛性微分方程,低精度,使用runge-kutta法的二三階演算法。
matlab是美國mathworks公司出品的商業數學軟體,用於演算法開發、資料視覺化、資料分析以及數值計算的高階技術計算語言和互動式環境,主要包括matlab和simulink兩大部分。
matlab是matrix&laboratory兩個詞的組合,意為矩陣工廠(矩陣實驗室)。是由美國mathworks公司釋出的主要面對科學計算、視覺化以及互動式程式設計的高科技計算環境。它將數值分析、矩陣計算、科學資料視覺化以及非線性動態系統的建模和**等諸多強大功能整合在一個易於使用的視窗環境中,為科學研究、工程設計以及必須進行有效數值計算的眾多科學領域提供了一種全面的解決方案,並在很大程度上擺脫了傳統非互動式程式設計語言(如c、fortran)的編輯模式,代表了當今國際科學計算軟體的先進水平。
matlab和mathematica、maple並稱為三大數學軟體。它在數學類科技應用軟體中在數值計算方面首屈一指。matlab可以進行矩陣運算、繪製函式和資料、實現演算法、建立使用者介面、連線其他程式語言的程式等,主要應用於工程計算、控制設計、訊號處理與通訊、影象處理、訊號檢測、金融建模設計與分析等領域。
matlab的基本資料單位是矩陣,它的指令表示式與數學、工程中常用的形式十分相似,故用matlab來解算問題要比用c,fortran等語言完成相同的事情簡捷得多,並且matlab也吸收了像maple等軟體的優點,使matlab成為一個強大的數學軟體。在新的版本中也加入了對c,fortran,c++,java的支援。
8樓:飲水蒹葭
一種定步長的微分方程解法
9樓:百度使用者
微分方程解法器的一種,使用runge-kutta演算法
matlab ode45和ode23有什麼區別
10樓:
引用一下matlab論壇裡大神的回答:
總得來說:二者演算法相似,只不過ode45比ode23精度要高一點,其它沒什麼差別。
具體ode是matlab專門用於解微分方程的功能函式;solver有變步長(variable-step)和定步長(fixed-step)兩種型別,不同型別有著不同的求解器。ode45求解器屬於變步長的一種,採用runge-kutta演算法;和他採用相同演算法的變步長求解器還有ode23。ode45表示採用四階,五階runge-kutta單步演算法,截斷誤差為(δx)3。
解決的是nonstiff(非剛性)的常微分方程.是解決數值解問題的首選方法,若長時間沒結果,應該就是剛性的,換用ode23來解。
11樓:匿名使用者
ode23 是 bogacki 和 shampine 的顯式 runge-kutta (2,3) 對的實現。在容
差較寬鬆且剛度適中的情況下,它可能比 ode45 更加有效。ode23 是單步求解器,是求解非剛性微分方程的低階方法。(在數學中,剛性方程是指一個微分方程,其數值分析的解只有在時間間隔很小時才會穩定,只要時間間隔略大,其解就會不穩定。
目前很難去精確地去定義哪些微分方程是剛性方程,但是大體的想法是:這個方程的解包含有快速變化的部分。)
參考其中ode23和ode45的對比網頁連結
matlab/simulink中,什麼叫oder45和ode23bt演算法?
12樓:匿名使用者
ode45是基於
四點法和五點法的解微分方程數值解的方法,ode23等也一樣,都是基於已知點「**」下一個點的函式值的方法,不同的演算法「**」的方法不一樣。比較著名的「**」方法有尤拉法,改進的尤拉法,龍格庫塔法,多點法等。在matlab一般使用中這些方法的差別不大,可以不予理會,會用一個即可,推薦ode4。
13樓:matlab課設**
ode45,典型的解微分方程的演算法。matlab自帶的。專門解微分方程的。ode32bt也類似,只是各自針對的微分方程型別略有不同。還有ode15s ,ode23s等等
請用euler和matlab函式ode23求解下列微分方程
14樓:宇宙無敵小陽
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)
求解一階線性偏微分方程,求解一階擬線性偏微分方程組!非常感謝!急急急!!!
這個方程應該可以用特徵線法去求解,但是還要給出u,v的邊界條件才能給出具體的表示式。建議你看本數學物理方程的書都有講特徵線法的。英文書你可以看evans的pde 求解一階擬線性偏微分方程組!非常感謝!急急急!這個方程應該可以用特徵線法去求解,但是還要給出u,v的邊界條件才能給出具體的表示式。建議你看...
一階電路求解,解釋一階電路三要素法中的三要素
il 0 3,il 2.4,req 5,t l req 0.1,故,il 2.4 0.6e 10t ul ldil dt,i il 4 il ul 4 3。解釋一階電路三要素法中的三要素 一個是換路後瞬間的初始值,以a表示 第二個是換路後的終了之,即時間趨近於無窮大時的值,以b表示第三個是時間常數,...
一階魔方怎麼玩 1 1 1 ??
把每個面分別標記上1 2 3 4 5 6,這樣就可以玩了,玩法眾多,用途廣泛。一階魔方就是1 1 1的魔方,就是兩個大拇指掐在前面的兩條稜上,食指掐在後面上面的兩個角上,中指掐在後面的兩條稜上,在向上轉180度,一階魔方就還原了。一階魔方就是1 1 1的魔方,他就是兩個大拇指掐在前面的兩條稜上,食指...