主要内容gydF4y2Ba

odeToVectorFieldgydF4y2Ba

将微分方程的一阶降为一阶gydF4y2Ba

万博1manbetx对字符向量或字符串输入的支持将在未来的版本中移除。相反,使用gydF4y2Ba信谊gydF4y2Ba来声明变量,并替换输入,例如gydF4y2BaodeToVectorField(“D2y = x”)gydF4y2Ba与gydF4y2Basyms y(x), odeToVectorField(diff(y,x,2) == x)gydF4y2Ba.gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

VgydF4y2Ba= odeToVectorField (gydF4y2Baeqn1,…,eqnNgydF4y2Ba)gydF4y2Ba转换高阶微分方程gydF4y2Baeqn1,…,eqnNgydF4y2Ba以符号向量的形式返回到一阶微分方程组。gydF4y2Ba

例子gydF4y2Ba

[gydF4y2BaVgydF4y2Ba,gydF4y2Ba年代gydF4y2Ba) = odeToVectorField (gydF4y2Baeqn1,…,eqnNgydF4y2Ba)gydF4y2Ba转换gydF4y2Baeqn1,…,eqnNgydF4y2Ba并返回两个符号向量。第一个向量gydF4y2BaVgydF4y2Ba与前面语法的输出相同。第二个向量gydF4y2Ba年代gydF4y2Ba显示为获得所作的替换gydF4y2BaVgydF4y2Ba.gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

定义二阶微分方程:gydF4y2Ba

dgydF4y2Ba 2gydF4y2Ba ygydF4y2Ba dtgydF4y2Ba 2gydF4y2Ba +gydF4y2Ba ygydF4y2Ba 2gydF4y2Ba tgydF4y2Ba =gydF4y2Ba 3.gydF4y2Ba tgydF4y2Ba .gydF4y2Ba

将二阶微分方程转化为一阶微分方程组。gydF4y2Ba

信谊gydF4y2Bay (t)gydF4y2Bay = 2, y^2*t = 3*t;V = odeToVectorField (eqn)gydF4y2Ba
V =gydF4y2Ba

(gydF4y2Ba YgydF4y2Ba 2gydF4y2Ba 3.gydF4y2Ba tgydF4y2Ba -gydF4y2Ba tgydF4y2Ba YgydF4y2Ba 1gydF4y2Ba 2gydF4y2Ba )gydF4y2Ba [Y (2);3 * t - t * Y (1) ^ 2)gydF4y2Ba

V的元素表示一阶微分方程组,其中gydF4y2BaV(我)gydF4y2Ba=gydF4y2Ba YgydF4y2Ba 我gydF4y2Ba ′gydF4y2Ba 和gydF4y2Ba YgydF4y2Ba 1gydF4y2Ba =gydF4y2Ba ygydF4y2Ba .这里的输出gydF4y2BaVgydF4y2Ba代表了这些方程:gydF4y2Ba

dgydF4y2Ba YgydF4y2Ba 1gydF4y2Ba dtgydF4y2Ba =gydF4y2Ba YgydF4y2Ba 2gydF4y2Ba

dYgydF4y2Ba 2gydF4y2Ba dtgydF4y2Ba =gydF4y2Ba 3.gydF4y2Ba tgydF4y2Ba -gydF4y2Ba tgydF4y2Ba YgydF4y2Ba 1gydF4y2Ba 2gydF4y2Ba .gydF4y2Ba

输入输出关系请参见gydF4y2Ba算法gydF4y2Ba.gydF4y2Ba

当降低微分方程的阶数时,返回替换gydF4y2BaodeToVectorFieldgydF4y2Ba通过指定第二个输出参数。gydF4y2Ba

信谊gydF4y2Baf (t)gydF4y2Bag (t)gydF4y2BaEqn1 = diff(g) = g-f;Eqn2 = diff(f,2) == g+f;= [eqn1 eqn2];[V S] = odeToVectorField(命令)gydF4y2Ba
V =gydF4y2Ba

(gydF4y2Ba YgydF4y2Ba 2gydF4y2Ba YgydF4y2Ba 1gydF4y2Ba +gydF4y2Ba YgydF4y2Ba 3.gydF4y2Ba YgydF4y2Ba 3.gydF4y2Ba -gydF4y2Ba YgydF4y2Ba 1gydF4y2Ba )gydF4y2Ba [Y (2);(1) + Y (3);(3) - Y (1)]gydF4y2Ba

S =gydF4y2Ba

(gydF4y2Ba fgydF4y2Ba DfgydF4y2Ba ggydF4y2Ba )gydF4y2Ba [f;Df;g)gydF4y2Ba

的元素gydF4y2BaVgydF4y2Ba表示一阶微分方程组,其中gydF4y2BaV(我)gydF4y2Ba=gydF4y2Ba YgydF4y2Ba 我gydF4y2Ba ′gydF4y2Ba .输出S表示正在进行的替换,S[1] =gydF4y2Ba YgydF4y2Ba 1gydF4y2Ba =gydF4y2Ba fgydF4y2Ba S [2] =gydF4y2Ba YgydF4y2Ba 2gydF4y2Ba =gydF4y2Ba差异(f)gydF4y2Ba, S[3] =gydF4y2Ba YgydF4y2Ba 3.gydF4y2Ba =gydF4y2Ba ggydF4y2Ba .gydF4y2Ba

对一个高阶微分方程进行数值求解,通过降低方程的阶数,生成MATLAB®函数句柄,然后使用gydF4y2Ba数值gydF4y2Ba函数。gydF4y2Ba

将下列二阶微分方程转化为一阶微分方程组,用gydF4y2BaodeToVectorFieldgydF4y2Ba.gydF4y2Ba

dgydF4y2Ba 2gydF4y2Ba ygydF4y2Ba dgydF4y2Ba tgydF4y2Ba 2gydF4y2Ba =gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba -gydF4y2Ba ygydF4y2Ba 2gydF4y2Ba )gydF4y2Ba dygydF4y2Ba dtgydF4y2Ba -gydF4y2Ba ygydF4y2Ba .gydF4y2Ba

信谊gydF4y2Bay (t)gydF4y2Badiff(y,2) = (1-y^2)*diff(y)-y;V = odeToVectorField (eqn)gydF4y2Ba
V =gydF4y2Ba

(gydF4y2Ba YgydF4y2Ba 2gydF4y2Ba -gydF4y2Ba YgydF4y2Ba 1gydF4y2Ba 2gydF4y2Ba -gydF4y2Ba 1gydF4y2Ba YgydF4y2Ba 2gydF4y2Ba -gydF4y2Ba YgydF4y2Ba 1gydF4y2Ba )gydF4y2Ba [Y (2);- (y (1)^2 - 1)* y (2) - y (1)gydF4y2Ba

生成一个MATLAB函数句柄gydF4y2BaVgydF4y2Ba通过使用gydF4y2BamatlabFunctiongydF4y2Ba.gydF4y2Ba

M = matlabFunction (V,gydF4y2Ba“var”gydF4y2Ba, {gydF4y2Ba“t”gydF4y2Ba,gydF4y2Ba“Y”gydF4y2Ba})gydF4y2Ba
M =gydF4y2Bafunction_handle与价值:gydF4y2Ba@ (t, Y) [Y (2); - (Y(1) ^ 2 - 1.0)。* Y (2) - Y (1)]gydF4y2Ba

指定解决时间间隔gydF4y2Ba20 [0]gydF4y2Ba初始条件是gydF4y2Ba ygydF4y2Ba ′gydF4y2Ba (gydF4y2Ba 0gydF4y2Ba )gydF4y2Ba =gydF4y2Ba 2gydF4y2Ba 和gydF4y2Ba ygydF4y2Ba ′gydF4y2Ba ′gydF4y2Ba (gydF4y2Ba 0gydF4y2Ba )gydF4y2Ba =gydF4y2Ba 0gydF4y2Ba .利用。求解一阶微分方程组gydF4y2Ba数值gydF4y2Ba.gydF4y2Ba

区间= [0 20];init = [2 0];ySol =数值(M,间隔,yInit);gydF4y2Ba

接下来,绘制解决方案gydF4y2Ba ygydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 时间间隔内gydF4y2Ba tgydF4y2Ba =gydF4y2Ba20 [0]gydF4y2Ba.生成gydF4y2BatgydF4y2Ba通过使用gydF4y2BalinspacegydF4y2Ba.评估解决方案gydF4y2Ba ygydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba ,它是第一个索引gydF4y2BaySolgydF4y2Ba,通过调用gydF4y2Ba德瓦尔gydF4y2Ba函数的索引为1。用以下方法绘制解决方案gydF4y2Ba情节gydF4y2Ba.gydF4y2Ba

tValues = linspace (0, 20100);yValues =德瓦尔(ySol tValues 1);情节(tValues yValues)gydF4y2Ba

图中包含一个坐标轴。轴包含一个线型对象。gydF4y2Ba

二阶微分方程的转换gydF4y2Ba ygydF4y2Ba ′gydF4y2Ba ′gydF4y2Ba (gydF4y2Ba xgydF4y2Ba )gydF4y2Ba =gydF4y2Ba xgydF4y2Ba 在初始条件下gydF4y2Ba ygydF4y2Ba (gydF4y2Ba 0gydF4y2Ba )gydF4y2Ba =gydF4y2Ba 一个gydF4y2Ba 对于一阶系统。gydF4y2Ba

信谊gydF4y2Bay (x)gydF4y2Ba一个gydF4y2Bay = diff(y,x,2);Cond = y(0) == a;V = odeToVectorField (eqn,气孔导度)gydF4y2Ba
V =gydF4y2Ba

(gydF4y2Ba YgydF4y2Ba 2gydF4y2Ba xgydF4y2Ba )gydF4y2Ba [Y (2);x]gydF4y2Ba

输入参数gydF4y2Ba

全部折叠gydF4y2Ba

高阶微分方程,指定为符号微分方程或符号微分方程数组。使用gydF4y2Ba==gydF4y2Ba运算符来创建一个方程。使用gydF4y2BadiffgydF4y2Ba函数表示微分。例如,代表gydF4y2BadgydF4y2Ba2gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba)/gydF4y2BadtgydF4y2Ba2gydF4y2Ba=gydF4y2BatgydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba)gydF4y2Ba输入以下命令。gydF4y2Ba

Syms y(t) eqn = diff(y,2) == t*y;gydF4y2Ba

输出参数gydF4y2Ba

全部折叠gydF4y2Ba

一阶微分方程,作为符号表达式或符号表达式的向量返回。这个向量的每一个元素都是一阶微分方程的右边gydF4y2BaYgydF4y2Ba[gydF4y2Ba我gydF4y2Ba]“=gydF4y2BaVgydF4y2Ba[gydF4y2Ba我gydF4y2Ba]gydF4y2Ba.gydF4y2Ba

一阶方程的替换,作为符号表达式的向量返回。向量的元素表示替换,这样gydF4y2Ba(1) = Y [1]gydF4y2Ba,gydF4y2Ba(2) = Y [2]gydF4y2Ba,……gydF4y2Ba

提示gydF4y2Ba

  • 为了求解一阶微分方程组,生成MATLABgydF4y2Ba®gydF4y2Ba函数处理使用gydF4y2BamatlabFunctiongydF4y2Ba与gydF4y2BaVgydF4y2Ba作为输入。然后,使用生成的MATLAB函数句柄作为MATLAB数值求解器的输入gydF4y2Baode23gydF4y2Ba或gydF4y2Ba数值gydF4y2Ba.gydF4y2Ba

  • odeToVectorFieldgydF4y2Ba只能转换准线性微分方程。也就是说,最高阶导数必须是线性的。例如,gydF4y2BaodeToVectorFieldgydF4y2Ba可以转换gydF4y2BaygydF4y2Ba*gydF4y2BaygydF4y2Ba”(gydF4y2BatgydF4y2Ba) = -gydF4y2BatgydF4y2Ba2gydF4y2Ba因为它可以写成gydF4y2BaygydF4y2Ba”(gydF4y2BatgydF4y2Ba) = -gydF4y2BatgydF4y2Ba2gydF4y2Ba/gydF4y2BaygydF4y2Ba.但是,它不能转换gydF4y2BaygydF4y2Ba”(gydF4y2BatgydF4y2Ba)gydF4y2Ba2gydF4y2Ba= -gydF4y2BatgydF4y2Ba2gydF4y2Ba或gydF4y2Basin (gydF4y2BaygydF4y2Ba”(gydF4y2BatgydF4y2Ba)) = -gydF4y2BatgydF4y2Ba2gydF4y2Ba.gydF4y2Ba

算法gydF4y2Ba

将一个gydF4y2BangydF4y2Ba阶微分方程gydF4y2Ba

一个gydF4y2Ba ngydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba ygydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba +gydF4y2Ba 一个gydF4y2Ba ngydF4y2Ba −gydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba ygydF4y2Ba (gydF4y2Ba ngydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba +gydF4y2Ba ...gydF4y2Ba +gydF4y2Ba 一个gydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba ygydF4y2Ba ′gydF4y2Ba +gydF4y2Ba 一个gydF4y2Ba 0gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba ygydF4y2Ba +gydF4y2Ba rgydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba =gydF4y2Ba 0gydF4y2Ba

转化为一阶微分方程组,gydF4y2BaodetovectorfieldgydF4y2Ba使得这些替换。gydF4y2Ba

YgydF4y2Ba 1gydF4y2Ba =gydF4y2Ba ygydF4y2Ba YgydF4y2Ba 2gydF4y2Ba =gydF4y2Ba ygydF4y2Ba ′gydF4y2Ba YgydF4y2Ba 3.gydF4y2Ba =gydF4y2Ba ygydF4y2Ba ”gydF4y2Ba ...gydF4y2Ba YgydF4y2Ba ngydF4y2Ba −gydF4y2Ba 1gydF4y2Ba =gydF4y2Ba ygydF4y2Ba (gydF4y2Ba ngydF4y2Ba −gydF4y2Ba 2gydF4y2Ba )gydF4y2Ba YgydF4y2Ba ngydF4y2Ba =gydF4y2Ba ygydF4y2Ba (gydF4y2Ba ngydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba

用新的变量,它把方程改写成gydF4y2BangydF4y2Ba一阶微分方程:gydF4y2Ba

YgydF4y2Ba 1gydF4y2Ba ′gydF4y2Ba =gydF4y2Ba ygydF4y2Ba ′gydF4y2Ba =gydF4y2Ba YgydF4y2Ba 2gydF4y2Ba YgydF4y2Ba 2gydF4y2Ba ′gydF4y2Ba =gydF4y2Ba ygydF4y2Ba ”gydF4y2Ba =gydF4y2Ba YgydF4y2Ba 3.gydF4y2Ba ...gydF4y2Ba YgydF4y2Ba ngydF4y2Ba −gydF4y2Ba 1gydF4y2Ba ′gydF4y2Ba =gydF4y2Ba ygydF4y2Ba (gydF4y2Ba ngydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba =gydF4y2Ba YgydF4y2Ba ngydF4y2Ba YgydF4y2Ba ngydF4y2Ba ′gydF4y2Ba =gydF4y2Ba −gydF4y2Ba 一个gydF4y2Ba ngydF4y2Ba −gydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 一个gydF4y2Ba ngydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba YgydF4y2Ba ngydF4y2Ba −gydF4y2Ba 一个gydF4y2Ba ngydF4y2Ba −gydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 一个gydF4y2Ba ngydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba YgydF4y2Ba ngydF4y2Ba −gydF4y2Ba 1gydF4y2Ba −gydF4y2Ba ...gydF4y2Ba −gydF4y2Ba 一个gydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 一个gydF4y2Ba ngydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba YgydF4y2Ba 2gydF4y2Ba −gydF4y2Ba 一个gydF4y2Ba 0gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 一个gydF4y2Ba ngydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba YgydF4y2Ba 1gydF4y2Ba +gydF4y2Ba rgydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 一个gydF4y2Ba ngydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba

odeToVectorFieldgydF4y2Ba返回这些方程的右侧作为vector的元素gydF4y2BaVgydF4y2Ba作为第二个输出的替换gydF4y2Ba年代gydF4y2Ba.gydF4y2Ba

兼容性的考虑gydF4y2Ba

全部展开gydF4y2Ba

警告从R2019b开始gydF4y2Ba

另请参阅gydF4y2Ba

|gydF4y2Ba|gydF4y2Ba|gydF4y2Ba

介绍了R2012agydF4y2Ba