龙格库塔matlab代码
答:function [Y] = RK45(t,X,f,h)K1=f(t,X);K2=f(t+h/2,X+h/2*K1);K3=f(t+h/2,X+h/2*K2);K4=f(t+h,X+h*K3);Y=X+h/6*(K1+2*K2+2*K3+K4);end 以上是4阶龙格库塔法的代码:自己写函数,存为f.m function dxdt = f (t,x)dxdt(1)=exp(x(1)*sin(t))+...
答:用龙格库塔求解二阶微分方程组的实现方法:ⅹ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(...
答:以下另存为文件 myrk4.mfunction [x,y]=myrk4(ufunc,y0,h,a,b)%参数: 函数名称,初始值向量,步长,时间起点,时间终点n=floor((b-a)/h);%求步数 x(1)=a;%时间起点 y(:,1)=y0;%赋初值%按龙格库塔方法进行求解 for ii=1:n x(ii+1)=x(ii)+h; k1=ufunc(x(ii),y...
答:end Matlab中龙格-库塔(Runge-Kutta)方法原理及实现龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度单步算法。由于此算法精度高,采取措施对误差进行抑制,所以其实现原理也较复杂。该算法是构建在数学支持的基础之上的。龙格库塔方法的理论基础来源于泰勒公式和使用斜率近似表达微分,它在积分区间...
答:>> f=inline('1/6-y/30','t','y');>> [t,y]=ode45(f,[0,5],[0]);>> plot(t,y)另外,由高数的知识,可以得到解析解为:y=5-5*e^(-t/30)把上述的解析值也放到上图中。>> hold on >> plot(t,5-5*exp(-t/30),'r*')可以看到二者相当吻合。
答:function Euler 欧拉法和龙格库塔算法解一阶常微分方程源代码 例子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...
答:h=1/128;tf=3 ;t = 1:h:tf;x = zeros(1,length(t));x(1) = 2; F_tx = @(t, x)(t.*x-x.^2)./t.^2; for i=1:(length(t)-1) k_1 = F_tx(t(i),x(i)); k_2 = F_tx(t(i)+0.5*h,x(i)+0.5*h*k_1); k_3 = F_tx((t(i)+0.5*...
答:该二阶微分方程用龙格库塔法可以这样来求解。第一步,根据该二阶微分方程,自定义微分方程函数,func(t,y)第二步,根据初始条件,确定y和y'的初值,即y0=[0,0]第三步,使用ode45函数求解【t,y】的数值解,即 [t,y] = ode45(@func,[0 0.0005],y0);第四步,根据t、y、y'值,绘制t—y...
答:plot(T,Y(:,1),'-ro')plot(T,Y(:,2),'-g*')plot(T,Y(:,3),'-ys')plot(T,Y(:,4),'-gs')plot(T,Y(:,5),'--b*')plot(T,Y(:,6),'--ko')legend('Y(:,1)','Y(:,2)','Y(:,3)','Y(:,4)','Y(:,5)','Y(:,6)')函数fun.m见附件 matlab的help做...
答:解方程很简单,调用ode45即可 关键是求运动时间,假设z方向坐标变为0即为落至地面运动结束,可求得运动时间的近似值及落地点坐标 代码如下:clear all clc c=0.07;u0=25;a=pi/6;f=@(t,x)([x(2);-c*sqrt(x(2)^2+(x(4)-7-.35*x(5))^2+x(6)^2)*x(2);x(4);-c*sqrt(x...
网友评论:
沈德18744056645:
急求MATLAB编程源代码用四阶龙格库塔法解如下微分方程 y'=y - 2x/y(0<x<1),y(0)=1,步长为h=0.2 -
7683罗裴
: % 以下另存为文件 myrk4.m function [x,y]=myrk4(ufunc,y0,h,a,b)%参数: 函数名称,初始值向量,步长,时间起点,时间终点 n=floor((b-a)/h);%求步数 x(1)=a;%时间起点 y(:,1)=y0;%赋初值%按龙格库塔方法进行求解 for ii=1:nx(ii+1)=x(ii)+h;...
沈德18744056645:
龙格库塔法求解微分方程,matlab怎么编程 -
7683罗裴
: function [Y] = RK45(t,X,f,h) K1=f(t,X); K2=f(t+h/2,X+h/2*K1); K3=f(t+h/2,X+h/2*K2); K4=f(t+h,X+h*K3); Y=X+h/6*(K1+2*K2+2*K3+K4); end 以上是4阶龙格库塔法的代码: 自己写函数,存为f.m function dxdt = f (t,x) dxdt(1)=exp(x(1)*sin(t))+x(2); dxdt(2)...
沈德18744056645:
龙格库塔法求解一阶常微分方程组 的Matlab代码 -
7683罗裴
: 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])
沈德18744056645:
跪求用龙格库塔求解微分方程的matlab程序 -
7683罗裴
: >> f=inline('1/6-y/30','t','y');>> [t,y]=ode45(f,[0,5],[0]);>> plot(t,y) 另外,由高数的知识,可以得到解析解为:y=5-5*e^(-t/30) 把上述的解析值也放到上图中.>> hold on>> plot(t,5-5*exp(-t/30),'r*') 可以看到二者相当吻合.
沈德18744056645:
用龙格库塔法求非线性方程组matlab编写程序 -
7683罗裴
: 初值为[1 2] [T,x] = ode15s(@vdp1000,[0 10],[1 2]); plot(T,x(:,1),'-');hold on; plot(T,x(:,2),'-.');hold on; legend('x1','x2'); 子函数为: function dx = vdp1000(t,x) dx = zeros(2,1); dx(1) = -x(2); dx(2) = -0.2*(1 - x(1)^2)*x(2) + x(1); 图形为:相等的点自己可以估计下!采纳吧,做的很辛苦!
沈德18744056645:
在matlab中用四阶龙格 - 库塔法解二阶微分方程怎么做??最好有代码!! -
7683罗裴
: 例 y'= - y+x+1,y(0) = 1 首先建立M-文件 (weif.m) function f = weif(x,y) f=-y+x+1; 求解:[x,y]=ode45('weif',[0,1],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)...
沈德18744056645:
急!!!求matlab 用四阶龙格 - 库塔法求解常微分方程 -
7683罗裴
: 建立.m文件 --------------------------------------------- function theta=danbai(t,X) x=X(1); dx=X(2); ddx=-sin(x); theta=[dx;ddx]; ---------------------------------------------- 命令窗口输入 >> [t,Y]=ode45(@danbai,[0 6],[pi/3 -1/2]); >> plot(t,Y(:,1),'ro-',t,Y(:,2),'bv-'); >> legend...
沈德18744056645:
龙格库塔求解二阶微分方程组的MATLAB编程 -
7683罗裴
: MATLAB求解x''+0.7x'+0.8x'|x'|+25.6x-25.6x³=0二阶微分方程组的方法,可以按下列步骤进行: 1、建立自定义函数func() 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(:);...
沈德18744056645:
Matlab用四阶龙格库塔法求解不可微分方程组的初值y1'=120 - 2*y1+2*y2 (0 -
7683罗裴
:[答案] %% function dx=aaa(t,x)%定义matlab函数来描述方程 dx=[120-2*x(1)+2*x(2);2*x(1)-5*x(2)] %% x0=[0;0] [t,y]=ode45('aaa',[0,1],x0); plot(t,y)
沈德18744056645:
急急急!求助matlab用龙格 - 库塔方法求解方程组 -
7683罗裴
: function df=ode45_fun(t,xyzuvw) %%注意小写的v和大写的V %常数(请修正) R_0=1; rho_0=1; beta=1; G=6.67e-11; M=1.5e24;x=xyzuvw(1); y=xyzuvw(2); z=xyzuvw(3); u=xyzuvw(4); v=xyzuvw(5); w=xyzuvw(6);R=sqrt(x*x+y*y+z*z); V=sqrt(u*u+v*v+w...