# @named
重写或命名系统
函数库: TySymbolicMath
# 语法
@named y = foo(x)
@named y[1:10] = foo(x)
@named y 1:10 i -> foo(x*i)
@named sysname
# 说明
将@named y = foo(x) 重写为 y = foo(x; name=:y)。示例
利用@named对系统进行命名。示例
# 示例
重写函数
using TySymbolicMath
using ModelingToolkit
foo(i; name) = i, name
foo (generic function with 1 method)
x = 41
x = 41
@named y = foo(x)
(41, :y)
系统命名
创建参数,自变量及状态变量
using TySymbolicMath
using ModelingToolkit
@parameters σ ρ β
@variables t x(t) y(t) z(t)
3-element Vector{Num}:
σ
ρ
β
4-element Vector{Num}:
t
x(t)
y(t)
z(t)
创建微分方法
D = Differential(t)
D = (::Differential) (generic function with 3 methods)
创建方程
eqs = [D(x) ~ σ*(y-x),
D(y) ~ x*(ρ-z)-y,
D(z) ~ x*y - β*z]
eqs = 3-element Vector{Equation}:
Differential(t)(x(t)) ~ (-x(t) + y(t))*σ
Differential(t)(y(t)) ~ -y(t) + x(t)*(-z(t) + ρ)
Differential(t)(z(t)) ~ x(t)*y(t) - z(t)*β
利用@named 和ODESystem函数将方程形式的向量转换为常微分方程系统
@named ode = ODESystem(eqs,t,[x,y,z],[σ,ρ,β])
ode = Model ode with 3 equations
States (3):
x(t)
y(t)
z(t)
Parameters (3):
σ
ρ
β