matlab编写微分方程椭圆型方程(一维形式)

文章目录

      • 理论
      • 编程实例
      • 原代码

理论

椭圆型方程一维格式即常微分方程,边值问题,方程如下所示:

在这里插入图片描述
在这里插入图片描述
截断误差:
在这里插入图片描述

h → ∞ h\rightarrow\infty h时,截断误差趋于零,离散方程组成立,
在这里插入图片描述
写成矩阵:
在这里插入图片描述
用离散化方程组求解:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

编程实例

在这里插入图片描述
对比:
在这里插入图片描述

边值条件:

% boundary conditions
u0 = 1;
uN = exp(1);

区域的划分:

% partion of the domain
N = 20;
h = 1/N;
x_all = (0:h:1)';
x = x_all(2:end-1);

代入d:
在这里插入图片描述

% the right hand side
d = fx(x);
d(1) = d(1) + u0/h^2;
d(N-1) = d(N-1) + uN/h^2;

其中:

function y = fx (x)
y = (x-1).*exp(x);
end

thomas算法:

% thomas algorithm
u = thomas (a,b,c,d);

在这里插入图片描述
在这里插入图片描述

function u = thomas(a, b, c, d)
M = length(a);
u = zeros(M,1);
e = zeros(M,1);
f = zeros(M,1);
e(1) = c(1)/b(1);
f(1) = d(1)/b(1);% forward
for i = 2:Me(i) = c(i)/( b(i)-a(i)*e(i-1));f(i) = (d(i)+a(i)*f(i-1))/(b(i)-a(i)*e(i-1));
end

在这里插入图片描述

%backward
u(M) = f(M);
for i = M-1:-1:1u(i) = f(i) + e(i)*u(i+1);
end
end

计算真解:

% the exact solution
u_e = u_exact(x_all);

原代码

% boundary conditions
u0 = 1;
uN = exp(1);% partion of the domain
N = 20;
h = 1/N;
x_all = (0:h:1)';
x = x_all(2:end-1);% the right hand side
d = fx(x);
d(1) = d(1) + u0/h^2;
d(N-1) = d(N-1) + uN/h^2;% diagonals of the coefficient matrix A
q = qx(x);
a = ones (N-1,1)/h^2;
b = 2*ones (N-1,1)/h^2 + q;
c = a;% thomas algorithm
u = thomas (a,b,c,d);% A = spdiags([-a b -c],[-1 0 1],N-1,N-1);
% u = A\d;% the exact solution
u_e = u_exact(x_all);figure(1)
plot(x_all,[u0;u;uN],'g*',x_all,u_e,'r');
% end
%——--subroutines-
function y = qx(x)
y = x;
endfunction y = fx (x)
y = (x-1).*exp(x);
endfunction y = u_exact(x)
y = exp(x);
endfunction u = thomas(a, b, c, d)
M = length(a);
u = zeros(M,1);
e = zeros(M,1);
f = zeros(M,1);
e(1) = c(1)/b(1);
f(1) = d(1)/b(1);% forward
for i = 2:Me(i) = c(i)/( b(i)-a(i)*e(i-1));f(i) = (d(i)+a(i)*f(i-1))/(b(i)-a(i)*e(i-1));
end%backward
u(M) = f(M);
for i = M-1:-1:1u(i) = f(i) + e(i)*u(i+1);
end
end

输出结果:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙小案例-短视频

参加泡泡玛特写了个小demo,然后给它稍微完善了一下 基于API11 演示效果 hfvideo演示视频 主要功能集中在4个tab页内 1.首页-视频播放页 2.朋友-关注、朋友、粉丝聚合 3.消息-聊天列表 4.我的-当前用户信息展示 主页页面 1.用户主页 2.聊天页面 3.朋友页面 4.视频播放页 因为不…

Clickhouse集群_ 双副本配置下Replicatedmergetree引擎的表在一个节点被删除后会自动恢复吗

2分片双副本的配置:1,2,3,4节点,分片1落在1,2节点, 1,2节点互为对方的副本,分片2落在3,4节点, 3,4节点互为对方的副本 replicatedmergetree引擎的表在一个节点被删除后,虽然另一个节点还有它的副本,但是这个副本不过同…

闲置资源共享平台

摘 要 随着共享经济的高速发展以及人们对物品的需求方面也越来也丰富,而且各大高校的大学生们的购买力也越来越强,随之而来的问题就是身边的闲置资源也越来越多,但是也有许多的大学生对物品的要求方面不是很高,也愿意买下经济实惠…

【计算机网络体系结构】计算机网络体系结构实验-DNS模拟器实验

一、DNS模拟器实验 拓扑图 1. 服务器ip 2. 服务器填写记录 3. 客户端ip以及连接到DNS服务器 4. ping测试

hadoop Yarn资源调度器

概述 Yarn是一个资源调度平台,负责为运算程序提供服务器资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序相当于操作系统之上的应用程序 Yarn基本架构 YARN 主要由ResourceManager、NodeManager、ApplicationMaster、Container …

Gone框架介绍29 - 在Gone中使用gRPC通信

gone是可以高效开发Web服务的Golang依赖注入框架 github地址:https://github.com/gone-io/gone 文档地址:https://goner.fun/zh/ 文章目录 使用gRPC通信编写proto文件,生成golang代码编写服务端代码注册客户端编写配置文件测试总结 使用gRPC通…

C++基础编程100题-010 OpenJudge-1.3-08 温度表达转化

更多资源请关注纽扣编程微信公众号 http://noi.openjudge.cn/ch0103/08/ 描述 利用公式 C 5 * (F-32) / 9 (其中C表示摄氏温度,F表示华氏温度) 进行计算转化。 输入 输入一行,包含一个实数f,表示华氏温度。&…

Linux常见的压缩文件种类与对应的压缩解压方法

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

超详细的selenium使用指南

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 概述 selenium是网页应用中最流行的自动化测试工具,可以用来做自动化测试或者浏览器…

06 PXE高效批量网络装机

目录 6.1 部署PXE远程安装服务 6.1.1 搭建PXE远程安装服务器 1. 准备CentOS 7安装源 2. 安装并启用TFTP服务 3. 准备Linux内核、初始化镜像文件 4. 准备PXE引导程序 5. 安装并启用DHCP服务 6. 配置启动菜单文件 6.1.2 验证PXE网络安装 6.2 实现Kickstart无人值守安装 6.2.1 准…

STM32学习记录(八)————定时器输出PWM及舵机的控制

文章目录 前言一、PWM1.工作原理2.内部运作机制3. PWM工作模式4.PWM结构体及库函数 二、PWM控制舵机 前言 一个学习STM32的小白~ 有错误评论区或私信指出提示:以下是本篇文章正文内容,下面案例可供参考 一、PWM 1.工作原理 以向上计数为例&#xff0…

spark 整合 yarn

spark 整合 yarn 1、在master节点上停止spark集群 cd /usr/local/soft/spark-2.4.5/sbin ./stop-all.sh 2、spark整合yarn只需要在一个节点整合, 可以删除node1 和node2中所有的spark文件 分别在node1、node2 的/usr/local/soft目录运行 rm -rf spark-2.4.…

力扣469A

文章目录 1. 题目链接2. 题目代码3. 题目总结4. 代码分析 1. 题目链接 I Wanna Be the Guy 2. 题目代码 #include<iostream> #include<set> using namespace std; int main(){int highestLevelOfGame;cin >> highestLevelOfGame;set<int> levelCanPas…

Linux下Cmake安装或版本更新

下载Cmake源码 https://cmake.org/download/ 找到对应的版本和类型 放进linux环境解压 编译 安装 tar -vxvf cmake-3.13.0.tar.gz cd cmake-3.13.0 ./bootstrap make make install设置环境变量 vi ~/.bashrc在文件尾加入 export PATH/your_path/cmake-3.13.0/bin:$PAT…

Java_Optional 类

文章目录 一、Optional1.1 常用方法 一、Optional 到目前为止&#xff0c;臭名昭著的空指针异常是导致 Java 应用程序失败的最常见原因。以前&#xff0c;为了解决空指针异常&#xff0c;Google 在著名的 Guava 项目引入了 Optional类&#xff0c;通过检查空值的方式避免空指针…

多模态大模型解读

目录 1. CLIP 2. ALBEF 3. BLIP 4. BLIP2 参考文献 &#xff08;2023年&#xff09;视觉语言的多模态大模型的目前主流方法是&#xff1a;借助预训练好的LLM和图像编码器&#xff0c;用一个图文特征对齐模块来连接&#xff0c;从而让语言模型理解图像特征并进行深层次的问…

王思聪隐形女儿曝光

王思聪"隐形"女儿曝光&#xff01;黄一鸣独自面对怀孕风波&#xff0c;坚持生下爱情结晶近日&#xff0c;娱乐圈掀起了一场惊天波澜&#xff01;前王思聪绯闻女友黄一鸣在接受专访时&#xff0c;大胆揭露了她与王思聪之间的爱恨纠葛&#xff0c;并首度公开承认&#…

PostgreSQL源码分析——基础备份

进行基础备份有2中方式&#xff0c;可使用pg_basebackup工具或其他备份工具进行备份&#xff0c;另一种是使用底层命令进行基础备份。pg_basebackup等工具其实是封装了底层命令&#xff0c;所以&#xff0c;为了更好的理解基础备份的过程&#xff0c;这里我们使用底层命令进行备…

【C++入门(4)】引用、内联函数、auto

一、引用与类型转换 我们看下面这个例子。 用 int & 给 double 类型的变量起别名&#xff0c;编译器报错&#xff1a; int main() {double b 3.14;int a b;int& x b;return 0; } 用 const int & 给 double 类型的变量起别名&#xff0c;成功&#xff1a; in…

ROS 机器人运动控制

ROS 机器人运动控制 机器人运动 当我们拿到一台机器人&#xff0c;其配套的程序源码中&#xff0c;通常会有机器人核心节点&#xff0c;这个核心节点既能够驱动机器人的底层硬件&#xff0c;同时向上还会订阅一个速度话题。我们只需要编写一个新的节点&#xff08;速度控制节点…