シンボリック変数で定義された関数をx
配列に変換したい。私のMWEは:
syms x
f = x.^2;
x = linspace(-10,10,100);
f1 = double(f);
double
コマンドを使おうとしましたが、エラーが発生します
Error using symengine
Unable to convert expression into double array.
Error in sym/double (line 692)
Xstr = mupadmex('symobj::double', S.s, 0);
これが何を意味し、どのように解決するのかわかりません。
x
をdouble()
使用して適用する前に、指定された値に置き換えてくださいsubs()
vpa()
同様の機能を持っています
vpa()
と比較して使用する利点double()
は、自分で小数精度を設定できることです。
コードは次のとおりです
syms x
f = x.^2;
x = linspace(-10,10,10);
f1 = subs(f);
f2 = double(f1)
f3 = vpa(f1, 8)
double()
出力:小数点以下の固定桁数f2 = [100.0000 60.4938 30.8642 11.1111 1.2346 1.2346 11.1111
30.8642 60.4938 100.0000]
vpa()
出力:小数点以下の桁数を調整可能、ここでは精度を8に調整f3 =[ 100.0, 60.493827, 30.864198, 11.111111, 1.2345679, 1.2345679, 11.111111,
30.864198, 60.493827, 100.0]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加