問題タブ [computer-algebra-systems]
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.
lisp - Maxima 言語と Lisp のコーディング
maxima にオプションを渡してMathematica
のパーティション関数に似た関数を書くことを考えただけです。
Usage
:listpartitionpad([a,b,c,d,e,f,g],3,3,x); => [[a,b,c],[d,e,f],[g,x,x]]
私がチェックしたように、リスト操作関数はすべてlispでコーディングされています。
私の質問は、そのような関数を Lisp ではなく maxima 言語でコーディングしても問題ないか、そうしないと、パフォーマンスの問題や、まだ知らないことを知っておくべき何かが発生するということです。簡単なテストを実行しました
:lisp(time(loop repeat 1000000))
別の最大値ベースのアプローチの場合、
評価にかかった時間は 5.7700 秒 (5.7700 経過)
そして、この差は成長するにつれて指数関数的にi
大きくなります。
これが、すべてのリスト操作が Lisp でコーディングされている理由ですか?
maxima - Maxima: カスタマイズされた takewhile
Maxima で takewhile のドキュメントが見つからなかったので、要素とその位置の両方を提供する独自のドキュメントを作成してみました。基準が満たされるとすぐに、リストのどこからでも取得を開始します。微妙な違いのある2つの機能に行き着きましたが、
使用法 ::
takewhile([2,1,2,3,4,5,7,4,1,4,5,2,1,7,8],lambda([x],x>3));
出力::
[[4,5],[5,6],[7,7],[4,8]]
そして2番目に、
使用法 ::
takewhile1([2,1,2,3,4,5,7,4,1,4,5,2,1,7,8],\<5);
出力::
[[2,1],[1,2],[2,3],[3,4],[4,5]]
微妙な違いは、parse_string
関数からパラメーターとして取得されたラムダを適用する代わりに、ラムダ関数を作成するために使用するという点です。
Problem
:できます、
takewhile([2,1,2,3,4,5,7,4,1,4,5,2,1,7,8],lambda([x],x^2+3*x>6));
出力::
[[2,1]]
takewhile1
しかし、返されるときに使用している場合、どのようにそれを達成するかわかりません。
concat: argument must be an atom; found ^2>5
sage - Sage で記号式を使用して代入できますか?
Sage で次のマップを使用しています。
x= 0 の場合はf(x) = 0、x!=0の場合はf(x)=1と評価されます。
シンボリックな結果では、sgn(x)^2、sgn(x)^4、sgn(x)^8などは、 xのすべての値が等しいにもかかわらず、等しくないものとして扱われます。次のようなものに置き換える方法はありますか:
これらの関係のすべての出現、およびxのすべての記号値に対して?
すべてのシンボルに対して新しい置換ルールを作成できます。
などですが、それを制御するのは難しいようです。
open-source - Javascriptでアクセス可能な計算機代数システム
JavaScript で簡単にアクセスできる優れたオープン ソース CAS ライブラリを知っている人はいますか。極端に強力である必要はありません。私が探しているコア機能は、代数式の単純化です。
すべての回答は役に立ちます(申し訳ありませんが、SOは初めてです)。
ありがとう、マイケル
java - Java で SymPy (または別の CAS) を使用する
私は現在、数式を受け入れて評価する JavaFX のプロジェクトを開発しています。基本的な操作とかなりの量の代数を機能させることができました。また、台形則を使用して定積分を実行することもできました。
私が直面している主な問題は、不定統合です。JCalculus、JavaCalculus、JScience、SymJa など、多くの記号計算ライブラリをオンラインで調べました。しかし、機能面で SymPy ほど優れたものはありませんでした。Java から SymPy にコマンドを送信し、結果を Java に戻す方法があるかどうかを知りたかったのです。
ソリューションで必要に応じて Python と SymPy をインストールする JavaFX アプリのインストーラーを提供することを考えています。また、Jython が何らかの形で問題に関連していると信じて理解しようとしましたが、その目的と使用法を理解できませんでした。
私を助けてください。私は Java と JavaFX はかなり得意ですが、Python の知識は非常に低く、制限されています。ステップバイステップの説明とサンプルコードは非常に高く評価されています.
前もって感謝します。
python - Sympy: 多項式の高次項を削除
Sympy を使用して、シンボル "x" (および潜在的に他のシンボル) の多項式である式 f があるとします。
整数 n より大きい次数の f のすべての項を削除する効率的な方法があるかどうかを知りたいです。
特別なケースとして、私は非常に複雑な関数を持っていますが、x で 2 次までの項のみを保持したいと考えています。これを行う効率的な方法は何ですか?
それを行うための明白であまり効率的ではない方法は、n 未満の各 m に対して、m 導関数を取り、x を 0 に設定して x^m の係数を取得することです。この方法で各係数を取得し、多項式を再構築します。しかし、デリバティブを取ることは最も効率的なことではありません。
math - CAS - 二分木代替
二分木を使用せずに、コンピューター代数システム全体(代数方程式、極限、導関数、積分)を作成する合理的な方法はありますか?