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

第二章

  • 2.1 变量分离方程与变量变换
    • 例1
    • 例2
    • 例3例4略
    • 例5
    • 例6
    • 例7
  • 2.2 线性微分方程与常数变易法
    • 例1(例2)
    • 例3
    • 例5
    • 例6

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

例1

dydt=−xy\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

dydt=−y(−c+dx)x(a−by)\frac{dy}{dt}=-\frac{y(-c+dx)}{x(a-by)} dtdy​=−x(a−by)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

dydt=xy+tanxy\frac{dy}{dt}=\frac{x}{y}+tan\frac{x}{y} dtdy​=yx​+tanyx​
本章假设y的初值为-2、-1、-1/2、0、1/2、1、-2

f4(u,p,t)= u/t+tan(u/t);
u0 =[-2,-1,-1/2,0,1/2,1,2];
tspan = (0.01,10.0);
plot()
for i in u0prob4 = ODEProblem(f4,i,tspan);sol4 = solve(prob4,saveat=0.01);plot!(sol4,label=i)
end
plot!()


注:初值为-1、1时,曲线明显不光滑,单独化一条线时,初值为0.5(-0.5)时,也是不光滑的,如下图,其余初值可自行研究。

例6

xdydt+2xy=yx\frac{dy}{dt}+2\sqrt{xy}=y xdtdy​+2xy​=y
可转化为:
dydt=y−2xyx\frac{dy}{dt}=\frac{y-2\sqrt{xy}}{x} dtdy​=xy−2xy​​
转化后的方程的自变量不能取到0,需额外计算,本章不给予计算,同时本章假设初值为[0,1/2,1,2](初值不为负数),在[0.01,10]绘制方程解,代码和结果如下所示:

f5(u,p,t)= (u-2*√(u*t))/t
u0 =[0,1/2,1,2];
tspan = (0.01,10.0);
plot()
for i in u0prob5 = ODEProblem(f5,i,tspan);sol5 = solve(prob5,saveat=0.01);plot!(sol5,label=i)
end
plot!()

例7

dydt=x−y+1x+y−3\frac{dy}{dt}=\frac{x-y+1}{x+y-3} dtdy​=x+y−3x−y+1​
注:此方程需额外考虑x+y≠3,故本章选取解的范围[10,20],初值分别为-2、-1、-1/2、0、1/2、1、-2,代码和结果如下所示:

f6(u,p,t)= (t-u+1)/(t+u-3)
u0 =[-2,-1,-1/2,0,1/2,1,-2];
tspan = (10.0,20.0);
plot()
for i in u0prob6 = ODEProblem(f6,i,tspan);sol6 = solve(prob6,saveat=0.01);plot!(sol6,label=i)
end
plot!()

2.2 线性微分方程与常数变易法

例1(例2)

(3x2+6xy2)dx+(6x2y+4y3)dy=0(3x^2+6xy^2)dx+(6x^2y+4y^3)dy=0 (3x2+6xy2)dx+(6x2y+4y3)dy=0
可变换为:
dydx=−3x2+6xy26x2y+4y3\frac{dy}{dx}=-\frac{3x^2+6xy^2}{6x^2y+4y^3} dxdy​=−6x2y+4y33x2+6xy2​
此时初值不为0,本章选取初值为:-2,-1,-1/2,1/2,1,2,绘制在[10,20]上的解,结果和代码如下所示:

f7(u,p,t)= (3*t^2+6*t*u^2)/(6*t^2*u+4*u^3)
u0 =[-2,-1,-1/2,1/2,1,2];
tspan = (10.0,20.0);
plot()
for i in u0prob7 = ODEProblem(f7,i,tspan);sol7 = solve(prob7,saveat=0.01);plot!(sol7,label=i)
end
plot!()

例3

(cosx+1y)dx+(1y−xy2)dy=0(cosx+\frac{1}{y})dx+(\frac{1}{y}-\frac{x}{y^2})dy=0 (cosx+y1​)dx+(y1​−y2x​)dy=0
可转化为:
dydx=y2cos+yy−x\frac{dy}{dx}=\frac{y^2cos+y}{y-x} dxdy​=y−xy2cos+y​
本章选取初值为:-2,-1,-1/2,0,1/2,1,2,绘制在[10,20]上的解,结果和代码如下所示:

f8(u,p,t)= (cos(t)*u^2+u)/(u-t)
u0 =[-2,-1,-1/2,0,1/2,1,2];
tspan = (10.0,20.0);
plot()
for i in u0prob8 = ODEProblem(f8,i,tspan);sol8 = solve(prob8,saveat=0.01);plot!(sol8,label=i)
end
plot!()

例5

dydx=−xy+1+(xy)2\frac{dy}{dx}=-\frac{x}{y}+\sqrt{1+(\frac{x}{y}})^2 dxdy​=−yx​+1+(yx​​)2
本章选取初值为:-2,-1,-1/2,1/2,1,2,绘制在[10,20]上的解,结果和代码如下所示:

f9(u,p,t)= -t/u+√(1+(t/u)^2)
u0 =[-2,-1,-1/2,1/2,1,2];
tspan = (10.0,20.0);
plot()
for i in u0prob9 = ODEProblem(f9,i,tspan);sol9 = solve(prob9,saveat=0.01);plot!(sol9,label=i)
end
plot!()

例6

ydx+(y−x)dy=0ydx+(y-x)dy=0 ydx+(y−x)dy=0
本章选取初值为:-2,-1,-1/2,0,1/2,1,2,绘制在[10,20]上的解,结果和代码如下所示:

f10(u,p,t)= u/(t-u)
u0 =[-2,-1,-1/2,0,1/2,1,2];
tspan = (10.0,20.0);
plot()
for i in u0prob10 = ODEProblem(f10,i,tspan);sol10 = solve(prob10,saveat=0.01);plot!(sol10,label=i)
end
plot!()

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

  1. 常微分方程王高雄第三版--第一章绪论--Julia实现

    本章主要展示1.1中的常微分方程模型中的RLC电路(书本方程1.6).数学摆(书本方程1.8).人口模型(书本方程1.12).传染病SIR模型(书本方程1.22).两生物种群生态模型(书本方程1.24 ...

  2. 算法导论第三版第二章思考题答案

    算法导论第三版第二章思考题答案 第二章思考题 算法导论第三版第二章思考题答案 2.1 2.2 2.3 2.4 汇总传送门 2.1 #include<iostream> using name ...

  3. 汇编语言 王爽 第四版 第二章 检测点2.2

    汇编语言 王爽 第四版 课后检测点 课后实验 持续更新~~ 检测点2.2 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为 0010H 到 1000FH . 最小肯定是偏移地址为0, ...

  4. 《深入理解JAVA虚拟机》周志明 第三版 - 第二章 JAVA内存区域与内存溢出异常

    一. 概述 在虚拟机自动内存管理机制下,不容易出现内存泄漏和内存溢出问题,但是一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那排查错误.修正问题将会成为一项异常艰难的工作. 二. ...

  5. 04737 c++ 自学考试2019版 第二章课后程序设计题 2

    /* * 04737 c++ 自学考试2019版 第二章课后练习 * 程序设计题 2 * 需求:设计并实现二维坐标系下点的类Point.... */ //标准流 #include<iostrea ...

  6. 数字图像处理--冈萨雷斯第4版--第二章 数字图像基础

    数字图像处理--冈萨雷斯版--第二章 第二章 数字图像基础 2.1 视觉感知要素 2.1.1 人眼的结构 2.1.2 人眼中图像的形成 2.1.3 亮度适应与辨别 2.2 光和电磁波谱 2.3 图像感 ...

  7. 汇编语言(王爽第三版) 实验5

    汇编语言(王爽第三版) 实验5 由图可见: 第一问:cpu执行程序,程序返回前,ds一直未变,所以data段中的数据不变. 第二问:cpu执行程序,程序返回前,cs=1CD5,SS=1CD4,DS=1 ...

  8. 计算机组成与结构第二章ppt,计算机组成原理(华科版)第二章 运算方法与运算器.ppt...

    文档介绍: 第二章运算方法与运算器 2.1 数据信息的表示方法 2.1.1数值数据的表示 淘在盛纬娃消镶勉桌乡利亚钦沙隐酋谴牲斗丙茸乔泛戊篡汽栽辫滔矮空芥计算机组成原理(华科版)第二章运算方法与运算器 ...

  9. 带权中位数-算法导论第三版第九章思考题9-2

    带权中位数-算法导论第三版第九章思考题9-2 b 时间复杂度O(nlgn) float find_median_with_weights_b(float *array,int length) {qui ...

最新文章

  1. 三天打工生活终于结束了
  2. 同步、异步、阻塞、非阻塞、BIO、NIO、AIO
  3. Java项目导出为可执行jar包,并在windows/linux下运行
  4. linux乌班图vi怎么使用,Ubuntu上vi(vim)编辑器使用教程
  5. java nio改造io,java – 将NIO与IO混合
  6. Reindex SQL Server DB table
  7. BUUOJ reverse SimpleRev (爆破)
  8. 关于游戏架构设计的一些整理吧
  9. leetcode —— 1025. 除数博弈
  10. 普中51控制火焰传感器_传感器检测:以后,电动车充电会变成这样
  11. 事件 event
  12. 带你认识Oracle索引类型(全面总结)
  13. Redis中的lua脚本
  14. Zigbee协议栈中文说明
  15. 测试自动化的三波浪潮
  16. 第一篇,嵌入式ubantu系统安装及常见ubantu命令,C语言数据类型和变量的定义
  17. Linux rar 压缩 解压文件
  18. 嵌入式软件工程师自学之路
  19. 白杨SEO:新媒体如何避免侵权?这篇自媒体防侵权实用指南让你少走弯路!
  20. 猿创征文|OneOS 万耦启物TB6612驱动电机

热门文章

  1. 测试唱歌程度软件,KTV的演唱评分软件可以代表一个人的演唱水平吗?
  2. 刘振亚:以特高压电网引领中国能源互联网建设,以中国能源互联网实现碳减排目标
  3. 为git设置http代理[GAE]
  4. 2011年数学建模国赛B题(交巡警服务平台的设置与调度模型)论文.doc
  5. C语言练习之交换两个数组中的内容
  6. JS中setter/getter理解
  7. 第二十二节,二进制数组
  8. linux 静态路由 优先级,静态路由与路由规则优先级的问题
  9. 无尽进度条android,无尽的进度条
  10. 数据分析提高能效 物联网治理雾霾