double
シンボリック値を MATLAB の倍精度に変換
説明
は、シンボリック値 d = double(s)s を倍精度に変換します。シンボリック値の倍精度への変換は、MATLAB® 関数でシンボリック値を受け取らない場合に役立ちます。シンボリック数と倍精度数の違いについては、数値演算またはシンボリック演算の選択を参照してください。
例
double を使用してシンボリック数を倍精度に変換します。シンボリック数は厳密ですが、倍精度数には丸め誤差があります。
と をシンボリック型から倍精度に変換します。
symN = sym([pi 1/3])
symN =
doubleN = double(symN)
doubleN = 1×2
3.1416 0.3333
丸め誤差については、丸め誤差の認識と回避を参照してください。
vpaで作成される可変精度の数値はシンボリック値です。MATLAB 関数でシンボリック値を受け取らない場合、double を使用して可変精度を倍精度に変換します。
と を可変精度から倍精度に変換します。
vpaN = vpa([pi 1/3])
vpaN =
doubleN = double(vpaN)
doubleN = 1×2
3.1416 0.3333
行列 symM のシンボリック数を、double を使用して倍精度数に変換します。
a = sym(sqrt(2)); b = sym(2/3); symM = [a b; a*b b/a]
symM =
doubleM = double(symM)
doubleM = 2×2
1.4142 0.6667
0.9428 0.4714
内部桁落ちや丸め誤差の影響を受けるシンボリック式を変換する場合、数値変換の前に、digitsを使用して作業精度を引き上げます。
数値的に不安定な式 Y を double を使用して変換します。次に、digits を使用して精度を 100 桁に引き上げ、再度 Y を変換します。低い精度の変換が正確ではないのに対し、こうした高い精度の変換は正確です。
Y = ((exp(sym(200)) + 1)/(exp(sym(200)) - 1)) - 1; lowPrecisionY = double(Y)
lowPrecisionY = 0
digitsOld = digits(100); highPrecisionY = double(Y)
highPrecisionY = 2.7678e-87
digits を使用して古い精度に戻し、計算を続けます。
digits(digitsOld)
solve を使用して三角関数方程式 を解きます。完全解、解で使用されているパラメーター、およびそれらのパラメーターの条件を返すように、ReturnConditions オプションを true に設定します。
syms x
eqn = sin(2*x) + cos(x) == 0;
[solx,params,conds] = solve(eqn,x,ReturnConditions=true)solx =
params =
conds =
ソルバーは、このパラメーターの変数 を MATLAB® ワークスペースに作成しません。この変数を作成します。subs を使用して の解を求めます。
syms k
sols_k2 = subs(solx,k,2)sols_k2 =
正確なシンボリック数が解として得られます。これらの数値を倍精度の数値に変換します。
doublesols_k2 = double(sols_k2)
doublesols_k2 = 3×1
7.8540
12.0428
16.2316
を表すシンボリック式 S を作成します。ここで、 は 2 行 2 列のシンボリック行列変数です。
syms A 2 matrix S = A*A - 2*A + eye(2)
S =
にシンボリック数 を代入します。
Aval = [cos(sym(pi)/5) sin(pi/4); -1 0]; symS = subs(S,A,Aval)
symS =
結果を倍精度の行列に変換します。
doubleS = double(symS)
doubleS = 2×2
-0.6706 -0.8422
1.1910 0.2929
入力引数
バージョン履歴
R2006a より前に導入数値のシンボリック行列変数 (symmatrix 型) を double 型の倍精度行列に変換できます。例については、数値のシンボリック行列変数から倍精度への変換を参照してください。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)