gpt4 book ai didi

Matlab 符号工具箱 : What's wrong with my code?

转载 作者:行者123 更新时间:2023-12-04 07:09:42 24 4
gpt4 key购买 nike

我正在尝试使用 Matlab 的符号工具箱求解未知数 x、y、z 中的三个联立非线性方程。以下代码有什么问题?

solve( '(x/4 + y/2 + z/4)*(1/(8*x) + 1/(16*y) + 1/(8*z))  = 0.5774',  ...
'(x/4 + y/4 + z/2)*(1/(4*x) + 1/(16*y) + 1/(16*z)) = 0.5774', ...
'(x/2 + y/4 + z/4)*(1/(8*x) + 1/(8*y) + 1/(16*z)) = 0.5774' )

我收到以下错误:
??? Error using ==> subsref
Index exceeds matrix dimensions.

Error in ==> sym.subsref at 16
y = builtin('subsref',struct(x),a);

Error in ==> solve at 191
S.(char(symvars(j))) = R(:,j);

我正在使用 Matlab 版本 7.7.0.471。我对符号工具箱一点也不熟悉。我错过了什么?

我是否对符号引擎期望过高?或者,有没有更好的方法来解决上述方程? (数值解就行了。)

最佳答案

您的语法是正确的,但我认为您的方程组没有解决方案。当我通过 Mathematica 推送它们时,它返回一个空列表,通常表明没有解决方案。

您使用的 MATLAB 版本使用 MuPad 作为符号计算引擎,但他们曾经使用 Maple。我有符号工具箱的 Maple 版本的最新版本,当我将你的表达放入其中时,我得到

Warning: Explicit solution could not be found.
In solve at 140

ans =

[ empty sym ]

所以我建议这个方程组没有解决方案,新的 Mupad 符号引擎根本不能非常优雅地处理这个事实。

更新:无论我选择什么起始值,尝试在 Mathematica 中以数值方式解决这个问题都会导致对奇异 Jacobian 的提示。我只是不知道如何证明你的方程没有解,但我强烈怀疑是这种情况。

关于Matlab 符号工具箱 : What's wrong with my code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/577098/

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