Python自动造波器椭圆曲线波孤子解

news2024/12/24 22:16:41

🎯要点

🎯快速傅立叶变换算法周期域解椭圆曲线波 | 🎯算法数值解孤波脉冲和结果动画 | 🎯三种语言孤子解浅水表面波方程 | 🎯渐近分解算法孤子波 | 🎯自适应步长算法孤子波 | 🎯流体自动造波器电机控制,检测孤子波碰撞 | 🎯算法计算复现无碰撞孤子波 | 🎯能量守恒定律线性隐式算法解孤波 | 🎯两种语言有限差分算法解孤波

📜孤子波用例:Python火焰锋动力学和浅水表面波浪偏微分方程

📜有限差分用例:Python微磁学磁倾斜和西塔规则算法

📜标量场用例:Python光束三维二维标量场和算法

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

🍇Python钢棒热微分

热方程简洁地描述了热扩散和传递的极其复杂的世界,它是一个偏微分方程,而非常微分方程,所以在求解它时,只要知道它涉及一个具有多个变量的函数的导数,而不是只有一个变量的函数。
∂ u ∂ t = k ∂ 2 u ∂ x 2 \frac{\partial u}{\partial t}=k \frac{\partial^2 u}{\partial x^2} tu=kx22u
考虑一根初始冷的 ( 0 ∘ C ) \left(0^{\circ} C \right) (0C) 金属棒,长度为 L L L,具有传递热量 k k k 的能力。如果我们连续加热该金属棒的两端,例如 20 0 ∘ C 200^{\circ} C 200C,那么随着时间的推移,热量将在金属棒上扩散并达到平衡。热方程告诉我们热量如何随时间传播,其解为我们提供了一个函数 u ( t , x ) u(t, x) u(t,x),该函数可以在任何给定时间 t t t 给出沿着杆 x x x 的任何点的温度。

然而,与大多数微分方程一样,热方程的精确解析解极难获得,因此对于大多数应用而言,最佳解方法是我们尽可能最好的求近似值。获得这些近似值的方法有很多,但我们今天要重点讨论的是迄今为止最简单且应用最广泛的方法,即有限差分法。

假设一个未知函数 f ( x ) f(x) f(x) 的值是我们知道的,这种情况在现实世界中与收集外部数据的任何情况下经常出现。如果我们想求 f ( x ) f(x) f(x) n n n 点的导数,那么,我们需要找到一条与 f ( n ) f(n) f(n)​ 相切的线,并找到它的斜率,如下所示:

如果我们不知道函数 f ( x ) f(x) f(x),则我们不可能求其导数并找到切线的斜率。而有限差分法旨在解决这个问题,它使用 n n n 的相邻值来近似估计实际切线。如果我们查看 n n n 之前的一个点和 n n n 之后的一个点,并且知道它们的值,我们可以通过在 n n n 和它的一个相邻点之间画一条线来开始估计切线。例如,我们可以尝试在 n n n n + 1 n+1 n+1​ 之间画一条线。

n n n n + 1 n+1 n+1 之间的估计切线与目标切线相对相似,但让我们看看是否可以通过使用 n n n n − 1 n-1 n1 来更接近。

现在我们知道如何获得估计的切线,我们现在可以使用前面提到的斜率公式来获得它的斜率,从而获得函数在该点的导数。

斜率方程:
y 2 − y 1 x 2 − x 1 \frac{y_2-y_1}{x_2-x_1} x2x1y2y1
我们知道 y y y 值就是 f ( n + 1 ) f(n+1) f(n+1) f ( n ) f(n) f(n)​,因此代入我们所知道的斜率公式就变成:
f ( n + 1 ) − f ( n ) x 2 − x 1 \frac{f(n+1)-f(n)}{x_2-x_1} x2x1f(n+1)f(n)
x x x 值遵循类似的套路,因为对 x 2 x_2 x2 插入 n + 1 n+1 n+1,对 x 1 x_1 x1 插入 n n n​ 会导致:
f ( n + 1 ) − f ( n ) 1 \frac{f(n+1)-f(n)}{1} 1f(n+1)f(n)
实际上,我们的 n n n 值很少会精确地间隔为 1,更一般的形式将使它们间隔为任意值 d x dx dx​,从而导致我们的有限差分导数的最终公式为:
d f d x ≈ f ( x + d x ) − f ( x ) d x \frac{d f}{d x} \approx \frac{f(x+d x)-f(x)}{d x} dxdfdxf(x+dx)f(x)
现在回到热方程,我们可以用方程的左边代替它的有限差分版本,考虑到有限微分是相对于 t t t 发生的事实,而空间变量 x x x 保持不变。
u ( t + d t , x ) − u ( t , x ) d t ≈ k ∂ 2 u ∂ x 2 \frac{u(t+d t, x)-u(t, x)}{d t} \approx k \frac{\partial^2 u}{\partial x^2} dtu(t+dt,x)u(t,x)kx22u
在本模拟中,我们将模拟一根长度为 2 米的初始冷金属棒,两端持续加热至 200˚C,假设该棒为钢,热常数 k k k​ 为 0.466。我们将运行 10 秒的模拟,看看会发生什么。

import numpy
from matplotlib import pyplot

常量:

length = 10               
k = .466                  
temp_at_left_end = 200   
temp_at_right_end = 200   
total_time = 10           
dx = .1    
x_vec = numpy.linspace(0, length, int(length/dx))    
dt = .0001    
t_vec = numpy.linspace(0, total_time, int(total_time/dt))
u = numpy.zeros([len(t_vec), len(x_vec)])

由于我们的棒将在两端持续加热,因此我们希望棒的左侧和右侧始终分别为 temp_at_left_end 和 temp_at_right_end。从数学上讲,这可以表示为 u(t, 0) = 200 和 u(t, length) = 200(对于所有时间 t),代码如下:

u[:, 0] = temp_at_left_end     
u[:, -1] = temp_at_right_end  

您可以看到两端的温度很高,而其他地方的温度均为 0,因此,我们准备解决这个问题!我们要做的就是迭代沿棒的所有点和所有时间点,将它们代入我们之前推导的方程中。

for t in range(1, len(t_vec)-1):
    for x in range(1, len(x_vec)-1):
        u[t+1, x] = k * (dt / dx**2) * (u[t, x+1] - 2*u[t, x] + 
                    u[t, x-1]) + u[t, x]

要可视化它,只需在循环内部调用 pyplot.plot() 即可获得动画绘图,或在循环外部调用 pyplot.plot() 获得静态绘图。

参阅:👉 计算思维 | 亚图跨际

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

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

相关文章

react学习——17react中todoList案列

1、项目目录 2、App.js //创建“外壳”组件APP import React, {Component} from "react"; //引入Header组件 import Header from "./components/Header"; //引入List组件 import List from "./components/List"; //引入Footer组件 import Foot…

【unity笔记】八、Unity人物动画介绍

一、效果预览 本内容仅介绍为unity场景中的任务添加简单的动画效果。 二、小试牛刀 2.1 插件准备 在unity 中导入人物模型。常使用的免费人物模型和动画模型有Robot Kyle,Unity-Chan! Model,Basic Motions FREE。 其中Robot Kyle仅支持URP渲染。如…

docker内apt-get update Waiting for headers 0%

问题描述 docker运行debian等容器时,执行apt update或者apt-get update,可能会出现以下错误:root754a91d3630a:/# apt-get update 0% [Waiting for headers] [Waiting for headers] [Connected to developer.download.nvidia.com (152.199.3…

oracle11.2.0.4 RAC 保姆级静默安装(一) GI集群软件

一、响应文件准备 我们直接使用软件解压后的response文件夹中的响应文件模板进行修改 选择当前服务器的主机名,产品目录是在已存在的/u01/app目录基础上自动创建的无需提前创建oraInventory 按需选择语言,具体语言配置参考表格 一般rac默认选择安装类型为CRS_CONFIG 对应正…

Python 基础 (标准库):collections (集合类)

1. 官方文档 collections --- 容器数据类型 — Python 3.12.4 文档 Python 的 collections 模块提供了许多有用的数据类型(包括 OrderedDict、Counter、defaultdict、deque 和 namedtuple)用于扩展 Python 的标准数据类型。掌握 collections 中的数据类…

一些3D数据集的简单介绍

一、Objaverse 1.0 Objaverse 1.0: a large dataset of objects with 800K (and growing) 3D models with descriptive captions, tags and animations. Assets not only belong to varied categories like animals, humans, and vehicles, but also include interiors and ex…

超越边界:探索深度学习的泛化力量

深度学习的泛化能力 一. 简介1.1 深度学习的定义1.2 什么是泛化能力1.3 深度学习模型的泛化能力1.4 提升深度学习模型的泛化能力 二. 泛化能力的重要性2.1 深度学习中泛化能力的作用2.1.1 防止过拟合2.1.2 处理噪声和不完整数据2.1.3 对于数据分布的变化具有适应性 2.2 泛化能力…

关于服务器的一些知识

1. 云服务器 和 轻量应用服务器 腾讯云中的"云服务器"(Cloud Virtual Machine, CVM)和"轻量应用服务器"(Lite Cloud Server)都是提供云端计算资源的服务,但它们在定位、特性和使用场景上存在一些差…

某平台小程序逆向思路整理

一、下载软件 devtools 二、强制打开控制台 根据返回的数据我们得知数据被加密了 找到这个加密的js 发现加密的位置 打断点进入这个加密的方法 之后自定义js。python调用解密即可。

计算机组成原理 | CPU子系统(3)MIPS32指令架构

MIPS32架构指令格式 MIPS32架构寻址方式 指令的编码与功能

第 27 篇 : 搭建maven私服nexus

官网文档 1. 下载应该很慢, 最好是能翻墙 nexus-3.69.0-02-java8-unix.tar.gz 2. 上传到/usr/local/src, 解压及重命名 tar -zxvf nexus-3.69.0-02-java8-unix.tar.gz rm -rf nexus-3.69.0-02-java8-unix.tar.gz mv nexus-3.69.0-02 nexus ls3. 修改配置 cd /usr/local/sr…

AI-智能体基础设施

个性化记忆需要世界模型来协助构建 业界有一个精简的Agent表达公示,即:Agent大模型(LLM)记忆(Memory)主动规划(Planning)工具使用(Tool Use)。基于该公式&am…

记录正则提取文章

收到了个word版的电子书,需要拆分并转换为md存储到数据库中,便于搜索,记录下用正则提取文章的过程 word原文中有目录,可提取出目录后,在正文中根据目录来正则提取文章 正则的多行匹配 在匹配大量文章的时候&#xff…

Maven高级的多环境配置与应用

多环境配置与应用 这一节中,我们会讲两个内容,分别是多环境开发和跳过测试 5.1 多环境开发 我们平常都是在自己的开发环境进行开发,当开发完成后,需要把开发的功能部署到测试环境供测试人员进行测试使用,等测试人员测…

2024最新谷歌镜像网站入口分享

google谷歌搜索引擎最新可用镜像站列表:(注意不要登录账号,镜像站并非谷歌官方网站) 谷歌镜像网站1:https://google.cloudnative.love/ 谷歌镜像网站2:https://gsearch.g.shellten.top/ 谷歌镜像网站3&…

七天速通javaSE:第四天 java方法

文章目录 前言一、什么是方法?二、方法的定义与调用1. 方法的定义2. 方法的调用3. 练习:定义比大小方法并调用 三、方法的重载四、递归五、可变参数拓展:命令行传递参数 前言 本章将学习java方法。 一、什么是方法? java方法是用…

路径规划算法--DFS

文章目录 一、DFS二、DFS伪代码三、DFS做全覆盖路径 一、DFS DFS(Depth First Search)为深度优先搜索,是一种用于遍历或搜索树或图的搜索算法。DFS是从当前点出发,沿着一个方向一直搜索,如果搜索完成且未搜索到目标点…

【ajax07基础】回调函数地狱

一:什么是回调函数地狱 在一个回调函数中嵌套另一个回调函数(甚至一直嵌套下去),形成回调函数地狱 回调函数地狱存在问题: 可读性差异常捕获严重耦合性严重 // 1. 获取默认第一个省份的名字axios({url: http://hmaj…

[AI开发配环境]VSCode远程连接ssh服务器

文章目录 总览:ssh连接远程服务器连接免密登录:Docker:ssh连接远程宿主机后,进一步连接并使用其中的docker容器reload window 配置解释器:CtrlP,在上面输入“>python”, 然后选selecet interpreter运行命…

LeetCode热题100——最长连续序列

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 class Solution(object):def longestConsecutive(self, nums):""":t…