Symplify symbolic expression instead of outputting very large denominator values

2 ビュー (過去 30 日間)
monkey_matlab
monkey_matlab 2017 年 6 月 3 日
コメント済み: Walter Roberson 2017 年 6 月 3 日
Hello,
In this code:
z = 1;
Q = z^2 -1.368*z + 0.368 + 0.368*k*z + 0.264*k
I get the answer as:
Q =
(79*k)/125 - 1/9007199254740992
Is it possible to leave the final equation like this form:
Q = 0.632*k
Thanks.

回答 (1 件)

Star Strider
Star Strider 2017 年 6 月 3 日
Use the vpa function:
Q = vpa(Q,4)
Q =
0.632*k
  3 件のコメント
Star Strider
Star Strider 2017 年 6 月 3 日
The imaginary part is essentially 0.
The only option that works is to use the children function:
syms k
Q = (79*k)/125 - 1/9007199254740992;
Q = children(Q);
Q = vpa(Q(1),4)
Q =
0.632*k
Walter Roberson
Walter Roberson 2017 年 6 月 3 日
That is not imaginary part, that is due to round-off and representation issues.
Take each of your numbers and wrap them with sym() with 'd' option. Like instead 0.368 code sym(0.368,'d')

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeConversion Between Symbolic and Numeric についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by