これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド ginsh です。
プログラム:
NAME
ginsh - GiNaC インタラクティブ シェル
シンポシス
ギンシュ [ファイル...]
DESCRIPTION
ギンシュ GiNaC シンボリック計算フレームワークの対話型フロントエンドです。 それは
GiNaC の機能をテストおよび実験するためのツールとして意図されており、
従来の対話型コンピュータ代数システムに代わるものです。 多くのことができますが、
これらの従来のシステムでできることは、ginsh には次のようなプログラミング構造はありません。
ループまたは条件式。 この機能が必要な場合は、次のように書くことをお勧めします。
「ネイティブ」GiNaC クラス フレームワークを使用して、プログラムを C++ で作成します。
USAGE
入力 FORMAT
起動後、ginsh は、要求を受け入れる準備ができていることを示すプロンプト ("> ") を表示します。
入力。 受け入れ可能な入力は、数値または数値で構成される記号式です (例:
42, 2/3 or 0.17)、記号(例: x or 結果)、次のような数学演算子 + *,
関数 (例: 罪 or 通常の)。 すべての入力式は次のいずれかで終了する必要があります。
セミコロン(;) またはコロン (:)。 セミコロンで終了すると、ginsh は
式を作成し、結果を標準出力に出力します。 コロンで終了すると、ginsh は
式は評価されますが、結果は出力されません。 複数入力も可能です
一行で表現。 ホワイトスペース(スペース、タブ、改行)は、間に自由に適用できます。
トークン。 ginsh を終了するには、次のように入力します やめます or 終了する、またはプロンプトで EOF (Ctrl-D) を入力します。
コメント
二重スラッシュ (//) 行末まで、および開始するすべての行
ハッシュマーク(#) はコメントとして扱われ、無視されます。
NUMBERS
ginsh は、通常の XNUMX 進表記の数値を受け入れます。 これには任意の精度が含まれます
標準または科学における整数、有理数、および浮動小数点数
表記法 (例: 1.2E6)。 一般的な規則は、数値に小数点が含まれる場合、
(.)、それは (不正確な) 浮動小数点数です。 それ以外の場合は、(正確な) 整数、または
合理的な。 整数は 2 進数、36 進数、XNUMX 進数、または任意 (XNUMX ~ XNUMX) で指定できます。
接頭辞を付けてベースにします #b, #o, #xまたは #nR それぞれ。
記号
記号は、英数字とアンダースコア (_)、
最初の文字が数字以外であること。 例えば a む_1 は許容されるシンボル名ですが、
2pi ではありません。 関数と同じ名前のシンボルを使用することができます (例: 罪);
ginsh は XNUMX つを区別できます。
次のように入力すると、シンボルに値を割り当てることができます。
シンボル = 表現;
割り当てられたシンボルの値の割り当てを解除するには、次のように入力します。
割り当て解除('シンボル');
割り当てられたシンボルは、次の場合に自動的に評価されます (= 割り当てられた値で置き換えられます)。
それらは使用されています。 未評価のシンボルを参照するには、一重引用符 (') 名前の周り、
上記の「unassign」コマンドで示したように。
シンボルはデフォルトで複合ドメイン内にあるとみなされます。つまり、シンボルは次のように扱われます。
それらは複素数の代わりになります。 この動作は、キーワードを使用して変更できます。
実数記号 複合シンボル そして新しく作成されたすべてのシンボルに影響します。
次のシンボルは、事前に定義された定数であり、
ユーザー:
Pi アルキメデスの定数
カタルーニャ語 カタロニア語定数
オイラー オイラー・マスケローニ定数
I sqrt(-1)
フェイル GiNaC「fail」クラスのオブジェクト
スペシャルもありますよ
桁
不正確な数値を使用した計算の数値精度を制御する記号。
整数値を桁に割り当てると、精度が指定された数に変更されます。
小数位。
ワイルドカード
has()、find()、match()、および subs() 関数は、ワイルドカードをプレースホルダーとして受け入れます。
表現。 これらには次のような構文があります
$数
たとえば、$0、$1 などです。
LAST 印刷済み 表現
ginsh は XNUMX つの特別なシンボルを提供します
%、 %% と %%%
これらは、それぞれ最後、最後から XNUMX 番目、最後から XNUMX 番目の出力式を参照します。
これらは、以前の計算の結果を新しい計算で使用したい場合に便利です。
式です。
オペレーター
ginsh には、優先順位の高い順にリストされている次の演算子が用意されています。
! 後置階乗
^ 力を与える
+ 単項プラス
- 単項マイナス
* 乗算
/ 分裂
+ 添加
- 引き算
< 未満
> 越える
<= 以下
>= それ以上か等しい
== 等しい
!= 等しくない
= シンボルの割り当て
すべての二項演算子は左結合です。例外は次のとおりです。 ^ = どちらが正しいですか-
連想的な。 代入演算子の結果 (=) はその右辺なので、
XNUMX つの式で複数のシンボルを割り当てることが可能 (例: a = b = c = 2;).
コンストラクタ
リストは次によって使用されます。 潜水艦 解決する 機能。 リストは左中括弧で構成されます
({)、(空の場合もある)カンマで区切られた一連の式、および右中括弧
(}).
マトリックス
行列は左角括弧 ([)、空ではないカンマ区切りのシーケンス
行列行の数と右角括弧 (])。 マトリックスの各行は開口部で構成されます
角括弧 ([)、空ではないカンマ区切りの一連の式、および終わり
角括弧 (])。 行列の行の長さが同じでない場合、行列の幅は
行列は最も長い行の行列になり、短い行は最後に次のように埋められます。
値がゼロの要素。
関数
ginsh の関数呼び出しの形式は次のとおりです。
名(引数)
コラボレー 引数 カンマで区切られた一連の式です。 ginsh はいくつかの機能を提供します
組み込み関数のほか、GiNaC によって定義されたすべてのシンボリック関数も「インポート」します。
追加のライブラリ。 リンク以外に独自の関数を定義する方法はありません
シンボリック GiNaC 関数を定義するライブラリに対して ginsh を実行します。
ginsh は関数名のタブ補完を提供します: 関数の最初の部分を入力した場合
名前を付ける場合は、可能であれば Tab キーを押すと名前が完成します。 入力した部分が一意でない場合は、
もう一度 Tab キーを押すと、一致する関数のリストが表示されます。 Tab を XNUMX 回押します
プロンプトには、使用可能なすべての機能のリストが表示されます。
組み込み関数のリストは次のとおりです。 彼らはほぼ全員がそれぞれのGiNaCとして働いています
同じ名前のメソッドがあるため、ここでは詳しく説明しません。 を参照してください。
GiNaC のドキュメント。
チャーポリ(マトリックス, シンボル) - 行列の特性多項式
係数(表現, オブジェクト, 数) - から object^number の係数を抽出します。
多項式
収集(表現, オブジェクトまたはリスト) - 同様のべき乗の係数を収集します (結果
再帰的な形式で)
収集_配布(表現, リスト) - 同様のべき乗の係数を収集します
(結果は分散形式になります)
collect_common_factors(表現) - 合計の項から共通因数を収集します
共役(表現) - 複雑な活用
コンテンツ(表現, シンボル) - 多項式の内容部分
decomp_rational(表現, シンボル) - 有理関数を多項式に分解する
そして適切な有理関数
度(表現, オブジェクト) - 多項式の次数
デノム(表現) - 有理関数の分母
決定因(マトリックス) - 行列の行列式
診断(表現...) - 対角行列を構築します
差分(表現, シンボル [, 番号]) - 偏微分
分ける(表現, 表現) - 正確な多項式除算
eval(表現 [, レベル]) - 式を評価し、記号をその記号に置き換えます。
割り当てられた値
evalf(表現 [, レベル]) - 式を浮動小数点数に評価します
評価(表現) - 行列の和、積、整数乗を評価します
拡大(表現) - 式を展開します
要素(表現) - 式を因数分解します (単変量)
探す(表現, パターン) - パターン内のすべてのパターンの出現リストを返します。
表現
fsolve(表現, シンボル, 数, 数) - 実数値の根を数値的に求める
間隔内の関数
gcd(表現, 表現) - 最大公約数
もっている(表現, パターン) - 最初の式にパターンが含まれている場合は「1」を返します。
部分式として、それ以外の場合は「0」
integer_content(表現) - 多項式の整数の内容
逆数(マトリックス) - 逆行列
は(関係) - 関係が true の場合は「1」を返し、それ以外の場合は「0」を返します (false または
未定)
lcm(表現, 表現) - 最小公倍数
lcoef(表現, オブジェクト) - 多項式の主要係数
l度(表現, オブジェクト) - 多項式の次数が低い
解決(方程式リスト, シンボルリスト) - 連立一次方程式を解く
地図(表現, パターン) - 各オペランドに関数を適用します。 なる関数
apply は、オペランドを表す "$0" ワイルドカードを使用したパターンとして指定されます。
マッチ(表現, パターン) - 式がパターンに一致するかどうかを確認します。 を返します
ワイルドカード置換のリスト、または一致しない場合は「FAIL」
いや(表現) - 式内のオペランドの数
普通(表現 [, レベル]) - 有理関数の正規化
数字(表現) - 有理関数の分子
数値デノム(表現) - 有理関数の分子と分母
リスト
op(表現, 数) - 式からオペランドを抽出する
力(式1, 式2) - べき乗 (expr1^expr2 と書くのと同じ)
プレム(表現, 表現, シンボル) - 多項式の擬似剰余
プリパート(表現, シンボル) - 多項式の原始部分
quo(表現, 表現, シンボル) - 多項式の商
ランク(マトリックス) - マトリックスのランク
レム(表現, 表現, シンボル) - 多項式の余り
結果(表現, 表現, シンボル) - XNUMX つの多項式の結果
シンボル s に関して
シリーズ(表現, 関係または記号, 注文) - シリーズ展開
スプレム(表現, 表現, シンボル) - 多項式のスパース擬似剰余
sqrfree(表現 [, シンボルリスト]) - 多項式の二乗なし因数分解
sqrt(表現) - 平方根
サブス(表現, 関係またはリスト)
サブス(表現, 探すリスト, リストによる置換) - 部分式の置換 (あなた
ワイルドカードを使用することもできます)
tcoeff(表現, オブジェクト) - 多項式の末尾の係数
時間(表現) - 指定された値を評価するのに必要な時間を秒単位で返します。
表現
痕跡(マトリックス) - マトリックスの痕跡
転置(マトリックス) - 行列の転置
割り当て解除('シンボル') - 割り当てられたシンボルの割り当てを解除します (引用符に注意してください!)
ユニット(表現, シンボル) - 多項式の単位部分
特殊 コマンド
ginsh を終了するには、次のように入力します。
やめます
or
終了する
ginsh は、特定のトピック (主に関数と演算子に関する) の (短い) ヘルプを表示できます。
入力することにより
?トピック
タイプ
??
利用可能なヘルプ トピックのリストが表示されます。
コマンド
プリント(表現);
指定されたオブジェクトの GiNaC の内部表現のダンプを出力します。 表現。 これは
デバッグや GiNaC の内部構造についての学習に役立ちます。
コマンド
print_latex(表現);
指定されたものの LaTeX 表現を出力します。 表現.
コマンド
print_csrc(表現);
与えられたものを印刷します 表現 C または C++ プログラムで使用できる方法で。
コマンド
iprint(表現);
与えられたものを印刷します 表現 (整数に評価される必要があります) XNUMX 進数、XNUMX 進数、および
XNUMX 進数表現。
ついに砲弾が脱出
! [ command [引数]]
与えられたものを渡す command 必要に応じて 引数 実行のためにシェルに送ります。 これとともに
このメソッドを使用すると、終了せずに ginsh 内からシェル コマンドを実行できます。
例
> a = x^2-x-2;
-2-x+x^2
> b = (x+1)^2;
(x+1)^2
> s = a/b;
(x+1)^(-2)*(-2-x+x^2)
> diff(s, x);
(2*x-1)*(x+1)^(-2)-2*(x+1)^(-3)*(-x+x^2-2)
> 通常;
(x-2)*(x+1)^(-1)
> x = 3^50;
717897987691852588770249
> s;
717897987691852588770247/717897987691852588770250
> 桁 = 40;
40
> evalf;
0.999999999999999999999995821133292704384960990679
> unassign('x');
x
> s;
(x+1)^(-2)*(-x+x^2-2)
> シリーズ(sin(x),x==0,6);
1*x+(-1/6)*x^3+1/120*x^5+Order(x^6)
> lsolve({3*x+5*y == 7}, {x, y});
{x==-5/3*y+7/3,y==y}
> lsolve({3*x+5*y == 7, -2*x+10*y == -5}, {x, y});
{x==19/8,y==-1/40}
> M = [ [a, b], [c, d] ];
[[-x+x^2-2,(x+1)^2],[c,d]]
> 行列式(M);
-2*d-2*x*cx^2*cx*d+x^2*dc
> 収集(%, x);
(-d-2*c)*x+(dc)*x^2-2*dc
> 場の量子論を解く。
量子での解析エラー
> やめる
診断
での解析エラー foo
ginsh が解析できない内容を入力しました。 の構文を確認してください
入力して再試行してください。
引数 NUM 〜へ function する必要があります type
引数番号 NUM 与えられたに function 特定のタイプでなければなりません (例:
シンボル、またはリスト)。 最初の引数の番号は 0、1 番目の引数の番号は XNUMX、
等々
onworks.net サービスを使用してオンラインで ginsh を使用する
