問題タブ [symbolic-computation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
math - CAS - 二分木代替
二分木を使用せずに、コンピューター代数システム全体(代数方程式、極限、導関数、積分)を作成する合理的な方法はありますか?
c++ - SymbolicC++ でシンボリック変数を評価するにはどうすればよいですか?
私は、受講中のベクトル計算コースで使用する C++ 用のコンピューター代数ライブラリをいくつか試しています。GiNaC とSymbolicC++で実際に機能した非線形方程式に問題があります。
これは簡単な例ですが、問題は、数値に評価する方法を理解できず、おそらくそれを double または float にキャストすることです。
その出力をコピーしginsh
て貼り付けると、問題なく評価されますが、SymbolicC++ では展開された形式のままです。
私が得ている正確な出力は次のとおりです。
このような式を評価して s にキャストするにはどうすればよいdouble
ですか?
matlab - シンボリック関数を解く
私はsyms変数を使用しているので、後で計算するために関数または多項式をスクリプトファイルに保存できます。
問題は、subs を使用して syms 変数の値を関数または多項式に入れるときに、関数を完全に解決しないことです。
しかし
みたいなのが欲しい
何を使えばいいの??私を助けてください。
algorithm - 一貫性のない事実を最小限に検出して削除するアルゴリズム (おそらく PROLOG)?
次のアルゴリズムをどのようにプログラムしますか?
このような「事実」のリストを想像してみてください。文字は数値にバインドされた変数を表します。
これらの「事実」がすべて「真実」であるとは限らないことは明らかです。b=2 および z=3 の場合、b=z は不可能です。b=z または b=2 のいずれかが削除された場合、すべての事実は一貫しています。z=3 で、b=z または c=z のいずれかが削除された場合、すべての事実は一致しますが、上記よりも事実が 1 つ少なくなります。このセットには、そのような一貫したサブセットが多数含まれています。たとえば、a=1、b=2、c=3 は一貫したサブセットであり、他の多くのサブセットも同様です。
この例では、2 つの一貫したサブセットが他のどの一貫したサブセットよりも大きくなっています。
と
適切なプログラミング言語 (私は PROLOG を考えていますが、間違っているかもしれません) を使用して、一貫性のある事実と一貫性のない事実を含む大きなセットをどのように処理し、一貫性のある事実の可能な最大のサブセット (または次のような複数のサブセット) を出力しますか?上記の例)?
matlab - Matlab nchoosek は int64 と sym を使用して違いの答えを得ました
nchoosek
Matlabの関数についての質問です。
nchoosek(54,25)
54C25と同じを探したいです。答えは10^15くらいなので、本来は を使いますint64
。しかし、象徴的なものに関しては答えが間違っています。
入力:
出力:
1 つずつ異なることがわかります。私は現在 を使用しているので、これは実際には緊急の問題ではありませんsym
。しかし、誰かがなぜこれが起こるのか教えてもらえますか?
編集:
R2013aを使用しています。
を見てみるとnchoosek.m
、入力が にある場合int64
、コードは次のように単純化できることがわかります。
しかし、結果は私int64(prod(nums./dens))
とは異なりprod(sym(nums)./sym(dens))
ます。これは誰にとっても同じですか?
matlab - m-file-function を C(または MEX) S-function に変換する手順はありますか?
MATLAB コードとして記述された単純な関数があります。例えば:
matlabFunction
この関数は、シンボリック式を使用してコマンド アプリケーションから派生します。MATLAB S-Function ブロックまたは Interpreted MATLAB ブロックで使用する代わりに、C S-Function、MEX S-Function などのパフォーマンスを高速化するために S-Function に変換することができます。ありがとう
matlab - symvar で返される変数を宣言する (MATLAB)
この関数に含まれる変数の数に関係なく、入力から関数 (n 次元) とその変数を宣言しようとしています。例:
私はsymvar
これらの変数を取得するために使用し、それはうまく動作します:
残念ながら、この出力を使用してこれらの変数を直接宣言することはできません。それを手伝ってくれませんか?
ところで、私はMATLAB R2013aを使用しています
matlab - Matlab の symsum は必要以上のことをしますか?
次のループがあります
R2014a、W7、64bで計算するのに約600秒かかります。Mathematica での同等の計算には 60 秒かかります。結果は同じですが、違いがあります。すべての合計 (この場合は 100 の合計) の特性の 1 つは、半分良い方法で因数分解できることです。Mathematica は,そうするように指示されていないので,デフォルトではそれを因数分解しません.しかし、symsum は合計をチェックすることでそれを行っており、それが速度低下の原因になっていると思います。
同意しますか?はいの場合、出力を単純化しないように symsum に指示する方法はありますか? いいえの場合、高速化する方法はありますか?Mathematica よりも Matlab でやりたいと思っています。
matlab - Matlab でシンボリック ツールボックスを使用せずに方程式を解く
変数 \theta について次の方程式を解く必要があります。
シンボリック ツールボックスを使用せずに Matlab を使用する。これは、m-file を .Net Assembly にコンパイルしていて、シンボリック ツールボックスを使用できないためです。
を使用して解決する方法vpasolve
は知っていますが、私が知る限り、 を使用して変数を定義する必要がありますsyms
。
シンボリック ツールボックスを使用せずに、Matlab でこの方程式を解く方法を教えていただければ幸いです。