1樓:信科濱
參考
回答的一樣的問題,還有下面的程式
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;
dy(3)=y(4);
dy(4)=-u*y(3)/sqrt(y(1)^2+y(3)^2+y(5)^2)^3;
dy(5)=y(6);
dy(6)=-u*y(5)/sqrt(y(1)^2+y(3)^2+y(5)^2)^3;
end命令列中
tspan=[0,50];
y0=[909;-156;173;445;173;445];
[t,y]=ode45(@odefun,[0,10],y0);
注意:u=gm需要自己修改
tspan為你的時間區間
y(end,:),就為你50s的解。
2樓:匿名使用者
只會mathematica的路過……話說你的μ忘了給啊。
3樓:匿名使用者
回答的一樣的問題,還有下面的程式
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;
dy(3)=y(4);
dy(4)=-u*y(3)/sqrt(y(1)^2+y(3)^2+y(5)^2)^3;
dy(5)=y(6);
dy(6)=-u*y(5)/sqrt(y(1)^2+y(3)^2+y(5)^2)^3;
end命令列中
tspan=[0,50];
y0=[909;-156;173;445;173;445];
[t,y]=ode45(@odefun,[0,10],y0);
注意:u=gm需要自己修改
tspan為你的時間區間
y(end,:),就為你50s的解。
如何用matlab求解非線性微分方程組
4樓:匿名使用者
使用符號運算工具。
首先定義變數符號
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 符號運算。
5樓:梨子也發飆了
若求解析解,沒有解,過程如下:
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如何解非線性常微分方程組,一共二十個方程。
6樓:望涵滌
這個方程要解出來還要初始條件吧
不妨設(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解三元二階非線性微分方程組?
7樓:匿名使用者
三元二階非線性微分方程組用matlab解,可以按下列思路求解。
首先,自定義微分方程組函式,其內容:
dy(1)=x(2);%降階
dy(2)=0.6615-(0.3*x(2)+2848*x(1)+0.
0025*x(3)+1.227e3*(x(1)^3+x(1))/(x(1)^2-1e-4))/0.0675
dy(3)=(0.025*x(2)-x(3)/2e5)/2.135其二,確定初值,x0=[0,0,0];
其三,確定時間變數範圍,t【0,10】
其四,用ode45函式求解。其命令格式
[t,x]=ode45(@func,tspan,x0)其五,用plot函式繪製t—x(t)、t—dx/dt、t—v(t)執行結果,可以發現,該方程似乎為振動型方程,其x的振幅為±3.8,vx速度為±800,vx速度為±4e-3
用matlab求非線性微分方程問題
手機使用者 順序書這樣的 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 ...
matlab中nlinfit非線性擬合求引數
袁怡圃 補充回答 資料不好 建立函式檔案 function y myfun beta,x y 2.350176 beta 1 1 1 beta 2 1 1 x 1 1 beta 2 beta 2 2.x 1 1 beta 2 1 beta 2 x 1 1 beta 2 0.5 x 2 執行 x 0....
matlab擬合非線性函式,如何用matlab進行已知函式的非線性擬合
兔子和小強 線性模型 非線性模型是以待優化引數w為參考 而不是看x y w x 表示轉置 描述的是線性模型。題目中要擬合的函式是 y w0 w1 cos a wn cosna,它同樣符合y w x,其中x 1 cosa cosna 設x構成的集合是x,y構成的集合是y,可依據最小二乘法求出w xx ...