How to show exact answers in MATLAB

Hello everyone, I run into this exact answer problem with MATLAB pretty frequently. My problem is right now when I'm trying to do an inverse of a matrix containing square roots, it gives me answers in fractions or in decimals. I want it to show the square roots and other functions. How would I go about doing this? I've googled a while and all they say are precision values and rounding and what not, but nothing to do with these square roots.

2 件のコメント

Karan Gill
Karan Gill 2017 年 11 月 14 日
As Walter answered, use
>> inv([sqrt(sym(21))])
ans =
21^(1/2)/21
Mr.Gh
Mr.Gh 2019 年 12 月 14 日
編集済み: Mr.Gh 2019 年 12 月 14 日
Use this code to see the exact answer:
>>A = inv([sqrt(sym(21))]);
>>answer = double(A)
answer = 2.1822e-01

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

回答 (3 件)

Mahdi
Mahdi 2013 年 9 月 24 日

1 投票

Why don't you try an approach where you use square the matrix to find out what the numbers are?
For example
MatrixSquared=Matrix.^2;
Then you would be able to see which numbers were square rooted. I would also suggest placing
format rat
before the code.

1 件のコメント

Suh-Shin
Suh-Shin 2013 年 9 月 24 日
Hey, I tried your approach, but it only gives me fractions. I want MATLAB to show me square roots and powers. I tried the following:
format rat;
inv([sqrt(21)]);
it shows me fractions, but I want to see square roots

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

Matt J
Matt J 2013 年 9 月 24 日
編集済み: Matt J 2013 年 9 月 24 日

1 投票

Sounds like you're trying to do a symbolic matrix inverse operation. The Symbolic Math Toolbox will let you do that, see

6 件のコメント

Suh-Shin
Suh-Shin 2013 年 9 月 24 日
Hi
I just tried the inv you've talked about, however, when I try the following, I still do not get square roots. I want the answer to be in square roots:
inv([sqrt(21)])
Walter Roberson
Walter Roberson 2013 年 9 月 25 日
inv([sqrt(sym(21))])
Seetha Rama Raju Sanapala
Seetha Rama Raju Sanapala 2018 年 2 月 9 日
I want to get answers in fractional form for operations on fractions like 1/2 + 15/17, 2/5*3/16 etc. Which route is better - sym or format rat? Why?
Walter Roberson
Walter Roberson 2018 年 2 月 9 日
sym as early as possible, before you even do the division. For example sym(15)/sym(17). Otherwise you are losing precision in the fractions. format rat does not return the true fraction corresponding to the internal representation of the floating point numbers: format rat uses a continued fraction approach to try to find the closest fraction within a tolerance. So where true fraction might be 38183/86917, format rat might decide that 38/87 is "close enough" to display
Seetha Rama Raju Sanapala
Seetha Rama Raju Sanapala 2018 年 2 月 9 日
Great clarity, @ Walter Roberson! Thanks.
Karan Gill
Karan Gill 2018 年 2 月 13 日
To add onto Walter's reply, this topic explains differences in arithmetic.

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

Shashank Prasanna
Shashank Prasanna 2013 年 9 月 24 日

0 投票

Use format to reset your display format or choose a different display format:
>> format

1 件のコメント

Suh-Shin
Suh-Shin 2013 年 9 月 24 日
format doesn't show the answer in square roots.

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

カテゴリ

質問済み:

2013 年 9 月 24 日

編集済み:

2019 年 12 月 14 日

Community Treasure Hunt

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

Start Hunting!

Translated by