MatLab使用显/隐式Adams求解ODE问题

2023-10-29 05:30

本文主要是介绍MatLab使用显/隐式Adams求解ODE问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

代码:

function example_Adam
T = 1;
h = 0.1;
t = 0:h:T;
N = length(t)-1;
solu = exp(-5.0*t);
u0 = 1;
f = @f1;
u_euler = euler(f,u0,t,h,N);
u_out_Adams = out_Adams(f,u0,t,h,N);
u_in_Adams = in_Adams(f,u0,t,h,N);figure (1)
plot(t,u_out_Adams,'*r',t,solu,t,u_in_Adams,'o');
legend('显示Adams外插','精确解','隐式Adams内插');
end
function u = euler(f,u0,t,h,N)
u    = zeros(N+1,1);
u(1) = u0;
for n = 1:Nfn     = f(t(n),u(n));u(n+1) = u(n)+h*fn;
end end
function u = out_Adams(f, u0, t, h ,N)
u=zeros(N+1,1);
u(1)=u0;
u = euler(f,u0,t,h,4);
for n=4:Nf1 = f(t(n),u(n));f2 = f(t(n-1),u(n-1));f3 = f(t(n-2),u(n-2));f4 = f(t(n-3),u(n-3));u(n+1) = u(n)+(h/24)*(55*f1-59*f2+37*f3-9*f4);
end
end
function u = in_Adams(f, u0, t, h ,N)
u    = zeros(N+1,1);
u(1) = u0;
u = euler(f,u0,t,h,3);
eps_in = 1e-6;K_in = 6;
for n = 3:Ns1 = u(n);du = 1;k  = 1; f2 = f(t(n),u(n));f3 = f(t(n-1),u(n-1));f4 = f(t(n-2),u(n-2));while abs(du)>eps_in && k<K_inf1 = f(t(n+1),s1);s2 = u(n)+(h/24)*(9*f1+19*f2-5*f3+f4);du = s2-s1;s1 = s2;k = k+1; endu(n+1) = s2;
end end
function f =f1(t,u)
f = -5*u;end

结果如下:(采取三种步长)

在h变小的过程中,显式Adams算法和隐式Adams算法的精度逐渐升高,接近于精确解。由上图可知隐式Adams法比显式Adams法的更精确,两种算法精度之间的差距随着步长h减小而逐渐减少,注意到在h=0.01时二者结果近乎重合。

这篇关于MatLab使用显/隐式Adams求解ODE问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/298539

相关文章

python中的flask_sqlalchemy的使用及示例详解

《python中的flask_sqlalchemy的使用及示例详解》文章主要介绍了在使用SQLAlchemy创建模型实例时,通过元类动态创建实例的方式,并说明了如何在实例化时执行__init__方法,... 目录@orm.reconstructorSQLAlchemy的回滚关联其他模型数据库基本操作将数据添

Spring配置扩展之JavaConfig的使用小结

《Spring配置扩展之JavaConfig的使用小结》JavaConfig是Spring框架中基于纯Java代码的配置方式,用于替代传统的XML配置,通过注解(如@Bean)定义Spring容器的组... 目录JavaConfig 的概念什么是JavaConfig?为什么使用 JavaConfig?Jav

Springboot3统一返回类设计全过程(从问题到实现)

《Springboot3统一返回类设计全过程(从问题到实现)》文章介绍了如何在SpringBoot3中设计一个统一返回类,以实现前后端接口返回格式的一致性,该类包含状态码、描述信息、业务数据和时间戳,... 目录Spring Boot 3 统一返回类设计:从问题到实现一、核心需求:统一返回类要解决什么问题?

Java使用Spire.Doc for Java实现Word自动化插入图片

《Java使用Spire.DocforJava实现Word自动化插入图片》在日常工作中,Word文档是不可或缺的工具,而图片作为信息传达的重要载体,其在文档中的插入与布局显得尤为关键,下面我们就来... 目录1. Spire.Doc for Java库介绍与安装2. 使用特定的环绕方式插入图片3. 在指定位

Springboot3 ResponseEntity 完全使用案例

《Springboot3ResponseEntity完全使用案例》ResponseEntity是SpringBoot中控制HTTP响应的核心工具——它能让你精准定义响应状态码、响应头、响应体,相比... 目录Spring Boot 3 ResponseEntity 完全使用教程前置准备1. 项目基础依赖(M

Java使用Spire.Barcode for Java实现条形码生成与识别

《Java使用Spire.BarcodeforJava实现条形码生成与识别》在现代商业和技术领域,条形码无处不在,本教程将引导您深入了解如何在您的Java项目中利用Spire.Barcodefor... 目录1. Spire.Barcode for Java 简介与环境配置2. 使用 Spire.Barco

maven异常Invalid bound statement(not found)的问题解决

《maven异常Invalidboundstatement(notfound)的问题解决》本文详细介绍了Maven项目中常见的Invalidboundstatement异常及其解决方案,文中通过... 目录Maven异常:Invalid bound statement (not found) 详解问题描述可

Android使用java实现网络连通性检查详解

《Android使用java实现网络连通性检查详解》这篇文章主要为大家详细介绍了Android使用java实现网络连通性检查的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录NetCheck.Java(可直接拷贝)使用示例(Activity/Fragment 内)权限要求

idea粘贴空格时显示NBSP的问题及解决方案

《idea粘贴空格时显示NBSP的问题及解决方案》在IDEA中粘贴代码时出现大量空格占位符NBSP,可以通过取消勾选AdvancedSettings中的相应选项来解决... 目录1、背景介绍2、解决办法3、处理完成总结1、背景介绍python在idehttp://www.chinasem.cna粘贴代码,出

C# 预处理指令(# 指令)的具体使用

《C#预处理指令(#指令)的具体使用》本文主要介绍了C#预处理指令(#指令)的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录1、预处理指令的本质2、条件编译指令2.1 #define 和 #undef2.2 #if, #el