解法matlab怎么求一阶常微分方程组(so 如何用matlab求下面一阶微分方程组的数值解
\u8bf7\u95ee\u5982\u4f55\u5b9e\u73b0matlab\u89e3\u4e00\u9636\u5fae\u5206\u65b9\u7a0b\u7ec4(\u7528\u5176\u81ea\u8eab\u547d\u4ee4\u5982ode45\u7b49\u600e\u4e48\u5199\u80fd\u8fd0\u884c\u51fa\u7ed3\u679c)\u5728Matlab\u4e0b\u8f93\u5165\uff1aedit\uff0c\u7136\u540e\u5c06\u4e0b\u9762\u4e24\u884c\u767e\u5206\u53f7\u4e4b\u95f4\u7684\u5185\u5bb9\uff0c\u590d\u5236\u8fdb\u53bb\uff0c\u4fdd\u5b58
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function dxdt=zhidao_rk4_5(t,x)
global a b c d r
x1=x(1);
x2=x(2);
x3=x(3);
x4=x(4);
dxdt=[
a*(x2-x1)+x4;
d*x1-x1*x3+c*x2;
x1*x2-b*x3;
x2*x3+r*x4;
];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\u5728Matlab\u4e0b\u9762\u8f93\u5165\uff1a
global a b c d r
a=1;
b=2;
c=3;
d=4;
r=5;
t_end=10; %\u65f6\u95f4\u8ba1\u7b97\u7684\u7ec8\u70b9,\u5373\u7b97\u5230\u8fd9\u4e2a\u65f6\u95f4\u4e3a\u6b62
x0=[1;1;1;1]; %x\u7684\u521d\u59cb\u503c
[t,x]=ode45('zhidao_rk4_5',[0,t_end],x0);
\u7528matlab\u6c42\u4e0b\u9762\u4e00\u9636\u5fae\u5206\u65b9\u7a0b\u7ec4\u7684\u6570\u503c\u89e3
\u6b64\u5fae\u5206\u65b9\u7a0b\u53ef\u4ee5\u7528ode45\uff08\uff09\u51fd\u6570\u6c42\u7684\u5176\u6570\u503c\u89e3\u3002\u5176\u89e3\u8fc7\u7a0b\u4e3a
1题中x1=i,x2=s,则:
syms x1(t) x2(t)
lamda=0.5;u=0.1;
V = odeToVectorField(diff(x1) ==lamda*x1*x2-u*x2,diff(x2) ==-lamda*x1*x2+0.1)
M = matlabFunction(V,'vars', {'t','Y'})
%计算区间[0 1],初值[0 0]
options = odeset('OutputFcn',@odeplot);
sol = ode45(M,[0 1],[0 0],options)
2题中x=x1,y=x2,z=x3,则:
syms x1(t) x2(t) x3(t)
V = odeToVectorField(diff(x1) ==-8/3*x1+x2*x3,diff(x2) ==-10*x2+10*x3,diff(x3)==-x1*x2+28*x2-x3)
M = matlabFunction(V,'vars', {'t','Y'})
%计算区间[0 1],初值[0 0 1.0e-8]
options = odeset('OutputFcn',@odeplot);
sol = ode45(M,[0 4],[0 0 1.0e-8],options)
figure
x = linspace(0,4,100);
y = deval(sol,x,1:3);
plot(y(1,:),y(2,:))
title('x-y相图')
xlabel('x'),ylabel('y')
grid on
figure
plot(y(1,:),y(3,:))
title('x-z相图')
xlabel('x'),ylabel('z')
grid on
figure
plot3(y(1,:),y(2,:),y(3,:))
title('x-y-z相图')
xlabel('x'),ylabel('y'),zlabel('z')
grid on
绛旓細涓闃剁嚎鎬у井鍒嗘柟绋嬬殑姹傝В涓鑸噰鐢ㄥ父鏁板彉鏄撴硶锛岄氳繃甯告暟鍙樻槗娉曪紝鍙眰鍑轰竴闃剁嚎鎬у井鍒嗘柟绋嬬殑閫氳В銆傚父鏁板彉鏄撴硶鏄釜鐗规畩鐨勫彉閲忎唬鎹㈡硶銆傚鏋滃嚱鏁皔=蠁锛坸锛変娇寰楋紝F锛坸锛屜嗭紙x锛夛紝蠁'锛坸锛0=0锛屽垯绉拌鍑芥暟涓衡憼鐨勪竴涓В銆傚皢y'浠庘憼涓彁鍙栧嚭鏉ワ紝琛ㄧず涓猴細y'=f锛坸锛寉锛夎绉颁负瑙e嚭瀵煎嚱鏁扮殑寰垎鏂圭▼銆傝妯...
绛旓細V = odeToVectorField(diff(x1) ==-8/3*x1+x2*x3,diff(x2) ==-10*x2+10*x3,diff(x3)==-x1*x2+28*x2-x3)M = matlabFunction(V,'vars', {'t','Y'})璁$畻鍖洪棿[0 1]锛屽垵鍊糩0 0 1.0e-8]options = odeset('OutputFcn',@odeplot);sol = ode45(M,[0 4],[0 0 1.0...
绛旓細db/dt=-0.01*a-0.01*b*c+10*a*g dc/dt=-0.01*b*c dd/dt=-0.01*b*c+10*e*d+10*a*g de/dt=-10*e*d df/dt=-10*e*d dg/dt=10*e*d-10*a*g 鍒濆兼槸t=0鏃讹紝a=5,b=0.5,c=0.1,d=0,e=0,f=0,g=0 function ex1 y0=[5;0.5;0.1;0;0;0;0];tspan=[...
绛旓細娆ф媺娉曡В涓闃跺父寰鍒嗘柟绋% y'=xy^(1/3)f = inline('x*y^(1/3)','x','y');figure; hold on;for h = [0.1 0.05 0.01] %涓変釜姝ラ暱 xleft = 1; %鍖哄煙鐨勫乏杈圭晫 xright = 5; %鍖哄煙鐨勫彸杈圭晫 xx = xleft:h:xright; %涓绯诲垪绂绘暎鐨勭偣 n = length(...
绛旓細绛旀锛歰de45鏄MATLAB涓鐢ㄤ簬姹傝В甯稿井鍒嗘柟绋嬪垵鍊奸棶棰樼殑鍑芥暟銆傚叾鍩烘湰鐢ㄦ硶鏄皟鐢╫de45鍑芥暟骞舵彁渚涙弿杩版柟绋嬬粍鐨勫尶鍚嶅嚱鏁颁綔涓鸿緭鍏ャ傝鍑芥暟灏嗚繑鍥炰竴涓悜閲忔垨鐭╅樀锛岃〃绀鸿嚜鍙橀噺鍦ㄤ竴瀹氳寖鍥村唴鐨勮В銆備笅闈㈡槸璇︾粏鐨勮В閲娿傝缁嗚В閲婏細ode45鍑芥暟鏄疢ATLAB涓笓闂ㄧ敤浜庢眰瑙e父寰垎鏂圭▼鍒濆奸棶棰樼殑鍑芥暟銆傚畠閫傜敤浜涓闃鍒伴珮闃剁殑甯稿井鍒嗘柟绋...
绛旓細棣栧厛寰椾粙缁嶄竴涓嬶紝鍦matlab涓В甯稿井鍒嗘柟绋嬫湁涓ょ鏂规硶锛屼竴绉嶆槸绗﹀彿瑙f硶锛屽彟涓绉嶆槸鏁板艰В娉曘傚湪鏈闃舵鐨勫井鍒嗘暟瀛﹂锛屽熀鏈笂鍙互閫氳繃绗﹀彿瑙f硶瑙e喅銆鐢╩atlab瑙e喅甯稿井鍒嗛棶棰樼殑绗﹀彿瑙f硶鐨勫叧閿懡浠ゆ槸dslove鍛戒护銆傝鍛戒护涓彲浠ョ敤D琛ㄧず寰垎绗﹀彿锛屽叾涓璂2琛ㄧず浜闃寰垎锛孌3琛ㄧず涓夐樁寰垎锛屼互姝ょ被鎺ㄣ傚煎緱娉ㄦ剰鐨勬槸璇...
绛旓細棰樹富鐢╠solve鍑芥暟姹傝繖涓涓闃跺父寰鍒嗘柟绋嬪嚭鐜伴敊璇殑鍘熷洜鏄細浣跨敤dsolve鍑芥暟鐨勬蹇垫湁璇 dsolve锛坋qn,'a(0)=0','t'锛夎繖涓舰寮忓彧鑳芥眰瑙qn鎵绀鸿〃杈惧紡鐨勫井鍒嗘柟绋嬶紝鑰岄涓荤殑鎰忓浘瑕佸皢澶栭儴宸茬煡鍊间唬鍏qn鎵绀鸿〃杈惧紡涓紝鎵浠ュ簲璇ヨ繖鏍锋潵鏀瑰啓 T=?;kr20=锛;B20=锛;C20=锛;De20=锛;...
绛旓細function Euler 娆ф媺娉曞拰榫欐牸搴撳绠楁硶瑙涓闃跺父寰鍒嗘柟绋嬫簮浠g爜 渚嬪瓙dy/dx=-y+x+1 f=inline('-y+x+1','x','y');寰垎鏂圭▼鐨勫彸杈归」 dx=0.5;x鏂瑰悜姝ラ暱 xleft=0;鍖哄煙鐨勫乏杈圭晫 xright=10;鍖哄煙鐨勫彸杈圭晫 xx=xleft:dx:xright;涓绯诲垪绂绘暎鐨勭偣 n=length(xx);鐐圭殑涓暟 y0=1;(1)娆ф媺娉 Eul...
绛旓細瑙e緱锛歕[ y_1 = \frac{1}{1-P(x)}\left(\int Q(x)dx + C\right) \]渚嬪瓙2锛氭眰瑙d簩闃绾挎у父绯绘暟榻愭寰垎鏂圭▼ 缁欏畾浜岄樁绾挎у父绯绘暟榻愭寰垎鏂圭▼锛歕[ \frac{d^2y}{dx^2} + P(x)\frac{dy}{dx} + Q(x)y = 0 \]鍏朵腑 \( P(x) \) 鍜 \( Q(x) \) 鏄凡鐭ュ嚱鏁般瑙f硶锛...
绛旓細鍦Matlab涓嬭緭鍏ワ細edit锛岀劧鍚庡皢涓嬮潰涓よ鐧惧垎鍙蜂箣闂寸殑鍐呭锛屽鍒惰繘鍘伙紝淇濆瓨 function F=zhidao_joans321(a,t)r=a(1);b=a(2);C1=a(3);F=b./(1+exp(-r*t)*C1*b);浣犺濂絫,x鍚庯紝姣斿 t=1:17;x=sin(t);鍦∕atlab涓嬭緭鍏ワ細[A,res]=lsqcurvefit('zhidao_joans321',ones(1,3),t,x);...