gpt4 book ai didi

matlab - 使用matlabFunction定义微分方程

转载 作者:行者123 更新时间:2023-12-03 08:13:50 24 4
gpt4 key购买 nike

我正在尝试先将其放在法线中来求解微分方程,如果正确执行,则应为dx/dt = a8 1/3 x-1/3 b8,其中a8是二阶导数,b8是三阶导数。这是我的代码的一部分:

matlabFunction( [a8 +x8/3 - b8/3; a8; b8],'vars',{t,[b8;a8;x8]},'file','DE_11')

这是我得到的错误:
Error using sym/cat>checkDimensions (line 75)
CAT arguments dimensions are not consistent.

Error in sym/cat>catMany (line 38)
[resz, ranges] = checkDimensions(sz,dim);

Error in sym/cat (line 27)
ySym = catMany(dim, strs);

Error in sym/vertcat (line 19)
ySym = cat(1,args{:});

老实说,我不知道这些消息在暗示什么。我希望有人可以帮助我破译这些错误消息,并告诉我哪里出了问题。解决这些问题后,我打算使用ode45求解微分方程。

谢谢,对您的无知我深表歉意。

编辑:好的,经过漫无目的的尝试后,我得以使它“工作”。这是我将其更改为:
matlabFunction([b8;a8;a8 - b8/3 - x8/3], 'vars',{t8,x8,[b8,a8]},'file','DE_11')

但是,我不确定该为什么起作用,甚至输入正确。有人可以告诉我为什么它起作用吗?我知道这[b8; a8; a8-b8/3-x8/3]表示包含我未知函数的列 vector ,但是我不完全理解这部分{t8,x8,[b8,a8]}。我知道我们正在定义变量,但是为什么我们使用大括号,为什么有些括在方括号中,而有些却没有呢?

最佳答案

该错误是由于

[a8 +x8/3 - b8/3; a8; b8]

因为这会尝试创建尺寸不一致的矩阵,因为第一个空格会分隔第一行中的列条目。不使用空格或运算符两侧的空格将解决此问题...
[a8 + x8/3 - b8/3; a8; b8] or [a8+x8/3-b8/3; a8; b8]

应该按预期工作。

http://www.mathworks.co.uk/help/matlab/matlab_prog/symbol-reference.html#bsgigzp-52

关于matlab - 使用matlabFunction定义微分方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22135060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com