1.用预报-校正法解下面常微分方程的初值问题。

2.用r-k方法求解初值问题:


import math as mh
import matplotlib.pyplot as plt
def g(x):ni=1/((x**2)+1)return ni
def no(jk1,h2):#question one with prediction correction methodglobal ydef f(x,y):xv=-2*x*(y**2)return xvx1=jk1;x2=h2;h=0.01;y0=1t=(x2-x1)/h;hi=int(t)for i in range(hi):n1=f(x1+i*h,y0);y1=y0+h*n1;n2=f(x1+(i+1)*h,y1);y=y0+h/2*(n1+n2)y0=yreturn y
x0=0#x的初值点
x1=2#想求的X值
r=1/5;y=0;no(x0,x1)
print('问题1:(保留6位小数)\n求解X={}时,y值\n预报校正法求解:{:.6};步长为0.01'.format(x1,y))
print('准确求解微分方程:{:.6}'.format(r))
print('预报和准确值的相对误差为:{:.6}%,绝对误差为:{:.6}'.format(abs(y-r)/r*100,abs(y-r)))
x1=[0];y1=[1];y2=[1]
for i in range(300):y1.append(g(i*0.01))x1.append(i*0.01)y2.append(no(x0,0.01+i*0.01))
plt.plot(x1,y1,c='r',label='Value')
plt.plot(x1,y2,c='k',label='prediction')
plt.xlabel('X');plt.ylabel('Y');plt.title('P-M trace')
plt.legend()
plt.show()
def f(x,y):#question second with R-K.wayxv=mh.sin(x)+mh.cos(y)return xv
c1=[];c2=[]
for j in range(1000):x1=0;x2=10;h=0.01;y0=0;x0=0t=(x2-x1)/h;hi=int(t)-jfor i in range(hi):n1=f(x0,y0)n2=f(x0+h/2,y0+n1*h/2)n3=f(x0+h/2,y0+n2*h/2)n4=f(x0+h,y0+n3*h)y=y0+h/6*(n1+2*n2+2*n3+n4)y0=yx0=x0+hc2.append(y);c1.append(hi*h)
print('问题2:(保留6位小数)\n求解X={}时,y值\nR-K求解:{:.6};步长为0.01'.format(c1[900],c2[900]))
plt.plot(c1,c2,c='k')
plt.xlabel('X');plt.ylabel('Y');plt.title('R-K trace')
plt.show()

结果:

问题1:(保留6位小数)
求解X=2时,y值
预报校正法求解:0.200007;步长为0.01
准确求解微分方程:0.2
预报和准确值的相对误差为:0.00325958%,绝对误差为:6.51915e-06
问题2:(保留6位小数)
求解X=1.2307313059275027时,y值
R-K求解:1.23073;步长为0.01

python——求解微分方程相关推荐

  1. python求解微分方程_python能解微分方程吗

    Sympy Sympy是一个数学符号库(sym代表了symbol,符号),包括了积分,微分方程等各种数学运算方法,为python提供了强大的数学运算支持.对于图像来说,虽然都是做离散的计算,操作最多的 ...

  2. python解决微分方程(数值解法)

    Python求解微分方程(数值解法) 对于一些微分方程来说,数值解法对于求解具有很好的帮助,因为难以求得其原方程. 比如方程: 但是我们知道了它的初始条件,这对于我们叠代求解很有帮助,也是必须的. 那 ...

  3. python如何求解微分方程_用Python数值求解偏微分方程

    1 引言 微分方程是描述一个系统的状态随时间和空间演化的最基本的数学工具之一,其在物理.经济.工程.社会等各方面都有及其重要的应用.然而,只有很少的微分方程可以解析求解,尤其对于偏微分方程,能解析求解 ...

  4. python如何求解微分方程_常微分方程数值解:Python求解

    这里对使用python求解常微分方程提供两种思路,一种是自己编程实现欧拉法,改进欧拉法或者四阶龙格库塔,这样有助于理解上述三种数值计算方法的原理:一种是调用python已有的库,不再重复造轮子. 本文 ...

  5. python 物理学中的应用_利用python求解物理学中的双弹簧质能系统详解

    前言 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的模型如下: 在这个系统里有两个物体,它们的质 ...

  6. python代码物理_利用python求解物理学中的双弹簧质能系统详解

    前言 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的模型如下: 在这个系统里有两个物体,它们的质 ...

  7. 使用Python求解方程

    文章目录 **Numpy 求解线性方程组** **SciPy 求解非线性方程组** SymPy 通吃一切 SymPy简介 展开与折叠 分离与合并 简化表达式 solve( )解方程 limit( )求 ...

  8. python求解一阶常微分方程

    一.用python求解一阶常微分方程 1.求解微分方程需要用到scipy库,pycharm中安装即可,同时需要导入numpy库和matplotlib两个库 2.使用scipy.integrate.od ...

  9. python求解析解,Python解微分方程

    Python解微分方程 微分方程回顾 微分方程:python 解析解(SymPy) 微分方程:python数值解(SciPY) 微分方程组:python数值解 微分方程回顾 微分方程是用来描述某一类函 ...

最新文章

  1. 残差网络的前世今生与原理 | 赠书
  2. thinkbook14 2021款的一些坑
  3. 如何使用SAP Cloud for Customer的Key User Tool将Mashup添加到UI上
  4. enterprise architect复制到word中的标签怎么改变_7个 Word 技巧,不会别说自己会 Word...
  5. 【渝粤题库】广东开放大学 商务办公软件应用与实践 形成性考核
  6. linux 中级 教程pdf,Linux初中级学习者指导Linux操作系统技术合集.pdf
  7. python语音库_Python中的Python文本到语音
  8. 不容错过的 15 个 Linux 实用技巧
  9. 超客营销以社交化重塑销售过程管理
  10. Liunx 常用命令
  11. vue数据未加载完成前显示loading遮罩
  12. 不允许同时配置%Error 140357: Simultaneous configs not aUowed.问题解决
  13. python 打开网页并截图_python实现自动网页截图并裁剪图片
  14. Android Studio 开发实践——简易版音游APP(一)
  15. 基层群众工作存在的问题_联系服务群众方面存在的问题及原因
  16. win7休眠、待机api
  17. 用Python控制Kinect相机
  18. C语言初学者环境配置
  19. videoder有什么用_videoder
  20. ROS2+nav2+激光雷达导航(上)

热门文章

  1. 实例10 等差数列求和
  2. win10修改用户名
  3. 批量更改Excel文件中大量工作表的内容(修改公司一千多份excel表格)
  4. 目前国内常见医用显示器品牌
  5. log4cplus的各种坑
  6. 移动 App 接入 QQ 登录/分享流程
  7. monkeyrunner的使用
  8. 中国邮政CRM系统建设沉淀_20181208
  9. 滴滴一技术总监4年累计受贿1000万,被开除并移送公安机关
  10. 什么是Bugzilla