龙格库塔求解一阶微分方程组的MATLAB编程 龙格库塔法求解一阶常微分方程组 的Matlab代码

\u9f99\u683c\u5e93\u5854\u6c42\u89e3\u4e8c\u9636\u5fae\u5206\u65b9\u7a0b\u7ec4\u7684MATLAB\u7f16\u7a0b

MATLAB\u6c42\u89e3x''+0.7x'+0.8x'|x'|+25.6x-25.6x³=0\u4e8c\u9636\u5fae\u5206\u65b9\u7a0b\u7ec4\u7684\u65b9\u6cd5\uff0c\u53ef\u4ee5\u6309\u4e0b\u5217\u6b65\u9aa4\u8fdb\u884c\uff1a
1\u3001\u5efa\u7acb\u81ea\u5b9a\u4e49\u51fd\u6570func\uff08\uff09
function f = func(t,x)
%x''+0.7x'+0.8x'|x'|+25.6x-25.6x³=0
f(1)=x(2);
f(2)=25.6*x(1)^3-25.6*x(1)-0.8*x(2)*abs(x(2))-0.7*x(2);
f=f(:);
2\u3001\u5efa\u7acb\u9f99\u683c\u5e93\u5854\u7b97\u6cd5\u51fd\u6570runge_kutta\uff08\uff09
\u8c03\u7528\u683c\u5f0f\uff1a[t,x] = runge_kutta(@(t,x)func(t,x),x0,h,a,b);
3\u3001\u7136\u540e\u6839\u636ex\u548cx'\u6570\u636e\uff0c\u7ed8\u5236\u51fax(t)\u3001x\u2032(t)\u7684\u56fe\u5f62\u3002
plot\uff08x\uff08\uff1a\uff0c1\uff09,x\uff08\uff1a\uff0c2\uff09\uff09

clc
f=@(y,t)([1.65e-3*(14.93-y(1))-1.70e13*exp(-9064.23/y(2))*y(1);
4.93-0.01655*y(2)+1.117e13*exp(-9064.23/y(2))*y(1)]);
[Ca T]=ode45(f,[0 1],[.8 300])

用龙格库塔求解二阶微分方程组的实现方法:

ⅹ0=[0.5 0]; 

h=0.1;

a=0;b=1;

[t,x] = runge_kutta(@(t,x)func(t,x),x0,h,a,b);

disp('                      t                      x(t)                      x’(t)')

A=[t',x'];

disp(A)

figure,plot(t,x,'.-'),grid on

xlabel('t'),ylabel('x(t),x’(t)');

title('函数图');

legend('x(t)','x’(t)') 

figure,plot(x(:,1),x(:,2),'.-','LineWidth',1.5),grid on

xlabel('x(t)'),ylabel('x’(t)');

title('x(t)—x’(t)函数图');

end

function f = func(t,x)

%x''+0.7x'+0.8x'|x'|+25.6x-25.6x³=0 

f(1)=x(2);

f(2)=25.6*x(1)^3-25.6*x(1)-0.8*x(2)*abs(x(2))-0.7*x(2);

f=f(:);

end



  • 榫欐牸搴撳姹傝В涓闃跺井鍒嗘柟绋嬬粍鐨凪ATLAB缂栫▼
    绛旓細f(2)=25.6*x(1)^3-25.6*x(1)-0.8*x(2)*abs(x(2))-0.7*x(2);f=f(:);end
  • 姹倂b楂樻墜甯繖,榫欐牸搴撳娉曠紪绋姹傝В寰垎鏂圭▼缁
    绛旓細e(n, 2) = -a(0) * z(1) / a(n) + (b(0) - b(n) * a(0) / a(n)) * u z(n) = X(n) + DT * e(n, 2) / 2 '璁$畻e(1,3),e(2,3),e(3,3)..e(n,3)For i = 1 To n - 1 e(i, 3) = -a(n - i) * z(1) / a(n) + z(i + 1) + ...
  • 涓闃跺井鍒嗘柟绋嬮緳鏍煎簱濉鍥涢樁鏂规硶姹傝В
    绛旓細Q銆亁銆丳鍧囦负鏈煡閲 ,杩欑涓闃跺井鍒嗘柟绋嬫庝箞姹傝В鍛 姹傚ぇ绁炲府鍔 灞曞紑  鎴戞潵绛 鍒嗕韩 寰俊鎵竴鎵 鏂版氮寰崥 QQ绌洪棿 涓炬姤 娴忚29 娆 鍙変腑1涓垨澶氫釜涓嬮潰鐨勫叧閿瘝,鎼滅储鐩稿叧璧勬枡銆備篃鍙洿鎺ョ偣鈥滄悳绱㈣祫鏂欌濇悳绱㈡暣涓棶棰樸 寰垎鏂圭▼ 搴撳 鎼滅储璧勬枡 鏈湴鍥剧墖 鍥剧墖閾炬帴 浠g爜 鎻愪氦鍥炵瓟 鍖垮悕 鍥炵瓟鑷姩淇濆瓨涓 涓轰綘...
  • 榫欐牸搴撳鏂规硶瑙e鍏鏂圭▼缁
    绛旓細1銆佸皢澶氬厓鏂圭▼缁勮浆鍖栦负涓闃跺井鍒嗘柟绋嬬粍銆備緥濡傦紝濡傛灉鏈変袱涓湭鐭ュ嚱鏁皔鍜寊锛屽彲浠ュ皢瀹冧滑琛ㄧず涓哄叧浜巟鐨勪竴闃跺井鍒嗘柟绋嬬粍銆2銆侀夋嫨涓涓傚綋鐨勬闀縣锛屽苟纭畾杩唬杩囩▼涓殑鍒濆鍊笺3銆佸浜庢瘡涓凯浠f楠锛屾牴鎹綋鍓嶇殑鍊艰绠椾笅涓涓楠ょ殑杩戜技鍊笺傝繖闇瑕佷娇鐢榫欐牸-搴撳鏂规硶鐨勫叕寮忚繘琛岃绠椼4銆侀噸澶嶆楠3锛岀洿鍒拌揪鍒版墍闇...
  • matlab榫欐牸搴撳娉姹傝В寰垎鏂圭▼,鎬庝箞缂栫▼
    绛旓細鐢╩atlab榫欐牸搴撳娉曪紙ode45锛姹傝В寰垎鏂圭▼缁鐨勬柟娉曘傜涓姝ワ細寤虹珛寰垎鏂圭▼闃荤殑鑷畾涔夊嚱鏁癿yodefun锛坱锛寊锛夛紝鍏朵富瑕佸唴瀹 dz(1)=1.2*z(1)-0.3*z(1)*z(2);dz(2)=0.05*z(1)*z(2)-0.1*z(2);绗簩姝ワ細鐢╫de45鍑芥暟姹傝В銆俒t,z]=ode45(@myodefun,[0,30],[10,3])绗笁姝ワ細鐢...
  • ...鏂圭▼鍙婂垵濮嬪肩敤娆ф媺娉曞拰榫欐牸搴撳娉曡В涓闃跺井鍒嗘柟绋
    绛旓細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)娆ф媺娉 Eule...
  • 鐢╩atlab姹傝В寰垎鏂圭▼缁
    绛旓細棣栧厛 寤虹珛M鏂囦欢锛歠unction dx=myfun(t,x)dx=zeros(2,1);dx(1)=x(1)*cos(t)+5*x(2)*cos(t+pi/6);dx(2)=5*x(1)+5*x(2)*cos(t+pi/6);涓荤獥鍙o細 锛堣繖閲寉(0)=x(pi/6)鎴戝彇鐨勬槸1,,鍒濆煎繀椤绘槸宸茬煡鐨勶紝锛屾墍浠ヤ綘鍙互澶ц嚧绠椾笅瀹冿級[t,x]=ode45('myfun',[0 pi/6],[0 ...
  • 榫欐牸鈥斺搴撳(Rungekutta)娉姹傝В甯寰垎鏂圭▼
    绛旓細瀵逛簬寰垎鏂圭▼ 閫氬父鎵璇寸殑榫欐牸-搴撳娉曟槸鎸囧洓闃惰岃█鐨勶紝鎴戜滑鍙互浠夸簩闃躲佷笁闃剁殑鎯呭舰鎺ㄥ鍑哄父鐢ㄧ殑鏍囧噯鍥闃堕緳鏍-搴撳娉曞叕寮 鍦ㄥ悇绉嶉緳鏍硷紞搴撳娉曞綋涓湁涓涓柟娉曞崄鍒嗗父鐢紝浠ヨ嚦浜庣粡甯歌绉颁负鈥淩K4鈥濇垨鑰呭氨鏄滈緳鏍硷紞搴撳娉曗濄傝鏂规硶涓昏鏄湪宸茬煡鏂圭▼瀵兼暟鍜屽垵鍊间俊鎭紝鍒╃敤璁$畻鏈轰豢鐪熸椂搴旂敤锛岀渷鍘姹傝В寰垎鏂圭▼...
  • 鎬ユユ!姹傚姪matlab鐢榫欐牸-搴撳鏂规硶姹傝В鏂圭▼缁
    绛旓細甯寰垎鏂圭▼鏁板艰В娉 (Runge-Kutta)寰垎鏂圭▼Dy=y-2*x/y; y(0)=1 绋嬪簭寮濮嬶紝瀹氫箟姹傝В鍖洪棿涓庢闀 clear;clc;h=0.1;% 姝ラ暱 a=0;% 姹傝В鍖洪棿涓嬮檺 b=1;% 姹傝В鍖洪棿涓婇檺 x=a:h:b;% 鍙橀噺鍙栧 y_analy=sqrt(1+2*x);% 瑙f瀽瑙 plot(x,y_analy,'b');hold on; %缁樺埗绮剧‘瑙f洸绾 n=(b...
  • 璺眰鐢榫欐牸搴撳姹傝В寰垎鏂圭▼鐨刴atlab绋嬪簭
    绛旓細>> f=inline('1/6-y/30','t','y');>> [t,y]=ode45(f,[0,5],[0]);>> plot(t,y)鍙﹀锛岀敱楂樻暟鐨勭煡璇嗭紝鍙互寰楀埌瑙f瀽瑙d负锛歽=5-5*e^(-t/30)鎶婁笂杩扮殑瑙f瀽鍊间篃鏀惧埌涓婂浘涓>> hold on >> plot(t,5-5*exp(-t/30),'r*')鍙互鐪嬪埌浜岃呯浉褰撳惢鍚堛
  • 扩展阅读:自适应龙格库塔法 算法 ... 高阶龙格库塔公式 ... 三阶龙格库塔 ... 四阶龙格库塔法讲解 ... 四阶龙格库塔算法 ... 四阶龙格库塔计算例题 ... 经典四阶龙格库塔法 ... 二阶龙格库塔推导 ... 二阶龙格库塔法解过程 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网