微分方程的数值解法 您所在的位置:网站首页 初值问题数值解法的基本思想 微分方程的数值解法

微分方程的数值解法

2024-07-11 18:27| 来源: 网络整理| 查看: 265

微分方程的数值解法——常微分方程——差分法

差分法思想: 差分就是讲解析解中的差分方程中的微分项用差分来代替,当取得变量步长足够小时可以无限逼近。

两大步骤: 1.建立差分格式 1.对解得存在区域划分 2.采用不同的算法可以得到不同的精度,即截断误差 3.数值解对解析解的精度 4.数值解收敛于真解的速度 5.处分算法的稳定性 2.差分格式求解 将微分方程转化为代数方程求解,一般常用地推算法 差分方法的原理: 由下士泰勒展开可以看到: 这里写图片描述 当步长h足够小时,后面的高阶项都可以省略,因此有: 这里写图片描述 上式中主要是是如何表达微分项,根据差分过程,微分项的表达如下: 具体实例: 这里写图片描述 MATLAB中实现:

%微分方程数值解法----欧拉法测试 %------------------------------------- clc; clear all; close all; %------------------------------------- %du/dt + u^2 = 0 %u(0)=1 %------------------------------------- N = 100; t_s = 0; t_e = 1; dt = (t_e-t_s)/N; t = t_s:dt:t_e-dt; %------------------------------------- %解析解 u_j=1./(1+t); u_s(1) = 1; for i=2:N u_s(i)=-u_s(i-1)^2*dt+u_s(i-1); end subplot(2,1,1); plot(t,u_j,'-o',t,u_s,'-*'); xlabel('t'); ylabel('y'); legend('解析解','数值解'); subplot(2,1,2); plot(t,u_j-u_s,'-r'); xlabel('t'); ylabel('err'); legend('误差');

运行结果: 这里写图片描述 可以看出解析解和数值解之间很接近,误差不大; 当增加步长时如下图所示: 这里写图片描述 可见步长对精度的重要性;



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有