龙格-库塔法

概要

  1. 微分方程:含参数、未知函数、未知函数的导数(或者微分)的方程
  2. 数值求解:用若干离散点计算 近似值 来代替准确值
    分类:单步法、多步法;隐式法、显示法
  3. 欧拉法 (欧拉折线法),也是一阶龙格-库塔法:矩阵面积代替曲面梯形面积
  4. 改进欧拉法 (预估——校正法),也是二阶龙格-库塔法:梯形面积代替曲面梯形面积
  5. 龙格-库塔法(重点)yn+1 的值用 f(x,y) 在某些点上函数值的线性组合成来计算,计算 f(x,y) 的次数是龙格库塔的阶。从几何意义看:用多个斜率加平均计算叠加,从而逼近准确值
    一般常用 四阶龙格-库塔法。
    阶数越高、步长越小,则计算精度越高,但是计算量越大
  6. 补充:对于2阶微分方程,则需要拆分成2个一阶微分方程,此时的 f(x,y) 变成了 f(x,y,y') 需要分别用R-K法计算 y 和 y'
  7. 局部截断误差:准确值-近似值
  8. 局部误差的阶(也是龙格-库塔法的阶)
  9. 亚当姆斯法(重点)是线性多步法,利用已求出的多个值进行计算
  10. 拉格朗日插值:构造函数多项式 Ln(x) 来近似代替 y=f(x)
  11. 亚当姆斯法用拉格朗日插值的函数多项式 Ln(x) 近似替代 y′(x)
  12. 亚当姆斯公式有:显式公式、隐式公式
  13. 高阶的亚当姆斯法(一般四阶)计算,得到的计算结果一般更精确,且计算量比龙格-库塔法少,唯一缺点是最前面几个值需要用其他方法求出

一、微分方程

微分方程的 定义凡是含有 参数、未知函数、未知函数的导数(或者微分)的方程。

定义式: F(x,y,y′,y″,...,y(n))

  • 常微分方程:未知函数是一元函数
  • 偏微分方程:未知函数是多元函数

微分方程的 未知函数最高阶导数的阶数(注意和后面龙格-库塔法的阶做区分)。

例01:

\frac{dy}{dx}=2x,y|_{x=1}=2就是一个一阶微分方程。

例02:

\frac{d^{2}S}{d^{2}t}=-0.4,S|_{t=0}=0,(\frac{dS}{dt})|_{t=0}=20就是一个二阶微分方程。


二、常微分方程的数值求解

求解微分方程的困难:

  • 求解微分方程往往计算量很大,甚至无法求解
  • 在实际应用中,可以解出 近似值 即可——数值求解

2.1 数值求解

概念利用给定常微分方程及边界条件,求解函数 y(x) 在若干 离散点 的 近似值(再拟合成折现或曲线)的方法

即:在区间 [a,b] 上有若干离散点: a=x_{0}<x_{1}<...<x_{n}=b ,求出函数 y(x) 在离散点 x_{k} 处的近似值 y_{k} ,作为精确值 y(x_{k}) 的近似。

(这里强调一下: x_{k} 是第k个离散点; y_{k} 是近似值;  y(x_{k}) 是精确值。

2.2 数值求解法分类

1、分类方式一

  • 单步法:计算 y_{i+1} 时,只用到了前面的一个近似值y_{i}
  • 多步法:计算 y_{i+1}时,用到了前面的多个近似值y_{i} 、y_{i-1}y_{i-2}...。
    一般单步法的运算量少,但是精度不高。

2、分类方式二

  • 隐式法:方程两端均含有 y_{i+1} ,(很难将其合并入公式的一端),即需要求解 隐函数方程 才能计算出 y_{i+1}
  • 显示法:方程可以直接计算出 y_{i+1}

三、常用数值求解的具体方法

3.1 欧拉法(欧拉折线法)

令常微分方程:

{y}'(x)=f(x,y),y|_{x=0}=y_{0},(a=x_{0}\leq x_{1}\leq ...\leq x_{n}=b)

起始点 y_{0} 已知 , h 等距步长 = x_{k+1}x_{k} ,步长取的越小,运算精度越高,但运算量增大。

欧拉公式: y_{k+1}=y_{k}+h*f(x_{k},y_{k}) 

1、几何意义一:折线

用 步长 和 前面一个点的斜率 计算后面一个点。

(注意下图的纵坐标是 y )

 2、几何意义二:用 矩形面积 代替 曲边梯形 面积

注意:图中的纵坐标是 f(x,y) 即上一张图的斜率, y 是面积。

例03(欧拉法 数值求解微分方程)


3.2 改进欧拉法(预估——校正法)

改进欧拉公式:

  • 先用 欧拉公式 计算出 \tilde{y_{k+1}} ——预估
  • 再用 \tilde{y_{k+1}} 求出真正的近似值 {y_{k+1}} ——校正

\tilde{y_{k+1}}=y_{k}+h*f(x_{k},y_{k}),y_{k+1}=y_{k}+\frac{h}{2}[f(x_{k},y_{k})+f(x_{k+1},\tilde{y_{k+1}})]

为什么需要多加一步校验:因为改进欧拉法需要用到 {y_{k+1}} ,是隐式法,需要解隐函数,计算量大。

几何意义:用 梯形面积 代替 曲 边梯形 面积

改进欧拉法 的运算精度一般比 欧拉法 高。


3.3 龙格——库塔法(Runger—Kutta法,简称R-K法)(重点)

将函数 y(x) 在 xn 处泰勒展开:

y(x)=y(x_{n})+{y(x_{n})}'(x-x_{n})+\frac{​{y(x_{n})}''}{2!}(x-x_{n})^{2}+\frac{y^{(3)}(x_{n})}{(x-x_{n})^{3}}+...

n阶龙格-库塔法:取泰勒展开的前n阶导数项

将 x={x_{n+1}} 带入 y(x) 计算出近似值 y_{n+1}

1、欧拉法 和 改进欧拉法 是 龙格-库塔法 的一种:

  • 一阶龙格-库塔法:欧拉法
    只取前2项,即线性部分 y(x)\approx y(x_{n})+{y(x_{n})}'(x-x_{n})
  • 二阶龙格-库塔法:改进欧拉法
    取前3项
具体证明过程如下:(数学不好的人可以忽略)------------------------------------------------

--------------------------------------------------------------------------------------------

2、 用龙格-库塔法的一般形式 表示欧拉法、改进欧拉法

(1)改写欧拉法: y_{n+1}=y_{n}+h*f(x_{n},y_{n})
改写成 y_{n+1}=y_{n}+hK_{1},K_{1}=f(x_{n},y_{n})

(2)改写改进欧拉法:

y_{n+1}=y_{n}+hf(x_{n},y_{n})+\frac{h}{2}f(x_{n+1},y_{n+1})
改写成y_{n+1}=y_{n}+\frac{h}{2}(K_{1}+K_{2}),K_{1}=f(x_{n},y_{n}),K_{2}=f(x_{n}+h,y_{n}+hK_{1})

龙格-库塔法计算顺序:K_{1},K_{2},...,K_{n} 最后计算 y_{n+1}

3、 误差分析——局部截断误差 和 阶

假设第n步的计算是准确的,即 y_{n+1}=y_{n}

局部截断误差: o(h^{p+1})=y(x_{n+1})-y_{n+1},即:精确值-近似值 。

阶:上边公式中的 p

阶越大,局部误差就越小,近似值就越接近精确值,但同时运算量更大。

欧拉法和改进欧拉法的 局部截断误差 和 

(1)欧拉法:没有泰勒展开到二阶导数的,所以精确值-近似值就会出现二阶导数的部分,二阶导数的部分为 \frac{​{y(x_{n})}''}{2!}(x-x_{n})^{2},有 (x-x_{n})^{2} ,即 h^{2}

  • 局部截断误差: o(h^{2})
  • 阶:1阶

(2)改进欧拉法:

  • 局部截断误差: o(h^{3})
  • 阶:2阶

3.3.4 龙格-库塔法的一般形式

p阶龙格-库塔法: y_{n+1} 的值用 f(x,y) 在某些点上函数值的线性组合成来计算,计算f(x,y)的次数是龙格-库塔法的阶,也是局部截断误差的阶。

从几何意义上看:龙格-库塔法可以看成用 p 个斜率 K_{r}=f(x_{r},y_{r})的一种 加权平均逼近 。如:欧拉法只用了一个斜率 f(x_{n},y_{n}) ,即K_{1} ;而改进欧拉法是 \frac{h}{2}[f(x_{k},y_{k})+f(x_{k+1},\tilde{y_{k+1}})] ,即 \frac{h}{2}K_{1}+\frac{h}{2}K_{2}

四阶龙格-库塔法(常用):

y_{n+1}=y_{n}+\frac{h}{6}(K_{1}+2K_{2}+2K_{3}+K_{4}),K_{1}=f(x_{n},y_{n}),K_{2}=f(x_{n}+\frac{h}{2},y_{n}+\frac{h}{2}K_{1}),K_{3}=f(x_{n}+\frac{h}{2},y_{n}+\frac{h}{2}K_{1}),K_{4}=f(x_{n}+h,y_{n}+hK_{3})

(再次强掉: K_{1},K_{2},K_{3},K_{4} 前面的系数是 加权平均 得到,计算顺序是从K_{1}  到 K_{4} ,根据这个规律特征,可以推出后续更高阶的龙格-库塔法)。

问:为什么需要推出,不能直接写出其 p阶的一般表达式吗?
回答:和”斐波那契数列“是一个道理,因为一般表达式很复杂,还不如推的简单。其一般形式如下:

例04(4阶龙格-库塔法 数值求解微分方程)

在用4阶龙格-库塔法时,可以适当增大步长h,减少计算容量,一般精度也不会损失很少。

实际选择方法时,可以根据具体情况选择适当的 阶数 和 步长h。

--------------------------------------------------------------------------------------------

补充:二阶微分方程的 4阶R-K法

对于2阶微分方程,则需要拆分成2个一阶微分方程,此时的f(x,y) 变成了 f(x,y,{y}')需要分别用R-K法计算 y{y}'

已知初值 y(0)和 {y}'(0) ,以及 y{}''关于 x,y,y'的函数,即 {y}''=f(x,y,{y}')

例题:用4阶R-K法求下面的二阶微分方程的数值解,步长 h 取0.1。

2\frac{d^{2}y}{dt}+(y^{2}-1)\frac{dy}{dt}+y=0,y(0)=0.25,{y}'(0)=0

{y}''=-\frac{y+{y}'(y^{2}-1)}{2},y(0)=0.25,{y}'(0)=0

解:将二阶微分方程拆成2个一阶微分方程,R-K法计算 y{y}'

其中: K_{mn}表示第 n次迭代,m 次导数作为 f(x,y)

其中:f_{1}={y}',f_{2}={y}''=-\frac{y+{y}'(y^{2}-1)}{2}

然后根据上边的步骤,一步步计算出 y_{n+1}{y}'_{n+1}

——————————————————————————

龙格-库塔法的缺点:其是单步法,计算 y_{n+1} 时只用到了 y_{n} ,因此需要迭代多次才能得到较精确的结果。


四、亚当姆斯法(Adams法)

4.1 线性多步法

利用已求出的y_{n} 、y_{n-1}...y_{n-q}(通过单步法,如:龙格-库塔法)共 q+1个点处的函数值构造 y_{n+1} 的线性计算式。

4.2 拉格朗日插值

在实际项目中,函数 y=f(x) 可能比较复杂,因此用一个简单的函数L(x)近似代替f(x)

我们知道任何一个解析函数(即函数在给定复平面内处处可微)都可以用一个唯一的多项式表示:

L_{n}(x)=a_{0}+a_{1}x+a_{2}x^{2}+...+a_{n}x^{n}

我们就是用这个函数多项式 L_{n}(x)近似替代y=f(x) ,即对于每一个 x_{i} ,有L_{n}(x_{i})=y_{i},(i=0,1,2,...,n)

可以发现, n 越大,则 L_{n}(x)的表达式越复杂,但是更能逼近原函数

怎么求 L_{n}(x)

L_{n}(x)的具体表达式是通过已知点(前面求过的点)的坐标表示的。

如:一次插值( n=1 ),已知(x_{k},y_{k})(x_{k+1},y_{k+1})

L_{1}(x)=\frac{x-x_{k+1}}{x_{k}-x_{k+1}}y_{k}+\frac{x-x_{k}}{x_{k+1}-x_{k}}y_{k+1} 是一条直线

二次插值( n=2 ),已知 (x_{k-1},y_{k-1})(x_{k},y_{k})(x_{k+1},y_{k+1})

L_{2}(x)=\frac{(x-x_{k})(x-x_{k+1})}{(x_{k-1}-x_{k})(x_{k-1}-x_{k+1})}y_{k-1}+\frac{(x-x_{k-1})(x-x_{k+1})}{(x_{k}-x_{k-1})(x_{k}-x_{k+1})}y_{k}+\frac{(x-x_{k-1})(x-x_{k})}{(x_{k+1}-x_{k-1})(x_{k+1}-x_{k})}y_{k+1}一条抛物线

拉格朗日插值多项式一般形式

4.3 亚当姆斯法:线性多步法之一(插值方法)

还是认为 f(x,y)={y}'(x)

我们用拉格朗日插值多项式L_{n}(x) 表示f(x,y)

注意:这里的 f(x,y) 是原函数的导数。

则:根据面积 y(x_{n+1})=y(x_{n})+\int_{x_{n}}^{x_{n+1}}f(x,y)dx

L_{n}(x)替代上边公式的 f(x,y)

4.4 亚当姆斯法有2种公式:显式Adams公式、隐式Adams公式

如:要求 y_{n+1}

  • 显式公式:拉格朗日多项式不使用y_{n+1},根据y_{n} 、y_{n-1}... 求。一般用于求未求过的 y_{n+1}
  • 隐式公式:拉格朗日多项式使用 y_{n+1},根据 y_{n+1}y_{n}...求。一般用于预测-校验之前已经求过的 y_{n+1}

:多项式 都取一阶插值,即公式是二阶

1.二阶隐式Adams公式——梯形公式

  • 一次插值L_{1}(x)=\frac{x-x_{n+1}}{x_{n}-x_{n+1}}{y}'(x_{n})+\frac{x-x_{n}}{x_{n+1}-x_{n}}{y}'(x_{n+1})
    (还是提醒一下:f(x,y)={y}'(x)
  • 则: \int_{x_{n}}^{x_{n+1}}L_{1}(x)dx=\frac{h}{2}[{y}'(x_{n})+{y}'(x_{n+1})]
  • y_{n+1}=y_{n}+\frac{h}{2}[f(x_{n},y_{n})+f(x_{n+1},y_{n+1})]
  • 可以发现,二阶隐式Adams公式,也是梯形公式

图形解释:梯形面积 (阴影) 近似替代梯形曲面

注意下图的纵坐标是原函数的斜率 f(x,y) ,即图中的面积才是 y(x)

用阴影面积近似替代梯形曲面

2.二阶显式Adams公式

  • 一次插值L_{1}(x)=\frac{x-x_{n-1}}{x_{n}-x_{n-1}}{y}'(x_{n})+\frac{x-x_{n}}{x_{n-1}-x_{n}}{y}'(x_{n-1})
  • 则:\int_{x_{n}}^{x_{n+1}}L_{1}(x)dx=\frac{h}{2}[3{y}'(x_{n})-{y}'(x_{n-1})]
  • y_{n+1}=y_{n}+\frac{h}{2}[3f(x_{n},y_{n})-f(x_{n-1},y_{n-1})]

图形解释:多项式连接到了后面的点,用图中 阴影面积 近似替代 梯形曲面

注意下图的纵坐标是原函数的斜率 f(x,y) ,即图中的面积才是y(x)

用阴影面积近似替代梯形曲面

4.5 更高阶的亚当姆斯法

因为高阶的多项式L_{n}(x) 算起来很繁琐,就算算出来了还需要代入积分计算。因此下面直接给出其对应阶数的最终表达式

(再次提醒:f(x,y)={y}'(x) )

三阶显式Adams公式:

三阶隐式Adams公式:

四阶显式Adams公式:

四阶隐式Adams公式:

图形解释:以三阶显示Adams公式为例:

下图为三阶显示Adams公式,其用抛物线近似表示f(x,y)​曲线,用图中 阴影面积 近似替代 梯形曲面

注意下图的纵坐标是原函数的斜率f(x,y),即图中的面积才是y(x)

用阴影面积近似替代梯形曲面

4.6 用亚当姆斯法求解

一般先用单步法(如:龙格-库塔法)求出前面几项y 的近似值,再用计算出用到的导数值 f(x,y),代入Adams公式,(用或者不用预测-校正),即可求出近似值 y_{n+1}

预测-校正Adams公式——显式和隐式公式配合

先用显式公式求出 y\tilde{}_{n+1} ,然后用隐式公式再求一次y_{n+1}

以4阶Adams公式为例:

Adams法数值求解微分方程例题:

可以发现:在计算量想当时,亚当姆斯法 的计算结果更加接近 准确值(解析解),而且其计算量也比龙格-库塔法少。

唯一缺点就是最前面几个值需要用其他方法求出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/436371.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】图解二叉搜索树的新增、搜索、删除

一、概念 二叉搜索树&#xff08;Binary Search Tree&#xff0c;简称BST&#xff09;也称为二叉查找树或二叉排序树&#xff0c;是一种具有特殊性质的二叉树数据结构。 定义和性质&#xff1a; 二叉搜索树中的每个节点包含一个键值&#xff0c;习惯上我们说左子树上所有节点…

乔琼:高性能会议传声器的产品优化设计| 演讲嘉宾公布

一、智能家居与会议系统 智能家居与会议系统分论坛将于3月28日同期举办&#xff01; 智能会议系统它通过先进的技术手段&#xff0c;提高了会议效率&#xff0c;降低了沟通成本&#xff0c;提升了参会者的会议体验。对于现代企业、政府机构和学术界是不可或缺的。在这里&#x…

部署运维 防火墙,进程 常用命令

防火墙: 1. 查看是否安装了firewalld sudo systemctl status firewalld 查看防火墙状态或者sudo systemctl is-active firewalld 查看防火墙是否是开启状态 2. 开放6379port sudo firewall-cmd --add-port6379/tcp --permanent 刷新防火墙 sudo firewall-cmd --reload 3…

MinIO Client(mc)基本使用

一、Linux安装 1、下载最近的mc 命令&#xff0c;并保存到当前用户的bin目录下&#xff0c;这样可以直接执行&#xff0c;不用修改path curl -sL https://dl.minio.org.cn/client/mc/release/linux-amd64/mc -o /usr/bin/mc chmod x /usr/bin/mc二、配置使用 1、查看mc已经…

【洛谷 P8748】[蓝桥杯 2021 省 B] 时间显示 题解(数学+模运算+输入输出)

[蓝桥杯 2021 省 B] 时间显示 题目描述 小蓝要和朋友合作开发一个时间显示的网站。在服务器上&#xff0c;朋友已经获取了当前的时间&#xff0c;用一个整数表示&#xff0c;值为从 1970 年 1 月 1 日 00:00:00 到当前时刻经过的毫秒数。 现在&#xff0c;小蓝要在客户端显示…

MATLAB KL变换

1. 原理 KL变换步骤&#xff1a; 1.求样本X的协方差矩阵R 2.求 R的特征值λ。选取前d个较大的特征值。 3.计算d个特征值对应的特征向量&#xff0c;归一化后构成变换矩阵U。 4.对{X}中每一个X进行K-L变换&#xff0c;得到变换后向量YU’ * X&#xff0c;d维向量Y就是…

阿里云Linux系统MySQL8忘记密码修改密码

相关版本 操作系统&#xff1a;Alibaba Cloud Linux 3.2104 LTS 64位MySQL&#xff1a;mysql Ver 8.0.34 for Linux on x86_64 (Source distribution) MySQL版本可通过下方命令查询 mysql --version一、修改my.cnf文件 文件位置&#xff1a;etc/my.cnf进入远程连接后可以打…

解决vue项目本地开发完成后部署到服务器后报404的问题

一、如何部署 前后端分离开发模式下&#xff0c;前后端是独立布署的&#xff0c;前端只需要将最后的构建物上传至目标服务器的web容器指定的静态目录下即可 我们知道vue项目在构建后&#xff0c;是生成一系列的静态文件 常规布署我们只需要将这个目录上传至目标服务器即可 /…

163邮箱SMTP设置需要怎么配置?如何开启?

163邮箱SMTP设置教程&#xff1f;163邮箱开通SMTP发信功能方法&#xff1f; 当我们需要使用第三方工具或软件来发送邮件时&#xff0c;SMTP设置就显得尤为重要。特别是对于使用163邮箱的用户来说&#xff0c;掌握163邮箱SMTP设置的方法是非常必要的。下面&#xff0c;AokSend就…

javaweb学习(day06-servlet)

一、基本介绍 1 官方文档 地址: https://tomcat.apache.org/tomcat-8.0-doc/servletapi/index.htmlServlet 和 Tomcat 的关系: 一句话, Tomcat 支持 Servlet【假如单独使用Servlet就失去了意义】 2 为什么会出现 Servlet 提出需求: 请用你现有的html css javascript&#…

JavaSE(上)-Day3

JavaSE&#xff08;上&#xff09;-Day3 IDEA&#xff08;目前业内最好用的开发软件&#xff09;初始使用IEDA的基础设置 本篇主要介绍内容如下&#xff1a; IDEA的基本使用IDEA的基础设置 IDEA&#xff08;目前业内最好用的开发软件&#xff09; IDEA是用于Java语言开发的集…

springboot之mybaitsPlus

mybaitsPlus是国内开发的&#xff0c;并不是springboot的项目&#xff0c;只是学习的时候直接就是适配的springboot。 MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window)的增强工具&#xff0c;在 MyBatis 的基础上只做增强不…

微服务获取登录用户Id与单体服务下获取用户Id对比(黑马头条Day03)

前置声明 当前前后端分离开发项目中&#xff0c;后端某个请求向具体某个数据库中的多个表插入数据时&#xff0c;经常需要使用到当前登录用户的Id&#xff08;唯一标识&#xff09;。在当前用户线程下以实现变量共享&#xff0c;同时为了避免不同用户线程之间操作变量的影响&am…

设计模式之模版方法实践

模版方法实践案例 实践之前还是先了解一下模版方法的定义 定义 模板方法模式是一种行为设计模式&#xff0c;它定义了一个骨架&#xff0c;并允许子类在不改变结构的情况下重写的特定步骤。模板方法模式通过在父类中定义一个模板方法&#xff0c;其中包含了主要步骤&#xf…

【Python】成功解决TypeError: ‘float‘ object is not iterable

【Python】成功解决TypeError: ‘float’ object is not iterable &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望得…

Mysql按照月份分组统计数据,当月无数据则填充0

目录 起因实现结论 起因 最近有个需求需要在sql中实现获取近半年的统计数据&#xff0c;本来以为挺简单的&#xff0c;不过这个项目数据基本没有&#xff0c;在此情况下还要实现获取近半年的数据就没办法简单group by了 实现 #如果每个月都有数据的话是比较简单的 SELECT DA…

【XR806开发板试用】串口驱动JQ8900播放音乐

一、硬件连接 1.JQ8900引脚定义 通过阅读JQ8900的数据手册&#xff0c;可以了解到驱动JQ8900有许多种方式&#xff0c;IO驱动&#xff0c;一线串口驱动&#xff08;VPP&#xff09;&#xff0c;两线串口驱动&#xff08;RX&#xff0c;TX&#xff09;&#xff0c;这里我使用两…

C#多线程(4)——任务并行库TPL

文章目录 1 什么是TPL2 创建与启动任务3 等待任务4 任务中的异常处理5 取消任务 1 什么是TPL T P L \textcolor{red}{TPL} TPL&#xff08;Task Parallel Library&#xff09;任务并行库&#xff0c;是从.NetFramwork4.0后引入的基于异步操作的一组API。TPL的底层是基于多线程实…

C语言第三十六弹---文件操作(中)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 文件操作 1、文件的顺序读写 1.1、顺序读写函数介绍 1.1.1、fgetc 与 fputc 1.1.2、fgets 与 fputs 1.1.3、fscanf 与 fprintf 1.1.4、fread 与 fwrite 1.…

基于状态机的按键消抖实现

摸鱼记录 Day_14 !(^O^)y review 在day_13中以按键状态判断为例学习了状态分析基于状态机的按键消抖原理-CSDN博客 分析得到了下图&#xff1a; 今日任务&#xff1a;完成此过程 !(^O^)y 小梅哥对应视频&#xff1a; 15B 基于状态机的按键消抖Verilog实现_哔哩哔哩…