0

次の MATLAB コードがあるとします。

syms a b c1 c2

c1 = a + b + pi*b
c2 = a + b + 0.5*b

次に、c1 が評価されa + b + pi*b、c2が評価されます。a + (3*b)/2

ただし、シンボリック数だけでなく、a と b の係数の倍精度値を計算するには、MATLAB が必要です。

どうすればいいですか?a + 4.1416*bたとえば、c1 を次のように評価し、c2を次のように評価したいa+ 1.5*b

また、c1*c2、c1*5 のような演算に興味があるとします。a と b の係数を、分数のような抽象的な記号式ではなく、倍精度数として評価したいと考えています。

どうすればいいですか?

4

1 に答える 1

1

シンボリック式に正確に「倍精度」の数値を含めることはできませんが、浮動小数点数を取得することはできます。

c1 = a + b + vpa(pi)*b

また

c2 = vpa(a + b + 0.5*b)

solveやなどの一部の計算は、int内部的に正確な数値に切り替わりますが、結果は常に浮動小数点形式である必要があります。

を使用して、計算で使用される精度を変更できますdigits

digits(16) % double doesn't have more either
于 2013-03-17T10:15:25.647 に答える