微分方程matlab绘图,用matlab解微分方程组并作图

共回答了19个问题采纳率:89.5%

function dx=appollo(t,x)

mu=1/82.45;

mustar=1-mu;

r1=sqrt((x(1)+mu)^2+x(3)^2);

r2=sqrt((x(1)-mustar)^2+x(3)^2);

dx=[x(2)

2*x(4)+x(1)-mustar*(x(1)+mu)/r1^3-mu*(x(1)-mustar)/r2^3

x(4)

-2*x(2)+x(3)-mustar*x(3)/r1^3-mu*x(3)/r2^3];

--------------------------------------------------------------------------------------

x0=[1.2;0;0;-1.04935751];%x0(i)对应与xi的初值

options=odeset('reltol',1e-8);%该命令的另一种写法是options=odeset;options.reltol=1e-8;

tic

[t,y]=ode45(@appollo,[0,20],x0,options);%t是时间点,y的第i列对应xi的值,t和y的行数相同

toc

plot(y(:,1),y(:,3))%绘制x1和x3,也就是x和y的图形

title('Appollo卫星运动轨迹')

xlabel('X')

ylabel('Y')

1年前

10

好的,我可以帮你微分方程组并画图。但是在开始之前,需要先确定微分方程组的具体形式和初始条件。假设微分方程组如下: dy/dt = f1(y,z,t) dz/dt = f2(y,z,t) 其中,y和z都是关于t的函数,f1和f2是给定的函数。 现在我们可以使用MATLAB中的ode45函数来求微分方程组,并使用plot函数来画图。具体步骤如下: 1. 定义函数句柄 在MATLAB中,我们需要先定义一个函数句柄,用来表示微分方程组的右侧。假设我们定义一个名为 "odefun" 的函数,代码如下: ``` function dydt = odefun(t,y) dydt = [f1(y(1),y(2),t); f2(y(1),y(2),t)]; end ``` 其中,t是变量,y是一个包含y和z的向量。函数返回的是微分方程组右侧的值。 2. 定义初始条件 我们需要定义微分方程组的初始条件,即y和z在t=0的值。假设y0和z0分别表示y和z在t=0的值,代码如下: ``` y0 = [y0; z0]; ``` 3. 求微分方程组 使用ode45函数求微分方程组,代码如下: ``` [t,y] = ode45(@odefun, [0, t_end], y0); ``` 其中,ode45函数的第一个参数是函数句柄,第二个参数是,第三个参数是初始条件。 4. 画图 使用plot函数画出y和z随变化的图像,代码如下: ``` plot(t, y(:,1), 'r-', t, y(:,2), 'b-'); legend('y', 'z'); xlabel('Time'); ylabel('Values'); ``` 其中,y(:,1)表示y随变化的值,y(:,2)表示z随变化的值。 以上就是MATLAB微分方程组并画图的基本步骤。你可以根据具体的微分方程组和初始条件,修改上述代码,并在MATLAB中运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值