Why do I get a fraction instead of a rational number when I solve two simple simultaneous equations
26 ビュー (過去 30 日間)
古いコメントを表示
These are the two equations I need to solve; for A and B, to calculate the viscosity of hydraulic fluid between to temperatures. The results are correct, but why does Matlab show them as fractions and not rational numbers?
syms A B
eqn1=A-520*B==3.7612;
eqn3=A-560*B==2.3026;
[X,Y] = equationsToMatrix([eqn1, eqn3], [A, B])
Z = linsolve(X,Y)
Z =
22723/1000
7293/200000
>> 22723/1000
ans =
22.7230
>> 7293/200000
ans =
0.0365
0 件のコメント
採用された回答
John D'Errico
2016 年 10 月 2 日
Because you are (for some irrational reason) using symbolic computations to solve a simple linear system of equations. Sort of equivalent to the use of a Mack truck to bring a single pea to Boston - massive overkill. Therefore the result is a symbolic one, and is left in symbolic form.
If you want to convert it to a floating point number, then use vpa, or use double.
3 件のコメント
Steven Lord
2020 年 12 月 20 日
If the expressions contain symbolic variables use vpa to display the approximation of the symbolic result to a specified number of decimal places.
If the expressions are symbolic representations of numbers (no symbolic variables) use double.
sqrt5 = sqrt(sym(5))
double(sqrt5)
syms x
xsqrt5 = x*sqrt5
vpa(xsqrt5)
Calling double on xsqrt5 won't work because of the presence of the x in the expression.
double(xsqrt5)
その他の回答 (1 件)
Walter Roberson
2020 年 12 月 21 日
編集済み: Walter Roberson
2020 年 12 月 21 日
Use sympref to set symbolic output to floating-point.
参考
カテゴリ
Help Center および File Exchange で Calculus についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!