問題タブ [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.
matlab - 可変サイズの行列をサポートする計算機代数システム
私は sympy、matlab シンボリック パッケージ、reduce に精通しており、他のいくつかのコンピューター代数システムを試しました。ただし、私が知る限り、可変サイズの行列で代数を実行できるものはないようです。固定サイズの行列でのみ機能します。
可変サイズの行列に対して代数を実行できるものはありますか? かなりの数のケースがあることは理解していますが、R^nxn の行列を使って手で行うことができる多くの単純化/代数の容易さのために、実行可能な量がかなりあるように感じます。
これらの多くで非共有代数要素を扱うだけでよいので、足し算と行列を使ったアダマール積をカバーします。これは有用であり、出発点です。ただし、行列で実際に行うことのごく一部しかカバーしていません (たとえば、転置、逆行列、固有値分解、R^nxm での行列の使用など)。もっと一般的なソフトウェアはありますか?
matlab - Matlab シンボリック式でオーバーフローが発生する
私は、Matlab シンボリック ツールボックスを使用して、非常に複雑な関数を作成しています。この関数は、( を使用して) .m ファイルに書き込まれますmatlabFunction
。何らかの理由で、関数を単純化した後、関数は のような形式で返されますfun = (A*1.329834759483753e310 + B*5.873798798237459e305 + ...)*7.577619127319697e-320
。 whereA
およびB
は my 変数の関数です (複雑すぎてここで繰り返すことはできません)。つまり、括弧内のすべての項は、約 1e280 から 1e300 のオーダーです。指数が約 1.79e308 よりも大きくなると、double のオーバーフローが発生するため (生成された .m 関数を呼び出すとき)、問題が発生します。関数の実際のサイズは、オーバーフローを作成するほどではありませんが、関数をこの方法で表現するとオーバーフローが発生します。これは、単純化関数が 1e-320 を括弧内に乗算した場合に解決されますが、何らかの理由で解決されません。
シンボリック ツールボックスが私の関数をこのように表現することを選択した理由は何ですか?
expand(fun)
callを呼び出して、1e-320 を括弧内に掛けることができることがわかりました。結果の式には、予想されるサイズ (-1 から -30 の範囲) の指数がありますが、最初に式がこのように見える理由を知りたいですexpand
。問題。その上、呼び出しexpand
は私が持っているものよりも複雑な関数を作成するようで、ここで非常に高速に評価される関数を取得しようとしています.
symbolic-computation - マグマで多項式環の部分環を構築する方法
この質問は、コンピュータ代数システム Magma (線形代数ライブラリではありません) に関するもので、scicomp.SE から相互投稿されています。
これがトピックから外れている場合はご容赦ください。私は StackExchange ネットワークの常連ユーザーですが、これが StackOverflow に関する最初の投稿です。この種の質問にぴったりの家を探しています。(原則として、scicomp.SEのようですが、4日間回答が得られていないため、StackOverflowが別の結果をもたらしたかどうかを知りたかったのです。)
マグマの環 R 上の多項式代数 A を構成したとします。与えられた A の要素のリストによって生成される A の部分 R 代数をどのように構築するのでしょうか?
これは非常に基本的な操作のように思えるので、それを行う方法がないとは信じられませんが、ハンドブックにはまだ見つかりません。(行列代数とアーベル多様体の自己同形環の部分代数を構成する機能はあるが、多項式環はないと思う。)
debugging - シンボリック実行ツール KLEE は並列実行できますか?
彼らの論文 (OSDI'08) によると、シンボリック実行ツール KLEE は、単一の COREUTIL アプリケーションのテスト ケースを生成するのに約 1 時間かかります。並列で実行できるかどうか疑問に思っていますか?(たとえば、マルチコアまたは GPU でのマルチスレッド)?
python - Theano の 5D テンソル
Theano で 5D テンソルを作成する方法を考えていました。
具体的には、試してみdtensor = T.TensorType('float32', (False,)*5)
ました。ただし、唯一の問題は、次をdtensor.shape
返すことです。AttributeError: 'TensorType' object has no attribute 'shape'
のような標準的なテンソル タイプを使用した場合、dtensor = T.tensor3('float32')
呼び出したときにこの問題は発生しません。これdtensor.shape.
を Theano の 5D テンソルで問題にしない方法はありますか?
matlab - シンボリック関数に微分演算子を掛けて導関数を作成する
私は行列を持っていますA
:
演算子行列もありますD
:
乗算D*A
して、次のような行列になるようにしたい:
diff() 関数は関数を乗算できる演算子ではないため、明らかにこれを行うことはできません。では、記号演算子を使用してこれを行うにはどうすればよいでしょうか? 実際には、行列が大きいため、演算子の乗算なしで実行することは望ましくありません。
また、上記のマトリックスを作成する方法を見つけたB
としましょう。これは次のようになります。
B
たとえば、で評価するにはどうすればよいですかx=2, y=1
;
私の試み:
しかし、これは明らかにsym.subs
関数の間違った引数です
私も試しました:
それもうまくいかなかったので、私の他の質問は、マトリックスの代わりにどのように代用できるx
かですy
。B
graph - システムをバラバラなセットに分割する順列を見つけるためのグラフからの最小カット?
無向システムを仮定すると、各セットが最小になるようにシステムをバラバラにする順列の要素を見つけたいグラフ。このグラフには 2 つの特別なノードがあります: 要素内に存在できないシンクとソースです。
あるグラフ G=(V,E) が与えられた場合、どのように最小カットを計算で見つけることができますか?