matlab想用ode45求解一个二阶常微分方程

作者&投稿:镡呼 (若有异议请与网页底部的电邮联系)
matlab ode45 求解二阶常微分方程~

function test()
[t,y]=ode45(@func1, [0,1], [0;0;1;2;2;2]);
figure(1);
clf;
plot(t, y);
legend('x','y','z','dx','dy','dz');
grid on;
function f=func1(t,x)
r=(x(1)^2+x(2)^2+x(3)^2)^(1/2);
f=[x(4); x(5); x(6); r*x(1); r*x(2); r*x(3)];

你说的Y是什么概念?
程序中有绘图啊,那条蓝线就是y。

想用ode45求解一个二阶常微分方程,但边界条件是y(0)=某值,y(10)=某值,这应该怎么去求解?

1、首先我们应该理清ode函数应用条件,由于二阶常微分方程的解有两个变量(y和y'),一般来说,给出的初始条件为 y(0)=某值和y'(0)=某值,这类问题是适合用ode函数求解。

2、对于题主提出另一种初始条件(同一变量的),即y(0)=某值,y(10)=某值,则不能用ode函数,而应使用bvp4c四阶边界值问题 求解函数,求解格式

sol = bvp4c(odefun,bcfun,solinit)

3、下面举例说明bvp4c函数使用方法

求微分方程 y′′+y=0,y(0)=0,y(π/2)=2。

第一步:自定义微分方程函数,其内容

function dydx = bvpfcn(x,y)

dydx = [y(2) -y(1)];

第二步:自定义微分方程边界条件函数,其内容

function res = bcfcn(ya,yb)

res = [ya(1), yb(1)-2];

第三步:创建初始估计值函数

function g = guess(x)

g = [sin(x), cos(x)];

第四步:使用bvpinit函数,得出边界值问题求解器的初始估计值

第五步:使用bvp4c函数求解方程

sol = bvp4c(@bvpfcn, @bcfcn, solinit);

第六步:使用plot函数

对解进行绘图

plot(sol.x, sol.y, '-o')

4、完善上述代码,运行结果如下。



matlab想用ode45求解一个二阶常微分方程
答:首先,我们需要明确ode45的适用条件。由于二阶常微分方程的解包含两个变量(y和y'),通常情况下,初始条件应为y(0)=某值和y'(0)=某值。这类问题是适合使用ode45求解的。然而,如果题目中给出的初始条件是同一变量的,即y(0)=某值和y(10)=某值,那么就不能使用ode45函数,而应该使用bvp4c函数...

matlab问题:使用ode45求如下微分方程的数值解,绘制y-t图
答:用ode45()求微分方程的格式为 [T,Y] =ode45(odefun,tspan,y0)odefun——微分方程自定义函数;tspan——t的区间;y0——y,dy的初始值。用plot()绘出微分方程的解,即y(t)函数图形。对于本提问,可以按下列代码实施。下图是精确解与数值解的图形比较。

matlab想用ode45求解一个二阶常微分方程
答:1、首先我们应该理清ode函数应用条件,由于二阶常微分方程的解有两个变量(y和y'),一般来说,给出的初始条件为 y(0)=某值和y'(0)=某值,这类问题是适合用ode函数求解。2、对于题主提出另一种初始条件(同一变量的),即y(0)=某值,y(10)=某值,则不能用ode函数,而...

matlab 如何用ode45解参数随着变量变化的微分方程组
答:想用ode45解算出一个微分方程组的数值解,但这个方程组里的系数会随着变量值的改变而改变。所以不知道应该如何写function.m方程组如下:变量为r,v,θdr=vdv=u(1)*sinθdθ=u(2)其中... 想用ode45解算出一个微分方程组的数值解,但这个方程组里的系数会随着变量值的改变而改变。所以不知道应该如何写function....

matlab运动方乘求解ode45,请教?
答:题主给出二阶运动微分方程,如何用ode45函数求解?求解方法如下:1、自定义二阶运动微分方程函数,其中sgn为符号函数,在matlab中是以sign()来表示的。所以该方程函数为 odefun=@(t,u)[u(2);-0.3*(m+10)*sign(u(1))-n];2、确定初始值和时间范围,在这里 u0=[0;0];tspan=[0,10];...

这道matlab用ODE45怎么写?
答:该常微分方程用ode45函数求解。可以这样处理:y0=[100,100];[t,x]=ode45(@odefun,[0 100],y0); %odefun()是微分方程组的自定义函数 figure(1)plot(t,x),grid on legend('x1(t)','x2(t)','Location','northwest')xlabel('t'),ylabel({'x1(t)','x2(t)'})figure(2)plot(x...

matlab中的ode45
答:ode45 求解非刚性微分方程,中阶方法。ode45可以解决问题 M(t,y)*y' = f(t,y) ,质量矩阵M是非奇异的。Example 解决系统 y' = vdp1(t,y) 使用默认的相对误差容差1e-3和每个组件的默认绝对容差1e-6,并绘制解决方案的第一个组件。

这道matlab用ODE45怎么写?
答:用ode45()函数求解微分方程组的关键是建立起自定义函数,该函数的主要内容为 function dy=odefun(t,x); %保存为 odefun.m 文件 mu1=1500;mu2=150;dy(1)=x(1)*(1-x(2)/mu2);dy(2)=-x(2)*(1-x(1)/mu1);dy=dy(:);end 然后用ode45()函数命令,调用odefun()函数。编程后...

...我想请问一下这个方程该怎么用matlab的ode45方程解?
答:用ode45求解题主的微分方程组,可以按下列步骤:1、自定义微分方程组函数,func(t,x)2、确定x0的初值,x0=[0,0,0,0,0];3、使用ode45函数求解【t,x】值。[t,x]=ode45(@(t,x)func(t,x),[0,1.0],x0);4、使用plot函数绘制t—x(t),t—dx/dt,t—y(t),t—dy/dt,t—v(t...

MATLAB 用ode45解方程组?
答:用ode45求解初值问题的常微分方程,可以按下列步骤编程计算。1、建立已知的常微分方程的自定义函数 func=@y/x-2*y^2 2、确定初值,y0=0.0001 3、确定x变化范围,xspan=[0.0001,2.9999]4、使用ode45函数求解,得到x,y的数值解 5、使用plot函数绘制该微分方程的数值解图形 6、运行结果 ...