解决非线性方程系统UN MATLAB



我需要使用MATLAB求解算术。为此,我提出了一个具有9个变量的6个非线性方程的系统,以便系统具有无限溶液。当使用 solve()函数时,我得到的唯一结果(因为我只得到一个解决方案)具有合理的数字,而它们都应该是整数。实际上,我已经进行了验证,并且有一个与整数的解决方案,但是我无法弄清楚如何通过功能获得该解决方案。
当我尝试将 solve()与整数变量( syms x Integer )一起使用时,希望强迫程序找到我要寻找的解决方案,MATLAB无法为系统找到解决方案。这是我使用的代码:

syms a b c d e f g h i integer;
ecuacion = solve(a*b*c==vertical(1),d*e*f==vertical(2),g*h*i==vertical(3),a*d*g==horizontal(1),b*e*h==horizontal(2),c*f*i==horizontal(3),a,b,c,d,e,f,g,h,i);
solucion = eval([ecuacion.a ecuacion.b ecuacion.c;ecuacion.d ecuacion.e ecuacion.f;ecuacion.g ecuacion.h ecuacion.i]);

有i可以帮助我解决这个问题的功能吗?还是我做错了什么?
这里有一个指向我原始帖子的西班牙语的链接,以防您想查看算术:https://es.stackoverflow.com/posts/51725/Edit

由于所有方程都是a b c = d的形式,也许您应该先考虑先进行对数:a = log(a),b = log(b),c = log(c),因此a b c = log(d)。这会将您的问题转化为线性。

最新更新