常微分方程王高雄第三版--第二章一阶微分方程的初等解法--Julia实现

本文详细介绍了常微分方程中一阶微分方程的初等解法,通过Julia编程实现变量分离方程、线性微分方程及常数变易法的求解过程。分别展示了不同参数和初值条件下的解,如例1的椭圆轨迹,例5和例6的非光滑曲线等,并强调了自变量取值范围和初值选择对解的影响。
摘要由CSDN通过智能技术生成

本章主要展示第二章一阶微分方程的初等解法中的各个示例

2.1 变量分离方程与变量变换

例1

d y d t = − x y \frac{dy}{dt}=-\frac{x}{y} dtdy=yx

f11(u,p,t)=-t./u #运用点语法
u0=0.01
tspan=(-2.0,2.0)
prob1 = ODEProblem(f11,u0,tspan)
sol1 = solve(prob1,saveat=0.01)#,EM(),dt=dt)
plot(sol1)
f12(u,p,t)=-t/u  #没有运用点语法
u0=0.01
tspan=(-2.0,2.0)
prob2 = ODEProblem(f12,u0,tspan)
sol2 = solve(prob2,saveat=0.01)#,EM(),dt=dt)
plot(sol2)

在这里插入图片描述
两个程序的结果一致。需注意程序中的p,这个即使用不着,也需要加上。若u0不接近0,结果将不一样,假设u0=1/2,结果则为椭圆,即:
在这里插入图片描述

例2

d y d t = − y ( − c + d x ) x ( a − b y ) \frac{dy}{dt}=-\frac{y(-c+dx)}{x(a-by)} dtdy=x(aby)y(c+dx)
a、b、c、d为常数,a、b、c、d选取不同将导致最后结果不一致,结果的差别是很大的,本章假设两种情况:一是:c=-10,d=-3,,a=3,b=10,二是:c=10,d=3,,a=3,b=10,两者只差一个负号。

f2(u,p,t)= u*(10-3*t)/(t*(3-10*u))
u0 = 1
tspan = (0.01,10.0)
prob2 = ODEProblem(f2,u0,tspan)
sol2 = solve(prob2,saveat=0.1)
plot(sol2)

在这里插入图片描述

f3(u,p,t)= u*(-10+3*t)/(t*(3-10*u))
u0 = 1
tspan = (0.01,10.0)
prob3 = ODEProblem(f3,u0,tspan)
sol3 = solve(prob3,saveat=0.1)
plot(sol3)

在这里插入图片描述
注:在编写代码时,需注意自变量的取值范围tspan ,尤其是否能取得0。

例3例4略

例3为人口模型,可参考前一章,例4中的p(x)不做假设,故本章略。

例5

d y d t = x y + t a n x y \frac{dy}{dt}=\frac{x}{y}+tan\frac{x}{y} dtdy=yx<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值