龙格库塔法和欧拉法求解微分方程的比较

本文探讨了计算机如何通过数值积分方法理解和模拟连续系统的动态特性,主要比较了欧拉法和龙格库塔法在求解微分方程时的差异。欧拉法简单且计算量小,但精度较低;龙格库塔法则利用更高阶的导数,提供更精确的结果。通过MATLAB代码和仿真,展示了两者在不同精度下的输出效果。
摘要由CSDN通过智能技术生成

计算机如何理解连续系统的动态特性?

一般连续系统的动态特性可以由一个微分方程,或者一组微分方程描述。因此,如果要对连续系统进行仿真,就需要对微分方程进行求解。求解微分方程,一般使用数值积分方法,那么计算机中积分怎么求呢?

设一个微分方程如下:
在这里插入图片描述
数值积分,就是求出定义域区间内若干个离散点处的近似解,然后相加,这就引出了欧拉法和龙哥库塔法。

欧拉法求解微分方程

欧拉法的思想,就是把积分曲线用折线加以近似。

如果能求出1点的导数,乘以一定的步长,再加上前一个点的值,就得到了后一个点的值。
如此往复迭代,就求出了每一个点的值。
首先进行微分
该算法的优点:方法简单,计算量小。

该算法的缺点:精度低,适当减小步长可以改善这个问题。

龙格库塔法求解微分方程

和欧拉法不同,龙格库塔法使用泰勒级数进行展开
在这里插入图片描述
如果能将整个泰勒级数公式代入,精度无疑是最高的,但是为了计算方便,龙格和库塔两人提出了间接使用泰勒级数公式的方法,即用泰勒公式确定系数,然后乘上各阶的函数值。

实际工业使用上,四阶龙格库塔法的计算精度已经能够满足仿真要求,其递推公式如下:
在这里插入图片描述
简单地来说,两种方法的区别就是迭代时用的公式不同,欧拉法用的是一阶导数,而龙格库塔法用了4阶导数,计算更加精确。

MATLAB代码编写和仿真效果

求解如图所示SISO系统的输出
在这里插入图片描述
首先把传递函数转换成状态空间方程,然后求解。

% 龙格库塔法和欧拉法的比较

clear all;
close all;
clc;

% 欧拉法的计算步长
h = 0.3;
% 仿真步数
L = 15/h;

% SISO对象的零极点型
z = [-
  • 8
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值