练习 5:y’’-0.01(y’)2+2y=sin(t), y(0)=0, y’(0)=1,0<t<5, 作 y 的图。 求这道题的matlab代码
时间: 2024-04-13 13:29:50 浏览: 124
X-Y数控工作台机电系统设计2
4星 · 用户满意度95%
下面是用 MATLAB 求解该微分方程并绘制 y 的图形的代码:
```matlab
% 定义微分方程的函数
fun = @(t, y) [y(2); -0.01*y(2)^2 + 2*y(1) - sin(t)];
% 设置初始条件和时间范围
y0 = [0; 1];
tspan = [0, 5];
% 求解微分方程
[t, y] = ode45(fun, tspan, y0);
% 绘制 y 的图形
plot(t, y(:, 1));
xlabel('t');
ylabel('y');
title('y vs t');
```
在代码中,首先定义了一个匿名函数 `fun`,该函数接受输入参数 `t` 和 `y`,其中 `t` 是自变量,`y` 是一个包含两个元素的向量。函数的目的是计算微分方程的右侧表达式。
然后设置了初始条件 `y0`,它是一个包含两个元素的列向量,表示 `y(0)` 和 `y'(0)` 的值。同时,设定了时间范围 `tspan`,表示求解微分方程的时间区间。
接下来使用 MATLAB 的 `ode45` 函数来求解微分方程。该函数的输入参数包括微分方程函数 `fun`、时间范围 `tspan` 和初始条件 `y0`。函数将返回时间点和相应的解。
最后,使用 `plot` 函数绘制时间点 `t` 作为横轴,`y(:, 1)` 表示解向量 `y` 的第一列,即 `y` 的值,作为纵轴的曲线图。通过给图表添加坐标轴标签和标题,使图形更具可读性。
这段代码将求解微分方程并绘制 y 的图形,展示了 y 随时间变化的趋势。
阅读全文