Matlab 如何缩短这个符号表达式?

Matlab 如何缩短这个符号表达式?,matlab,symbolic-math,Matlab,Symbolic Math,下面的符号表达式是一些问题的答案: syms x y; F = (6006059164170857*x^4)/36028797018963968 ... - (3741993627723215*x^3*y)/144115188075855872 ... - (3786059161694655*x^3)/576460752303423488 ... + (2057823154876729*x^2*y^2)/9007199254740992 ... + (780470

下面的符号表达式是一些问题的答案:

syms x y;
F = (6006059164170857*x^4)/36028797018963968 ...
    - (3741993627723215*x^3*y)/144115188075855872 ...
    - (3786059161694655*x^3)/576460752303423488 ...
    + (2057823154876729*x^2*y^2)/9007199254740992 ...
    + (7804706423002791*x^2*y)/36028797018963968 ...
    - (1579656551431947*x^2)/4503599627370496 ...
    - (5176864966130107*x*y^3)/576460752303423488 ...
    - (3350671128443929*x*y^2)/288230376151711744 ...
    - (2340405747630269*x*y)/72057594037927936 ...
    - (3122104315900301*x)/1152921504606846976 ...
    + (1757149312773205*y^4)/36028797018963968 ...
    - (5692299995057083*y^3)/576460752303423488 ...
    + (4054023049400589*y^2)/144115188075855872 ...
    - (434917661837037*y)/2251799813685248 ...
    - 2254148116991025/18014398509481984;
如您所见,它太长,无法读取,如何缩短它以便于读取?

将尽可能进行数值计算,并以定义的精度返回结果

有关符号表达式的latex表示,请参见

digits(2) % Two digits precision
latex(vpa(F))

0.17\, x^4 - 0.026\, x^3\, y - \left(6.6\cdot 10^{-3}\right)\, x^3 + 0.23\, x^2\, y^2 + 0.22\, x^2\, y - 0.35\, x^2 - \left(9.0\cdot 10^{-3}\right)\, x\, y^3 - 0.012\, x\, y^2 - 0.032\, x\, y - \left(2.7\cdot 10^{-3}\right)\, x + 0.049\, y^4 - \left(9.9\cdot 10^{-3}\right)\, y^3 + 0.028\, y^2 - 0.19\, y - 0.13
并在命令窗口中进行更好的显示

将尽可能进行数值计算,并以定义的精度返回结果

有关符号表达式的latex表示,请参见

digits(2) % Two digits precision
latex(vpa(F))

0.17\, x^4 - 0.026\, x^3\, y - \left(6.6\cdot 10^{-3}\right)\, x^3 + 0.23\, x^2\, y^2 + 0.22\, x^2\, y - 0.35\, x^2 - \left(9.0\cdot 10^{-3}\right)\, x\, y^3 - 0.012\, x\, y^2 - 0.032\, x\, y - \left(2.7\cdot 10^{-3}\right)\, x + 0.049\, y^4 - \left(9.9\cdot 10^{-3}\right)\, y^3 + 0.028\, y^2 - 0.19\, y - 0.13
并在命令窗口中进行更好的显示


首先,您可能会得到像thin这样的长整数,因为您没有以最佳方式创建符号方程。比较

sym(exp(pi))

通常,如果符号方程中有任何数值常量以复杂方式变换(例如,取它们的指数),则需要显式定义它们。如果常数在传递给函数之前被乘以或添加到符号变量中,则可能不需要这样做

此外,可以使用和函数尝试创建更好的表达式版本。就你而言:

G = simple(F)
返回

(192193893253467424*x^4 - 29935949021785720*x^3*y ...
- 7572118323389310*x^3 + 263401363824221312*x^2*y^2 ...
+ 249750605536089312*x^2*y - 404392077166578432*x^2 ...
- 10353729932260214*x*y^3 - 13402684513775716*x*y^2 ...
- 37446491962084304*x*y - 3122104315900301*x ...
+ 56228778008742560*y^4 - 11384599990114166*y^3 ...
+ 32432184395204712*y^2 - 222677842860562944*y ...
- 144265479487425600)/1152921504606846976

稍微短一点(如果你按照我上面的建议做可能会更好)。如果需要,您可以从那里转到@pm89的优秀建议。

您可能首先得到了像thin这样的长整数,因为您没有以最佳方式创建符号方程。比较

sym(exp(pi))

通常,如果符号方程中有任何数值常量以复杂方式变换(例如,取它们的指数),则需要显式定义它们。如果常数在传递给函数之前被乘以或添加到符号变量中,则可能不需要这样做

此外,可以使用和函数尝试创建更好的表达式版本。就你而言:

G = simple(F)
返回

(192193893253467424*x^4 - 29935949021785720*x^3*y ...
- 7572118323389310*x^3 + 263401363824221312*x^2*y^2 ...
+ 249750605536089312*x^2*y - 404392077166578432*x^2 ...
- 10353729932260214*x*y^3 - 13402684513775716*x*y^2 ...
- 37446491962084304*x*y - 3122104315900301*x ...
+ 56228778008742560*y^4 - 11384599990114166*y^3 ...
+ 32432184395204712*y^2 - 222677842860562944*y ...
- 144265479487425600)/1152921504606846976
稍微短一点(如果你按照我上面的建议做可能会更好)。如果需要,您可以从那里转到@pm89的优秀建议。

做得很好。做得很好。