首页 > 其他分享 >微分方程数值解法1-Euler法和Runge-Kutta法

微分方程数值解法1-Euler法和Runge-Kutta法

时间:2024-12-09 11:56:24浏览次数:8  
标签:Kutta 0.2 一阶 Euler Runge 欧拉

Euler法

欧拉法为一阶泰勒展开逼近局部函数(隐式方程),通过调整步长不断靠近零点

使用\(f(x_i,y_i)\)线性组合得到\(y(x_{i+1})\)的近似值\(y_{i+1}\)

  • 欧拉法:每步计算1次\(f(x_i,y_i)\),为一阶方法,误差为\(O(h^2)\)
  • 改进欧拉法:每步计算2次\(f(x_i,y_i)\),为二阶方法,误差为\(O(h^3)\)

Runge-Kutta法

Runge-Kutta法要求解析解具有较好的光滑性

一阶Runge-Kutta法:

  • 利用一阶欧拉法思想,每步计算区间\(【x_i,x_{i+1}】\)内多个点的斜率值,然后将其加权平均作为平均斜率,也不必计算更高阶的泰勒项

二阶Runge-Kutta法:

  • 对改进欧拉法的进一步改进,满足一定条件的计算格式簇统称为二阶龙格-库塔格式,其包含改进欧拉法

四阶经典龙格-库塔格式

应用实例,定步长

\(\left\{\begin{matrix} \frac {d^y}{dx} =2xy, &0<x<1\\y(0)=1 &\end{matrix}\right.\)

显然解析解:\(y=e^{x^2}\)

令斜率\(y'=f(x,y)=2xy\),\(x_0=0,y_0=1,h=0.2\)

\(k_1=f(x_0,y_0)=0\)
\(k_2=f((x_0+h)/2,y_0+hk_1/2)=f(0.1,1)=0.2\)
\(k_3=f((x_0+h)/2,y_0+hk_2/2)=f(0.1,1.02)=0.204\)
\(k_4=f(x_0+h,y_0+hk_3)=f(0.2,1.0408)=0.41632\)

\(x_1=x_0+h=0+0.2=0.2\)
\(y_1=y_0+(k_1+2k_2+2k_3+k_4)*0.2/6=1.040811\)
\(e^{0.2^2}=1.04081077419\)

Adams 亚当姆斯法

将已知节点值加权平均

标签:Kutta,0.2,一阶,Euler,Runge,欧拉
From: https://www.cnblogs.com/invo/p/18594565

相关文章

  • 适用于openEuler系统升级openssh9.8p1和openssl3.3.1
    目前在openEuler2203 LTS上测试通过#!/bin/bash./etc/os-releaseOpensslVersion=3.3.1OpensslVersion1=`opensslversion|awk'{print$2}'`OpensshVersion=9.8p1CURRENT_DATE=$(date+%Y%m%d%H%M%S)echo-e"\e[1;35m=================================......
  • 德承工控机DX-1200 成功适配2024年6月6日发布的国产开源系统OpenEuler 24.03 LTS
    基础软件双子星:欧拉系统(OpenEuler)&鸿蒙系统(OpenHarmony),鸿蒙系统常应用在华为的手机和平板电脑上,大众也较为熟悉,是面向消费电子产品领域的系统;而欧拉系统则是面向服务器、存储、云服务、边缘计算、嵌入式工控机等专业应用领域的系统。OpenEuler欧拉操作系统(简称“欧拉”,或是“......
  • OpenEuler安装MongoDB并配置访问密码
    1.下载MongoDB、安装wgethttps://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-4.4.18.tgztarzxvfmongodb-linux-x86_64-rhel80-4.4.18.tgz移动到/home路径下mvmongodb-linux-x86_64-rhel80-4.4.18/homecd/homemvmongodb-linux-x86_64-rhel80-4.4.1......
  • openEuler、Linux操作系统常见操作-(6)如何登录Linux
    如何登录Linux·Linux登陆方式主要有如下两种: 。本地登陆   。一个典型的Linux系统将运行六个虚拟控制台和一个图形控制台,openEuler目前暂未支持图形化界面;·可以通过Ctrl+Alt+F[1-6]在6个虚拟控制台之间进行切换。远程登录。默认情况下openEuler支持......
  • 虚拟机安装openEuler、Linux系统常见问题--(1) 网络不通
    本文以openEuler22.03LTSSP4系统为例:openEuler系统和Windows桌面切换1、使用Ctrl+G切换2、使用Ctrl+alt切换NAT桥接-网络不通问题1、查看Windows网络配置以NAT桥接网络,VMware使用网卡“VMwareNetworkAdapterVMnet8”与虚拟机通信,可通过以下方法查看VMn......
  • 云原生之运维监控实践-OpenEuler22.03SP3上安装Prometheus与Grafana实现主机状态监测
    背景如果没有监控,那么最好的情况是没有问题发生,最糟糕的情况则是问题发生了但没有被发现。——《Prometheus监控实战》去年写了一篇在Docker环境下部署若依微服务ruoyi-cloud项目的文章,当时使用的是docker-compose在单台机器上部署若依微服务ruoyi-cloud项目;在这个......
  • 828华为云征文|华为云 Flexus 云服务器 X 实例:在openEuler系统下搭建MySQL主从复制
    828华为云征文|华为云Flexus云服务器X实例:在openEuler系统下搭建MySQL主从复制前言一、Flexus云服务器X实例介绍1.1Flexus云服务器X实例简介1.2Flexus云服务器X实例特点1.3Flexus云服务器X实例使用场景二、MySQL数据库介绍2.1MySQL简介2.2MySQL主要特点2.3MySQ......
  • mysql数据库 - openEuler安装
    文章目录一、openEuler系统介绍1.1、openEuler系统的起源1.2、openEuler系统的特点1.3、openEuler系统的版本支持二、环境搭建2.1、修改静态地址2.2、修改主机名称2.3、关闭防火墙或放通端口2.4、关闭selinux三、安装mysql数据库3.1、安装mysql3.2、配置mysql数据库及......
  • openEuler22.03 LTS 离线安装 docker docker-compose
    本文转载自:https://blog.csdn.net/qq_33994039/article/details/140890728其中有几处我这里不能用的地方,标注一下章节5.1:openeuler启动命令:dockerrun-itd--nameopeneuler--privileged=trueopeneuler/openeuler:22.03-lts章节5.2:他那的docker-ce.repo用不了,可以改为......
  • openEuler22.03关闭交换分区swap失败处理
    在架设很多上层应用系统时会遇到很多需要关闭swap的操作,例如安装Kubernetes节点。通常的做法是在/etc/fstab文件中注销swap分区的挂载,但是没有起作用,运行free-h还是能看见挂载的swap,而通过命令sudoswapoff-a&&sudosystemctlrestartkubelet.service是能够关闭并成功启......