• ode

2020-02-25 11:40:34
如何应用ode Import commands import numpy as np import matplotlib.pyplot as plt %matplotlib inline from scipy.integrate import odeint #prameters r=0 q=1.1 w=1.2 Derivative function def derivs(y, t，r...
如何应用ode

Import commands
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from scipy.integrate import odeint
#prameters
r=0
q=1.1
w=1.2
Derivative function
def derivs(y, t，r，w, q):
输入parameters的值：
# Unpack the current values of the variables we wish to "update" from the y list）
X=y[0]
Y=y[1]

# Right-hand side of odes, which are used to compute the derivative
dXdt = -r*X-w*Y
dYdt =q*X

return dXdt, dYdt

Declare Variables for initial conditions
initial condition
X0=3
Y0=1
y0=[X0, Y0]
define time steps
t=np.linespace(0,20,2000)
sol=odeint(derivs, y0, t, args=(r,w,q))
plt.subplot()/ plt.figure(1)
plt.plot(time,sol[:,0], color=“green”,label="…")
plt.xlabel("…")
plt.ylabel("…")
plt.grid()
plt.legend()


展开全文
• Ode2Paste

2019-10-24 06:29:13
Ode2Paste
• - <code>integrate_ode</code> to <code>integrate_ode_rk45 - <code>integrate_ode_cvode</code> to <code>integrate_ode_bdf</code></p> <h4>Additional Information: <p>The Stan library will need to change. ...
• %主程序-求解器：ode45 clear all close all clc y0 = 0; tspan = [0:0.01:10]; [t,y] = ode45(@subfun,tspan,y0); figure(1) plot(t,y);% 画出每次积分结果与时间的图形 %主程序-求解器：ode15s clear all close...
%主程序-求解器：ode45
clear all
close all
clc

y0 = 0;
tspan = [0:0.01:10];
[t,y] = ode45(@subfun,tspan,y0);

figure(1)
plot(t,y);% 画出每次积分结果与时间的图形

%主程序-求解器：ode15s
clear all
close all
clc

y0 = 0;
yp0 = 1;
tspan = [0:0.01:10];
options = odeset('RelTol',1e-12);
[t,y] = ode15s(@subfun,tspan,y0,yp0,options);

figure(1)
plot(t,y);% 画出每次积分结果与时间的图形

%主程序-求解器：ode15i
clear all
close all
clc

y0 = 0;
yp0 = 1;
tspan = [0:0.01:10];
options = odeset('RelTol',1e-12);
[t,y] = ode15i(@subfun,tspan,y0,yp0,options);

figure(1)
plot(t,y);% 画出每次积分结果与时间的图形

%以“subfun”命名的子函数
function f = ode(t,y,yp)
f = cos(t);

#ode45求解结果

#ode15s求解结果

#ode15i求解结果:积分公差要求无法满足：我暂时还没找到是什么原因产生的


展开全文
• forced ODE

2020-12-09 05:15:32
<div><p>Hi, <p>Thank you for your great framework. I am trying to fit a forced ODE (where the forcing occurs at a known time). e.g.: data in the plot below, where a step input comes at known times. ...
• ode-image-源码

2021-03-31 02:57:33
ode-image
• Numerical-ODE
• 本文主要介绍matlab中求解常微分方程（组）的dsolve和ode系列函数，并通过例子加深读者的理解。 一、符号介绍  D: 微分符号；D2表示二阶微分，D3表示三阶微分，以此类推。 二、函数功能介绍及例程 1、dsolve ...
本文主要介绍matlab中求解常微分方程（组）的dsolve和ode系列函数，并通过例子加深读者的理解。

一、符号介绍

D: 微分符号；D2表示二阶微分，D3表示三阶微分，以此类推。

二、函数功能介绍及例程

1、dsolve 函数

dsolve函数用于求常微分方程组的精确解，也称为常微分方程的符号解。如果没有初始条件或边界条件，则求出通解；如果有，则求出特解。

1)函数格式

Y = dsolve(‘eq1,eq2,…’ , ’cond1,cond2,…’ , ’Name’)

其中，‘eq1,eq2,…’:表示微分方程或微分方程组;

’cond1,cond2,…’:表示初始条件或边界条件;

‘Name’:表示变量。没有指定变量时，matlab默认的变量为t；

2)例程

例1.1(dsolve 求解微分方程)

求解微分方程：

在命令行输入: dsolve('Dy=3*x^2','x') ,摁下enter键后输出运行结果。

例1.2（加上初始条件）

求解微分方程：

只需要在命令行添加初始条件即可，此时求出的即为方程的特解。可以看到上例中的C9变为了2。

例2(dsolve 求解微分方程组)

求解微分方程组：

由于x,y均为t的导数，所以不需要在末尾添加’t’。

2、ode函数

在上文中我们介绍了dsolve函数。但有大量的常微分方程，虽然从理论上讲，其解是存在的，但我们却无法求出其解析解，此时，我们需要寻求方程的数值解。

怎么理解数值求解呢？数值分析是一门专门的学科，在此不过多介绍。我主要想通过一个简单的例子来向大家阐述数值求解的思想。

比如，求解微分方程  。我们就可以转化为，那么。因此，我们可以通过迭代的方式来求解y。即可理解为步长

ode是Matlab专门用于解微分方程的功能函数。该求解器有变步长（variable-step）和定步长（fixed-step）两种类型。不同类型有着不同的求解器，具体说明如下图。

非刚性ode求解命令

求解器solver

功能

说明

ode45

一步算法：4、5阶龙格库塔方程：累计截断误差(Δx)^5

大部分尝试的首选算法

ode23

一步算法：2、3阶龙格库塔方程：累计截断误差(Δx)^3

适用于精度较低的情形

ode113

计算时间比ode45短

刚性ode求解命令

ode23t

梯形算法

适度刚性情形

ode15s

多步法：Gear’s反向数值微分：精度中等

若ode45失效时，可以尝试使用

ode23s

一步法：2阶Rosebrock算法：精度低

当精度较低时，计算时间比ode15s短

ode23tb

梯形算法：精度低

当精度较低时，计算时间比ode15s短

其中，ode45求解器属于变步长的一种，采用Runge-Kutta算法；其他采用相同算法的变步长求解器还有ode23。ode45表示采用四阶-五阶Runge-Kutta算法，它用4阶方法提供候选解，5阶方法控制误差，是一种自适应步长（变步长）的常微分方程数值解法，其整体截断误差为(Δx)^5。解决的是Nonstiff(非刚性)常微分方程。

ode45是解决数值解问题的首选方法，若长时间没结果，应该就是刚性的，可换用ode15s试试。

下面将以ode45为例具体介绍函数的使用方法。

1)函数格式

[T,Y] = ode45(‘odefun’,tspan,y0)

[T,Y] = ode45(‘odefun’,tspan,y0,options)

[T,Y,TE,YE,IE] = ode45(‘odefun’,tspan,y0,options)

sol = ode45(‘odefun’,[t0 tf],y0...)

其中: odefun是函数句柄,可以是函数文件名,匿名函数句柄或内联函数名；

tspan 是求解区间 [t0 tf]，或者一系列散点[t0,t1,...,tf]；

y0 是初始值向量

T 返回列向量的时间点

Y 返回对应T的求解列向量

options 是求解参数设置,可以用odeset在计算前设定误差,输出参数,事件等

TE 事件发生时间

YE 事件发生时之答案

IE 事件函数消失时之指针i

2)微分方程标准化

利用ode45求解高阶微分方程时，需要做变量替换。下面说明替换的基本思路。

微分方程为

初始条件

首先做变量替换

原微分方程可以转换为下面的微分方程组的格式:

下面就可以利用转换好的微分方程组来编写odefun函数。

3）例程

例3.1（编写odefun函数）

在matlab中新建脚本文件，编写函数如下：

本例中只需在例3.1的基础上编写主函数，加上求解区间和边值条件即可。需要注意的是，ode45的运行结果以列向量形式给出。因此在本例中，x的第一列为y，第二列为y’。如果遇到变量不是列向量形式的，可以考虑利用reshape函数做矩阵变换。

则，plot(t,x(:,1))画出来的是x的第一列数据，即为y；

plot(t,x(:,2))画出来的是x的第二列数据，即为y’；

三、总结

在使用matlab中，如遇到命令格式记不清楚等情况，建议直接在命令行输入指令’help+函数名称’，如，在matlab命令窗口输入help dsolve后，显示如下：

参考：

1、https://jingyan.baidu.com/article/e52e36154448e940c60c51aa.html

3、https://wenku.baidu.com/view/45a0a0b54b73f242326c5f7f.html


展开全文
• 论文清单 基于ODE的深度学习分析 论文清单 计算机视觉论文（图像处理） 物理深度学习 论文清单
• 交叉开关-ODE_RNN ODE-RNN的忆阻器交叉开关实现
• eclipsewin32位ODE

2018-11-25 01:36:46
eclipsewin32位ODE
• -<code>owl-ode.0.0.9</code>: Owl's ODE solvers -<code>owl-ode-sundials.0.0.9</code>: Owl's ODE solvers, interface with SundialsML <ul><li>Homepage: https://github.com/owlbarn/owl_ode</li><li>...
• MATLAB之ODE

千次阅读 2020-12-02 16:02:16
MATLAB之ODE 一、简介 斜体样式在工程和计算中常常需要求解微分方程，但微分方程的解析解通常很难得到，...Matlab中求微分方程数值解的函数有七个：ode45，ode23，ode113，ode15s，ode23s，ode23t，ode23tb。 ode是Mat
MATLAB之ODE
一、简介

在工程和计算中常常需要求解微分方程，但微分方程的解析解通常很难得到，所以一种退而求其次的方法就是求其数值解。这里是使用Matlab中的ode45求解常微分方程数值解的简单说明。具体可使用"help ode45"命令查看它的帮助文档。
ode45，常微分方程的数值求解。MATLAB提供了求常微分方程数值解的函数。
Matlab中求微分方程数值解的函数有七个：ode45，ode23，ode113，ode15s，ode23s，ode23t，ode23tb。
ode是Matlab专门用于解微分方程的功能函数。该求解器有变步长（variable-step）和定步长（fixed-step）两种类型。不同类型有着不同的求解器，其中ode45求解器属于变步长的一种，采用Runge-Kutta算法；其他采用相同算法的变步长求解器还有ode23。
ode45表示采用四阶-五阶Runge-Kutta算法，它用4阶方法提供候选解，5阶方法控制误差，是一种自适应步长（变步长）的常微分方程数值解法，其整体截断误差为(Δx)^5。解决的是Nonstiff(非刚性)常微分方程。

二、用法

[T,Y] = ode45(odefun,tspan,y0)
odefun 是函数句柄，可以是函数文件名，匿名函数句柄或内联函数名
tspan 是区间 [t0 tf] 或者一系列散点[t0,t1,…,tf]
y0 是初始值向量
T 返回列向量的时间点
Y 返回对应T的求解列向量

三、举例
假如我们要求解如下方程组，它描述的是无外力作用下的刚体运动：
y_1'= y_2*y_3    y_1(0)=0
y_2'= -y_1*y_3    y_2(0)=1
y_3'= -0.51*y_1*y_2    y_3(0)=1

首先创建一个函数文件，文件名为odefun.m，代码如下：
% odefun.m
function dy = odefun(t,y)
dy = zeros(3,1);    % a column vector
dy(1) = y(2) * y(3);
dy(2) = -y(1) * y(3);
dy(3) = -0.51 * y(1) * y(2);
end

然后创建命令文件，文件名为testode45.m，代码如下：
% testode45.m
% 清空所有变量
clear
% 清空屏幕
clc

% 时间跨度取0-12，可以空格分隔，也可以用逗号分隔
tspan = [0,12];
% 初始值
y0 = [0,1,1];
% 调用语句
[T,Y] = ode45( @odefun, tspan, y0 );
% 绘图
plot(T,Y(:,1),'-',T,Y(:,2),'-.',T,Y(:,3),'.')
legend('x','y','z')

最后运行testode45.m文件，就可以得到所求方程的图像：


展开全文
• -<code>owl-ode.0.1.0</code>: Owl's ODE solvers -<code>owl-ode-sundials.0.1.0</code>: Owl's ODE solvers, interface with SundialsML <ul><li>Homepage: https://github.com/owlbarn/owl_ode</li><li>...
• Rewriting the ODE

2020-12-30 06:26:56
<div><p>Using the ODE based on XUL files didn't work for me after many hours of research. <p>So I started to develop a new ODE written in python3. Hopefully this will make scripting really easy. ...
• <p><code>integrate_ode_bdf</code> does not handle errors properly. There are some errors from within the integrator that crashes CmdStan, which will probably crash R through RStan. <p><em>From -...
• 经典ODE教程

2015-03-29 10:15:38
大牛所做的非常经典的ode教程，含各种高级ode内容，值得拥有~~~

2020-12-26 13:14:11
ODE团队致力于服务未来“加密数字经济社会”，团队及创始人有着非常丰富的区块链技术开发以及市场运营经验，ODE技术团队在采矿，监管和创新技术应用方面拥有良好的技术水平和实践经验。 <h3>...
• 高效液相色谱－电喷雾检测器测定ODE-TFV中ODE残留量，周洁，姜宏，目的：建立测定替诺福韦十八烷氧乙基单酯衍生物（ODE-TFV）中十八烷氧乙醇（ODE）含量的高效液相色谱-电喷雾检测器的方法。方法：采�
• m trying to use ODE fitting when my data are not directly linked to an ode variable: + y : variable of an ode model with some kind of parameters to optimize + z_data = f(y,params) where:...
• ode_rnn.zip

2020-02-12 10:56:46
用深度学习建模任何常微分模型。神经常微分方程（Neural ODE），将神经网络与常微分方程结合在一起，用ODE来做预测。不是逐层更新隐藏层，而是用神经网络来指定它们的衍生深度，用ODE求解器自适应地计算输出。
• <div><p>Hi!...in a generic way or is the library not designed to handle this kind of ODE systems? <p>Greets Janick</p><p>该提问来源于开源项目：headmyshoulder/odeint-v2</p></div>
• matlab开发-ode86

2019-08-25 05:33:01
matlab开发-ode86。ODE86整合了一个严格公差下的常微分方程系统。
• Vid-ODE-官方PyTorch实施 该存储库提供了以下论文的官方PyTorch实现： Vid-ODE：具有神经常微分方程的连续时间视频生成 1 ， 1 ， 1 ， 1 ， 2 ， 3 ， 1 1个KAIST， 2个Google Research， 3个Lawrence Livermore ...
• The ODE benchmarks do not run under Pycket: <pre><code> can't find module #%foreign for '_int8 while executing: _int8 in module: unsafe </code></pre>该提问来源于开源项目：pycket/...
• Ode ts parameters

2021-01-01 16:59:53
<p>Allow <code>ts</code> of ODE integration functions to be <code>var</code>. This can be used to make inference on observation time in models involving ODEs. <p>The sensitivity with respect to <code>...
• Remove ode4

2020-11-29 09:37:26
The other file <code>SpringFlamingoPlant.m</code> also calls <code>ode4</code>. It should be removed also, as mentioned in #2814 . <p>This change is ...
• Solving ODE system

2020-12-26 20:15:32
I am trying to solve ode system d2y/d2x=6x and solution y=x^3 and dy/dx=2x with solution y=x^2. But I am unable to solve it. Thanks in advance.</p><p>该提问来源于开源项目：...
• <p>There is a memory problem with the ~<code>coupled_ode_system~ <code>coupled_ode_system</code> test; it is indexing past the end of a <code>std::vector</code>. I've only verified that this ...

...