当前位置: 首页 > news >正文

松弛法求解给定边界条件的泊松方程

一、问题描述

一块 4cm x 3cm 的板,表面的散热忽略不计,四边温度给定,除一条长边温度为 100◦C 外,其他三条边的温度为 20◦C。计算其稳定的温度场。

采用迭代法计算时,注意采用不同的松弛因子,并比较收敛速度,观察在不同的网格尺度下,最佳松弛因子的变化。
在这里插入图片描述

二、解题思路

本题为给定边界条件的泊松方程的求解问题。
在这里插入图片描述
采用 SOR 松弛法:
在这里插入图片描述
其中
β = Δ x Δ y \beta = \frac{\Delta x}{\Delta y} β=ΔyΔx

用 matlab 编写函数
f u n c t i o n n = S O R ( w ) function \quad n = SOR(w) functionn=SOR(w)
其中参数 w 为松弛因子 ,返回值 n 为收敛所需要的迭代次数 。判断收敛的条件为

∑ i , j ( T i , j n + 1 − T i , j n ) 2 < ϵ \sum_{i,j} (T_{i,j}^{n+1} - T_{i,j}^n)^2 < \epsilon i,j(Ti,jn+1Ti,jn)2<ϵ

function n = SOR(w)
xl = 1;
yl = 1;
n = 30;
hx = xl/n;
hy = yl/n;

T = zeros(n);
f = zeros(n);

T(:,1)=20;
T(:,end)=20;
T(1,:)=20;
T(end,:) = 100;

e = 1;
while(e >0.0001)
    n = n+1;
    T1 = sor(T,f,w,hx,hy,1);
    e = sum((T1(:)-T(:)).^2);
    T = T1;
end
contour(T,100);


function T = sor(T,f,w,dx,dy,N)
b = dx/dy;
B2 = b*b;
DX2 = dx*dx;
C = w/(2*(1+B2));
for t = 1:N
    for i =2:size(T,1)-1
        for j = 2:size(T,1)-1
        T(i,j) = (1-w)*T(i,j) + C*(T(i+1,j)+T(i-1,j) + ...
            B2*(T(i,j+1)+T(i,j-1))+DX2*f(i,j));
        end
    end
end

结果

在这里插入图片描述
不同网格尺度下最佳松弛因子的变化
在这里插入图片描述
可见随着网格数增加 ,最佳松弛因子随之增大 ,趋向 2.0

相关文章:

  • Implicit Graph Neural Networks
  • DB2 简史
  • 部分 SCI 英文期刊缩写对照表
  • matlab 计算 Lorenz 系统最大李雅普诺夫指数
  • Data-Driven Science and Engineering —— Machine Learning, Dynamical Systems, and Control
  • DB2 命令行处理器(CLP)中的常用命令
  • 随机奇异值分解(Randomized SVD, rSVD)
  • 绘制 Logistic 映射分叉图
  • 利用SQL Server 2000 技能来学习 DB2 V8
  • Debian 配置Bind9 DNS服务器
  • 动态模式分解(DMD)
  • 使用 Unbound 创建DNS服务器
  • 最优奇异值硬阈值 SVHD
  • FTP服务器关于断点续传权限的防范问题
  • HAMILTONIAN SYSTEMS AND TRANSFORMATIONS IN HILBERT SPACE (KOOPMAN, 1931)
  • [Vue CLI 3] 配置解析之 css.extract
  • 《深入 React 技术栈》
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • const let
  • docker容器内的网络抓包
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • maven工程打包jar以及java jar命令的classpath使用
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • PHP 7 修改了什么呢 -- 2
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Redis字符串类型内部编码剖析
  • session共享问题解决方案
  • spring boot下thymeleaf全局静态变量配置
  • SQLServer插入数据
  • Unix命令
  • vue总结
  • 分布式任务队列Celery
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 检测对象或数组
  • 那些被忽略的 JavaScript 数组方法细节
  • 如何在 Tornado 中实现 Middleware
  • 十年未变!安全,谁之责?(下)
  • 详解NodeJs流之一
  • Android开发者必备:推荐一款助力开发的开源APP
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • # 数据结构
  • #HarmonyOS:Web组件的使用
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (十八)三元表达式和列表解析
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (转) Face-Resources
  • ******之网络***——物理***
  • ****Linux下Mysql的安装和配置
  • ***详解账号泄露:全球约1亿用户已泄露
  • .NET 5种线程安全集合
  • .NET开源项目介绍及资源推荐:数据持久层
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .Net小白的大学四年,内含面经