2

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

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;

如您所见,阅读时间太长,如何缩短阅读时间?

4

2 回答 2

3

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

另请参阅您的符号表达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

pretty命令窗口中更好地展示。

pretty(vpa(F))
                              3                                             3                                                    3 
        4          3     6.6 x          2  2         2           2   9.0 x y             2               2.7 x          4   9.9 y           2 
  0.17 x  - 0.026 x  y - ------ + 0.23 x  y  + 0.22 x  y - 0.35 x  - -------- - 0.012 x y  - 0.032 x y - ----- + 0.049 y  - ------ + 0.028 y  - 0.19 y - 0.13 
                             3                                            3                                 3                   3 
                           10                                           10                                10                  10
于 2013-07-13T14:48:40.937 回答
1

你可能一开始就得到了像瘦这样的长整数,因为你没有以最好的方式创建你的符号方程。比较输出

sym(exp(pi))

exp(sym(pi))

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

此外,您可以使用simplesimplify函数来尝试更好的表达式版本。在你的情况下:

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 的优秀建议。

于 2013-07-13T17:58:10.617 回答