数模小白打卡第七天
主题活动
发布于 2025-08-25 20:27:56
查看 10过去307天
最后上传了七天的所有题目文件
using TyMath
using TyPlot
# 定义刚性体运动的 ODE 方程组
function ode_rigid(t, y)
dy1 = y[2] * y[3]
dy2 = -y[1] * y[3]
dy3 = 0.51 * y[1] * y[2]
return [dy1; dy2; dy3]
end
function solve_rigid_body()
tspan = [0 12]
y0 = [0.0; 1.0; 1.0]
# 调用 ode45 求解
t, y = ode45(rigid_ode, tspan, y0)
# 绘制结果
figure(figsize=(8, 5))
hold("on")
plot(t, y[:, 1], "-o", label=raw"$y_1$")
plot(t, y[:, 2], "-o", label=raw"$y_2$")
plot(t, y[:, 3], "-o", label=raw"$y_3$")
hold("off")
title("刚性体运动方程的数值解")
xlabel("时间")
ylabel("状态变量")
legend(loc="best")
end
solve_rigid_body()
##
using TyMath, TyPlot
# 定义 SIR 模型 ODE
function sir_ode(t, y)
N, β, γ = 10000, 0.4, 0.1
S, I, R = y[1], y[2], y[3]
dS = -β * S * I / N
dI = β * S * I / N - γ * I
dR = γ * I
return [dS; dI; dR]
end
# 求解 ODE
t, y = ode45(sir_ode, [0 100], [9990; 10; 0])
# 绘制三条曲线
figure()
hold(true)
plot(t, y[:,1], "b-", label="S(t)") # 蓝色
plot(t, y[:,2], "r-", label="I(t)") # 红色
plot(t, y[:,3], "g-", label="R(t)") # 绿色
hold(false)
title("SIR 模型预测")
xlabel("时间 (天)")
ylabel("人数")
legend(loc="upper right")
grid("on")
所属专栏:Julia语言
产品信息:Syslab科学计算环境