SciML求解简谐振动的微分方程
简谐振动的方程为
x¨+ωx=0\ddot x+\omega x=0 x¨+ωx=0
解得
x(t)=Acos(ωt−ϕ)v(t)=x˙(t)=−Aωsin(ωt−ϕ)\begin{aligned} x(t)&=A\cos(\omega t-\phi)\\ v(t)&=\dot x(t) = -A\omega\sin(\omega t-\phi) \end{aligned} x(t)v(t)=Acos(ωt−ϕ)=x˙(t)=−Aωsin(ωt−ϕ)
通过SciML的求解方式为
using OrdinaryDiffEq, Plotsω = 1 #输入\omega然后按tab可打出ω
x₀ = [0.0] #输入\_0 然后按tab可打出下标₀
dx₀ = [π/2] #\pi tab
tspan = (0.0, 2π)ϕ = atan((dx₀[1]/ω)/x₀[1])
A = √(x₀[1]^2 + dx₀[1]^2)#
function f(ddu,du,u,ω,t)ddu .= -ω^2 * u
end# 创建二阶ODE问题
prob = SecondOrderODEProblem(f, dx₀, x₀, tspan, ω)
sol = solve(prob, DPRKN6())#Plot
plot(sol, vars=[2,1], linewidth=2, title ="简谐振动", label = ["x" "dx"])
plot!(t->A*cos(ω*t-ϕ), lw=3, ls=:dash, label="解析解 x")
plot!(t->-A*ω*sin(ω*t-ϕ), lw=3, ls=:dash, label="解析解 dx")
savefig("ode_7.png")
结果如图所示
其中,DPRKN6
是一个高效但不精确的求解器,采用的是龙格库塔法,并且具有6阶插值。如果感觉精度不够的话,可以改用DPRKN12
,顾名思义有12阶插值,但相对来说会慢一些。
关于Runge-kutta法
SciML求解简谐振动的微分方程相关推荐
- 几类常微分方程的matlab求解方法 | 刚性微分方程、隐式微分方程、微分代数方程
目录 微分方程的转换 一.单个高阶常微分方程 二.高阶常微分方程组 刚性微分方程求解 隐式微分方程求解 微分代数方程求解 微分方程的转换 根据微分方程求解的标准型,要得到微分方程的数值解,应该先将该方 ...
- matlab求解f非线性微分方程数值解,非线性﹑微分方程数值求解.PPT
非线性﹑微分方程数值求解 数 学 系 University of Science and Technology of China DEPARTMENT OF MATHEMATICS 计算方法(B) 主 ...
- 欧拉法求解微分方程c语言_用C程序求解多项式和微分方程
欧拉法求解微分方程c语言 1)多项式评估 (1) Polynomial Evaluation) We all know what polynomial equations are and it is ...
- SciML求解单摆问题
单摆问题可表示为 θ ¨ + g L sin θ = 0 \ddot{\theta} + \frac{g}{L}{\sin\theta} = 0 θ¨+Lgsinθ=0 其中, g g g是重力 ...
- Petsc求解一维非线性微分方程,SNES对象-2
微分方程引入 − u ′ ′ + ρ ( u ) = f , x ∈ ( 0 , 1 ) -u^{''}+\rho\sqrt(u)=f,x \in(0,1) −
- 记录一下MATLAB中ode45函数求解非刚性微分方程
首先看一下MATLAB的官方例子 vdp1.m: function dydt = vdp1(t,y) %VDP1 Evaluate the van der Pol ODEs for mu = 1 % ...
- 用ode求解二阶非线性微分方程
输入参数数目不足求大神帮助 clear all; close all; clc; f0=2*10^4; R0=6*10^(-6); P0=1.013*10^5; time=1/f0; Pa=1.2*1 ...
- 机器学习(MACHINE LEARNING)MATLAB中微分方程的求解
文章目录 1 MATLAB之极限.积分.微分 2 matlab中微分方程的求解 2.1 一阶微分方程 2.2 求解二阶线性微分方程 是指含有未知函数及其导数的关系式.解微分方程就是找出未知函数.微分方 ...
- 延迟微分方程(matlab求解)
延迟微分方程数值解(matlab求解) 科学研究中,我们有时会碰到求延迟微分方程数值解的问题,本文探讨了如何用matlab软件求解延迟微分方程. 所谓延迟微分方程,指微分方程中信号不是同时发生的,除了 ...
最新文章
- pandas基本数据操作
- 作业二:了解流行的软件
- 6种常见的无线组网架构
- 交大网院计算机第五次作业答案,交大网院计算机第三次作业分析.docx
- 一个农场有头母牛,现在母牛才一岁,要到四岁才能生小牛,四岁之后,每年生一头小牛,n年后有多少头小牛
- .NET架构小技巧(8)——优待异常
- java创建一个成员方法吗,java构造方法和成员方法的区别
- 程序员能自己独立进行程序开发,为何要去公司上班呢?真相出来了!
- centos下配置java环境变量
- 国际电话号码的区号mysql数据表
- 【笔记】(python)写入文件:写入空文件、写入多行、附加到文件
- 小程序获取openid时报40125
- 系统垃圾清理bat文件
- 解释外显子,内含子,CDS、cDNA、EST、mRNA、ORF间的区别
- [Vulfocus解题系列] 所复现漏洞总结
- python实现人工智能识别水果
- 淘宝618列车喵币自动做任务app 懒人一键安装包
- h5 苹果IOS端 播放mp3 没声音
- 基于Visual C++2010 与office2010开发办公自动化 2 -自动生成excel与word并打开
- (6)关于整型short、int、long和long long
热门文章
- 运行tensorflow-datasets遇到import tensorflow.compat.v2 as tf报错ImportError: No module named tensorflow.V2
- 线特征作为视觉描述:用于视觉定位的上下文感知线特征描述符
- 小米设备token获取HomeAssistant安装部署
- 中创|又临双11淘宝崩了,中心化存储难以支撑
- (uniapp-快速入门)运行到小程序模拟器微信开发工具
- 人工智能生成 logo 神器
- 【理解】ORB特征提取与ORBSLAM特征匹配简要剖析
- CSS画等腰三角形与直角三角形
- 苹果天气无线网连接到服务器,苹果手机天气怎么设置?教你玩转天气应用
- 关于恶意说说自动在QQ空间转发的机制