傅里叶谱方法-傅里叶谱方法求解二维浅水方程组和二维粘性 Burgers 方程及其Matlab程序实现
3.3.2 二维浅水方程组
二维浅水方程组是描述水波运动的基本方程之一。它主要用于描述近岸浅水区域内的波浪、潮汐等水动力学现象。这个方程组由两个偏微分方程组成,一个是质量守恒方程,另一个是动量守恒方程。浅水方程描述了具有自由表面、密度均匀、深度较浅的液体在重力作用下的流动过程, 用于研究潮波和河流,具体形式如下:
{∂η∂t=−∂(ηu)∂x−∂(ηv)∂y∂u∂t=−v∂u∂y−u∂u∂x−g∂η∂x∂v∂t=−u∂v∂x−v∂v∂y−g∂η∂y(3-34)\left\{\begin{array}{l} \frac{\partial \eta}{\partial t}=-\frac{\partial(\eta u)}{\partial x}-\frac{\partial(\eta v)}{\partial y} \\ \frac{\partial u}{\partial t}=-v \frac{\partial u}{\partial y}-u \frac{\partial u}{\partial x}-g \frac{\partial \eta}{\partial x} \\ \frac{\partial v}{\partial t}=-u \frac{\partial v}{\partial x}-v \frac{\partial v}{\partial y}-g \frac{\partial \eta}{\partial y} \end{array}\right.\tag{3-34} ⎩⎨⎧∂t∂η=−∂x∂(ηu)−∂y∂(ηv)∂t∂u=−v∂y∂u−u∂x∂u−g∂x∂η∂t∂v=−u∂x∂v−v∂y∂v−g∂y∂η(3-34)
其中, η\etaη 代表水深, ttt 为时间, xxx 和 yyy 是水平面上的坐标, u、vu 、 vu、v 是 xxx 和 yyy 方向上的流速, ggg 为重力加速度。物理上,这个方程组描述了水波在浅水区域内的传播和运动。它假设水深相对于波长很小,即波长远大于水深,这样就可以近似将水流速度视为垂直于水深方向的,这被称为“浅水近似”。
在实际应用中,二维浅水方程组被广泛用于预测海洋和河流等水动力学现象。例如,可以用它来预测风浪的形成和演变,或者用它来优化海岸线防护结构的设计。
需要注意的是,二维浅水方程组是一种近似模型,它对真实的水动力学现象只能提供近似的描述,实际情况可能更加复杂。因此,在具体应用中,需要根据实际情况选择合适的模型并对其进行修正和调整。对方程组 (3-34) 的等号两边做 x−yx-yx−y 空间上的二维傅里叶变换, 得到偏微分方程组:
{∂η^^∂t=−ikxF{F−1[η^^]F−1[u~^]}−ikyF{F−1[η~^]F−1[v^]}∂u^^∂t=−F{F−1[v^^]⋅F−1[ikyu^^]+F−1[u⃗^]⋅F−1[ikxu^]}−igkxη^^∂v^∂t=−F{F−1[u^]⋅F−1[ikxv^]+F−1[v^]⋅F−1[ikyv^]}−igkyη^^(3-35)\left\{\begin{array}{l} \frac{\partial \hat{\hat{\eta}}}{\partial t}=-\mathrm{i} k_x F\left\{F^{-1}[\hat{\hat{\eta}}] F^{-1}[\hat{\tilde{u}}]\right\}-\mathrm{i} k_y F\left\{F^{-1}[\hat{\tilde{\eta}}] F^{-1}[\hat{v}]\right\} \\ \frac{\partial \hat{\hat{u}}}{\partial t}=-F\left\{F^{-1}[\hat{\hat{v}}] \cdot F^{-1}\left[\mathrm{i} k_y \hat{\hat{u}}\right]+F^{-1}[\hat{\vec{u}}] \cdot F^{-1}\left[\mathrm{i} k_x \hat{u}\right]\right\}-\mathrm{i} g k_x \hat{\hat{\eta}} \\ \frac{\partial \hat{v}}{\partial t}=-F\left\{F^{-1}[\hat{u}] \cdot F^{-1}\left[\mathrm{i} k_x \hat{v}\right]+F^{-1}[\hat{v}] \cdot F^{-1}\left[\mathrm{i} k_y \hat{v}\right]\right\}-\mathrm{i} g k_y \hat{\hat{\eta}} \end{array}\right.\tag{3-35} ⎩⎨⎧∂t∂η^^=−ikxF{F−1[η^^]F−1[u~^]}−ikyF{F−1[η~^]F−1[v^]}∂t∂u^^=−F{F−1[v^^]⋅F−1[ikyu^^]+F−1[u^]⋅F−1[ikxu^]}−igkxη^^∂t∂v^=−F{F−1[u^]⋅F−1[ikxv^]+F−1[v^]⋅F−1[ikyv^]}−igkyη^^(3-35)
取 g=1g=1g=1, 初始条件为 η(x,y,0)=0.1⋅exp(−x2/10−y2/10)+0.1\eta(x, y, 0)=0.1 \cdot \exp \left(-x^2 / 10-y^2 / 10\right)+0.1η(x,y,0)=0.1⋅exp(−x2/10−y2/10)+0.1 和 u(x,y,0)=v(x,y,0)=0u(x, y, 0)=v(x, y, 0)=0u(x,y,0)=v(x,y,0)=0, 用傅里叶谱方法计算上述方程的代码如下:
主程序代码:
clear all; close all;
L=40; N=64;
x=L/N*[-N/2:N/2-1]; y=x;
kx=2*pi/L*[0:N/2-1 -N/2:-1]; ky=kx;
[X,Y]=meshgrid(x,y);
[kX,kY]=meshgrid(kx,ky);
%初始条件
e=0.1*exp(-X.^2/10-Y.^2/10)+0.1;
et=fft2(e); ut=zeros(N^2,1); vt=zeros(N^2,1);
euvt=[et(:); ut; vt;];
%求解
t=[0 5 10 25]; g=1;
[t,euvtsol]=ode45('shallow_water',t,euvt,[],kX,kY,N,g);
%画图
for n=1:4subplot(2,2,n)mesh(x,y,real(ifft2(reshape(euvtsol(n,1:N^2),N,N))))axis([-20 20 -20 20 0.1 0.2]), title(['t=' num2str(t(n))])xlabel x, ylabel y, zlabel \eta, view(-80,45)
end
程序输出结果如图所示, 从 t=0t=0t=0 时刻开始, 一个三维高斯形水柱在重力的作用下坍塌, 并激起了向四周传播的圆形水波。

3.3.3 二维粘性 Burgers 方程
Burgers方程是一种非线性偏微分方程,它最初由荷兰数学家J. M. Burgers在20世纪30年代提出,用于描述一维粘性流体中的流动行为。
Burgers方程在物理学中具有广泛的应用。它可以用于模拟一维粘性流体中的多种现象,如激波、涡旋、湍流等。在流体力学中,Burgers方程常用于模拟流体中的湍流现象,如湍流尾流、湍流边界层等。在量子场论中,Burgers方程被用于描述费米子系统中的量子涡旋。
Burgers方程还是一些数值方法和数学工具的基础,如Shocks-capturing方法、Lax-Friedrichs格式等。这些方法可以有效地处理Burgers方程中出现的激波等非线性现象,从而得到比较精确的数值解。
Burgers方程也是非线性动力学中一个重要的模型。它的解可能会出现奇点和激波等非线性现象,这些现象为非线性偏微分方程的研究提供了新的思路和挑战。通过对Burgers方程的研究,可以深入了解非线性动力学中的一些重要现象和性质。
此外,Burgers方程还被应用于宏观经济学中的一些问题,如经济增长、通货膨胀等。通过对Burgers方程的应用,可以揭示一些经济现象的本质规律和机制。
除了上述介绍的应用和研究方向,Burgers方程还有以下一些特点和性质:
Burgers方程是一种具有非线性扰动传递性的方程。这意味着,当一个扰动在Burgers方程中传播时,它会不断地变形和扩散,从而形成复杂的结构。
Burgers方程可以通过一些数学方法和技巧来求解。其中比较常用的方法包括Burgers方程的相似变换、行波解法和反演公式等。
Burgers方程的解可能会出现激波、奇点等非线性现象。这些现象具有一定的物理意义,并且对于解决实际问题具有重要的作用。
Burgers方程可以被看作是Navier-Stokes方程的一维版本,它描述了粘性流体中的一些基本特性和行为。因此,Burgers方程在流体力学中有着重要的应用和研究价值。
Burgers方程还可以被拓展到更高维度或者更复杂的情形下。例如,二维Burgers方程、Burgers-Fisher方程等。
总之,Burgers方程在物理学、数学和工程学等领域具有广泛的应用和研究价值,它的研究和应用也带动了非线性动力学和偏微分方程等领域的发展。
Burgers 方程有钟行孤波和扭波两种形式的行波解(如图)
二维粘性 Burgers 方程的形式如下:
∂u∂t=v(∂2∂x2+∂2∂y2)u−u(∂∂x+∂∂y)u(3-36)\frac{\partial u}{\partial t}=v\left(\frac{\partial^2}{\partial x^2}+\frac{\partial^2}{\partial y^2}\right) u-u\left(\frac{\partial}{\partial x}+\frac{\partial}{\partial y}\right) u\tag{3-36} ∂t∂u=v(∂x2∂2+∂y2∂2)u−u(∂x∂+∂y∂)u(3-36)
其中, uuu 代表速度, x、yx 、 yx、y 为空间坐标, ttt 为时间, vvv 为粘性系数。对上式做二维傅里叶变换, 得:
∂u^^∂t=−v(kx2+ky2)u^^−F{F−1[u^]⋅F−1[i(kx+ky)u^^]}(3-37)\frac{\partial \hat{\hat{u}}}{\partial t}=-v\left(k_x^2+k_y^2\right) \hat{\hat{u}}-F\left\{F^{-1}[\hat{u}] \cdot F^{-1}\left[\mathrm{i}\left(k_x+k_y\right) \hat{\hat{u}}\right]\right\}\tag{3-37}∂t∂u^^=−v(kx2+ky2)u^^−F{F−1[u^]⋅F−1[i(kx+ky)u^^]}(3-37)
取 v=0.01v=0.01v=0.01, 初始条件 u(x,y,0)=sech(4x2+4y2)u(x, y, 0)=\operatorname{sech}\left(4 x^2+4 y^2\right)u(x,y,0)=sech(4x2+4y2), 傅里叶谱方法的代码如下:
主程序代码:
clear all; close all;
L=4; N=64;
x=L/N*[-N/2:N/2-1]; y=x;
kx=2*pi/L*[0:N/2-1 -N/2:-1]; ky=kx;
[X,Y]=meshgrid(x,y);
[kX,kY]=meshgrid(kx,ky);
K2=kX.^2+kY.^2;
%初始条件
u=sech(4*X.^2+4*Y.^2);
ut=fft2(u);
%求解
v=0.01; t=0:0.4:1.2;
[t,utsol]=ode45('burgers',t,ut(:),[],N,kX,kY,K2,v);
%画图
for n=1:4subplot(2,2,n)mesh(x,y,real(ifft2(reshape(utsol(n,:),N,N))))axis([-2 2 -2 2 0 1]), xlabel x, ylabel y, zlabel uview(46,20), title(['t=' num2str(t(n))])
end
程序执行结果如图所示,初始波形逐渐演变成激波,这是符合实际情况的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L46WfgOw-1680611827553)(https://mweb-1307664364.cos.ap-chengdu.myqcloud.com/2023/04/04/untitled12.png)]
当Burgers方程中的初始波形是单峰的、集中在某一区域内的时候,它会随着时间的推移而逐渐演变成为一个激波。这个现象可以通过分析Burgers方程的解得到解释。
在初始时刻,Burgers方程的初始波形会随着时间的推移而扩散,并逐渐变得平缓。然而,由于Burgers方程是一个非线性方程,波形在演化过程中会发生非线性的相互作用,这些相互作用会导致波形逐渐变得不规则,并在某些区域内出现奇点。当波形的斜率超过一定阈值时,这些奇点会形成激波,即波形在激波前是平缓的,但在激波后却是陡峭的。
激波的形成可以用物理学中的震荡现象来解释。当初始波形逐渐演化为激波时,波前的部分会受到高压的压缩,而波后的部分则会受到低压的拉伸,这样就形成了一个压缩波和一个展开波,它们相互作用,最终形成了一个陡峭的激波。
总之,Burgers方程中的初始波形逐渐演变为激波的现象,是由于非线性相互作用导致的,它在物理学和工程学等领域中有着广泛的应用。
相关文章:
傅里叶谱方法-傅里叶谱方法求解二维浅水方程组和二维粘性 Burgers 方程及其Matlab程序实现
3.3.2 二维浅水方程组 二维浅水方程组是描述水波运动的基本方程之一。它主要用于描述近岸浅水区域内的波浪、潮汐等水动力学现象。这个方程组由两个偏微分方程组成,一个是质量守恒方程,另一个是动量守恒方程。浅水方程描述了具有自由表面、密度均匀、深…...
算法训练营 - 广度优先BFS
目录 从层序遍历开始 N 叉树的层序遍历 经典BFS最短路模板 经典C queue 数组模拟队列 打印路径 示例1.bfs查找所有连接方块 Cqueue版 数组模拟队列 示例2.从多个位置同时开始BFS 示例3.抽象最短路类(作图关键) 示例4.跨过障碍的最短路 从层序遍历…...
判断两个字符串是否匹配(1个通配符代表一个字符)
目录 判断两个字符串是否匹配(1个通配符代表一个字符) 程序设计 程序分析...
用css画一个csdn程序猿
效果如下: 头部 我们先来拆解一下,程序猿的结构 两只耳朵和头是圆形组成的,耳朵内的红色部分也是圆形 先画头部,利用圆角实现头部形状 借助工具来快速实现圆角效果 https://9elements.github.io/fancy-border-radius/ <div…...
Java多线程编程—wait/notify机制
文章目录1. 不使用wait/notify机制通信的缺点2. 什么是wait/notify机制3. wait/notify机制原理4. wait/notify方法的基本用法5. 线程状态的切换6. interrupt()遇到方法wait()7. notify/notifyAll方法8. wait(long)介绍9. 生产者/消费者模式10. 管道机制11. 利用wait/notify实现…...
Three.js教程:旋转动画、requestAnimationFrame周期性渲染
推荐:将NSDT场景编辑器加入你3D工具链其他工具系列:NSDT简石数字孪生基于WebGL技术开发在线游戏、商品展示、室内漫游往往都会涉及到动画,初步了解three.js可以做什么,深入讲解three.js动画之前,本节课先制作一个简单的…...
租车自驾app开发有什么作用?租车便利出行APP开发
在线租车APP有哪些优势,租车APP开发的基本功能,租车自驾app开发有什么作用?租车便利出行APP开发,租车服务平台小程序有哪些功能,租车软件开发需要多少钱,租车app都有哪些,租车平台定制开发,租车…...
linux shell 文件分割
split 按照 10m 大小进行分割 split -b 10m large_file.bin new_file_prefix...
智慧农业系统开发功能有哪些?
农业从古至今都是备受关注的话题,新时代背景下农业发展已经融合了互联网,数字化技术等新型发展方式,形成了农业物联网管控系统,让农业生产更加科技化、智能化、高效化,对农业可持续发展有巨大的推动作用。所以…...
【C语言】 指针的进阶 看这一篇就够了
目录 1.字符指针 2.数组指针 3.指针数组 4.数组传参和指针传参 5.函数指针 6.函数指针数组 7.指向函数指针数组的指针 8.回调函数 9.qsort排序和冒泡排序 1.字符指针 让我们一起来回顾一下指针的概念! 1.指针就是一个变量,用来存放地址,地址…...
redis set list
Listlist: 插入命令:lpush / rpush 查看list列表所有数据(-1 表示最后一个):lrange key 0 -1 查看列表长度(key 不存在则长度返回0 ): llen key list长度 获取下表 为 0 的元素 修改下标为0的元素,改为haha 移除列表的第一个元素 或最后一…...
如何解决DNS劫持
随着互联网的不断发展,DNS(域名系统)成为了构建网络基础的重要组成部分。而DNS遭到劫持,成为一种常见的安全问题。那么DNS遭到劫持是什么意思呢?如何解决DNS劫持问题呢?下面就让小编来为您一一解答。 DNS遭到劫持是什么意思? DNS遭到劫持指的是黑客通…...
【LeetCode】剑指 Offer(28)
目录 题目:剑指 Offer 54. 二叉搜索树的第k大节点 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 题目:剑指 Offer 55 - I. 二叉树的深度 - 力…...
「ML 实践篇」模型训练
在训练不同机器学习算法模型时,遇到的各类训练算法大多对用户都是一个黑匣子,而理解它们实际怎么工作,对用户是很有帮助的; 快速定位到合适的模型与正确的训练算法,找到一套适当的超参数等;更高效的执行错…...
域名解析协议-DNS
DNS(Domain Name System)是互联网上非常重要的一项服务,我们每天上网都要依靠大量的DNS服务。在Internet上,用户更容易记住的是域名,但是网络中的计算机的互相访问是通过 IP 地址实现的。DNS 最常用的功能是给用户提供…...
分享:包括 AI 绘画在内的超齐全免费可用的API 大全
AI 绘画已经火出圈了,你还不知道哪里可以用嘛?我给大家整理了超级齐全的免费可用 API,包括 AI 绘画在内,有需要的小伙伴赶紧收藏了。 AI 绘画/AI 作画 类 AI 绘画:通过AI 生成图片,包括图生文、文生图等。…...
虹科新闻 | 虹科与Overland-Tandberg正式建立合作伙伴关系
虹科Overland-Tandberg 近日,虹科与美国Overland-Tandberg公司达成战略合作,虹科正式成为Overland-Tandberg公司在中国区域的认证授权代理商。未来,虹科将携手Overland-Tandberg,共同致力于提供企业数据管理和保护解决方案。 虹科…...
架构设计三原则
作为程序员,很多人都希望成为一名架构师,但并非简单地通过编程技能就能够达成这一目标。事实上,优秀的程序员和架构师之间存在一个明显的鸿沟——不确定性。 编程的本质是确定性的,也就是说,对于同一段代码,…...
Android 性能优化——ANR监控与解决
作者:Drummor 1 哪来的ANR ANR(Application Not responding):如果 Android 应用的界面线程处于阻塞状态的时间过长,会触发“应用无响应”(ANR) 错误。如果应用位于前台,系统会向用户显示一个对话框。ANR 对话框会为用户提供强制退出应用的选项…...
Machine Learning-Ex3(吴恩达课后习题)Multi-class Classification and Neural Networks
目录 1. Multi-class Classification 1.1 Dataset 1.2 Visualizing the data 1.3 Vectorizing Logistic Regression 1.3.1 Vectorizing the cost function(no regularization) 1.3.2 Vectorizing the gradient(no regularization&#…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
