問題タブ [sage]

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.

0 投票する
1 に答える
767 参照

python - sage に python モジュールがありません

Sage 4.7.1 をインストールしましたが、奇妙な問題に遭遇しました。deepcopy() や uniq() などの関数を使用する古いスクリプトの多くは、それらをグローバル名として認識しなくなりました。Pythonモジュールを1つずつインポートすることでこれを修正できましたが、これは非常に面倒です。しかし、コマンドライン Sage インターフェイスを起動すると、コピー モジュールをインポートせずに「list2=deepcopy(list1)」と入力でき、これは正常に機能します。コマンド ライン Sage がグローバル名 'deepcopy' を認識できるのに、同じ名前を使用するスクリプトをロードすると認識されないのはどうしてですか?

おっと、申し訳ありませんが、まだスタックオーバーフローに慣れていません。「sage_4.7.1/sage」と入力してコマンド ライン インターフェイスを起動します。次に、「load jbom.py」と入力して、Python スクリプトで定義したすべての関数をロードします。スクリプトの関数の 1 つを使用する場合、それは数秒間実行され(複雑な関数)、Sageが通常グローバル名として持っている関数(deepcopy、uniqなど)を使用する場所にヒットしますが、何らかの理由で、ロードしたスクリプトは関数が何であるかを知りません. 繰り返しになりますが、前回説明したように、この特定の調査に取り組んでいたときは、私のスクリプト jbom.py が機能していました。

また、「load jbom.py」または「import jbom」を使用しても違いはありません。どちらのメソッドも、スクリプトで定義した関数を取得し (ただし、2 番目のケースでは jbom. を使用する必要があります)、「deepcopy」がグローバル名ではないという同じエラーが発生します。

DSM への返信: 問題の説明が下手で申し訳ありません。最初の行に「import jbom」を含む新しいスクリプト「experiment.py」を作成しました。experiment.py 内の関数を実行すると、jbom.py 内の関数は認識されますが、deepcopy は認識されません。jbom.py を「load jbom.py」として読み込んでみましたが、数か月前と同じように関数を使用できます。それで、これはすべて、インポート/ロードなどを適切に使用せずにスクリプトをレイヤー化することの問題ですか?

解決済み:「from sage.all import *」を jbom.py の先頭に追加したところ、experiment.py を読み込んで jbom.py 関数を呼び出す関数を問題なく実行できるようになりました。インポート/ロードに関するSageのドキュメントから、私が何を間違っていたのか正確にはわかりません。

0 投票する
0 に答える
204 参照

sage - Sage を使用して多数のフィールドで最大次数を計算する

私は SAGE でプログラムを書いています。とりわけ、「大きな」数値フィールドの最大次数を計算する必要があります。私が扱っている数値フィールドは、かなり大きい次数 (これまでに扱ったもので約 40) だけでなく、判別式も非常に大きくなっています。
残念ながら、これにより、SAGE が最大次数を計算するために使用する標準の組み込み関数を使用することができなくなります。このコマンドK.maximal_order()は単純に時間がかかりすぎます。以下のコードで使用されている表記法について具体的に説明しましょう:
Qa12 は、整数のリング (つまり、最大次数) を持つ数値フィールドを指定しますOO。計算する必要があるOOKのは、 の拡張Kの と書かれた最大次数ですQa12。現在、MAGMA では、次のコードを使用してこれを行うことができます。

これはかなり短い時間で実行されます。つまり、通常は 1 分未満です。SAGE には最初の 2 行のコードの類似物がないように見えるため、これを直接翻訳する方法は見つかりませんでした。私が何かを見逃している可能性があるので、最初の 2 行を翻訳する方法を知っていると思われる場合は、教えてください。代わりにフィールドの拡張を計算すると、コードは次のようになります。

Now, there are two problems with this code, the first of which is that the discriminant of said number field being huge, factorising it is impossible. In other words, I have not yet tested the for-loop. Do you see any way of avoiding having to deal with these huge discriminants? The for-loop is the second place I am insecure about: As there is (again - as far as I know) no direct analog to the MAGMA-command pMaximalOrder(subOrderK,p)above, I was hoping that SAGE would "remember" the previous value of subOrderK in the for-loop, hence recreating the effect of the MAGMA-command. Is this indeed the case? If note, do you see a way to avoid this issue?

NOTE:
I have posted essentially the same question on ask.sagemath a few days ago, to no avail so far.

0 投票する
1 に答える
196 参照

python - Sage 内から gnuplot を使用するとエラーが発生しますが、通常の Python では問題なく動作します

ここがこの質問をするのに最適な場所ではない場合は申し訳ありませんが、ここで誰かが助けてくれることを願っています. Sage スクリプト内からいくつかの gnuplot コマンドを直接実行したいのですが、次のエラー メッセージが表示されます。

dyld: ライブラリがロードされていません: /opt/local/lib/libfreetype.6.dylib 参照元: /opt/local/bin/gnuplot 理由: ライブラリのバージョンに互換性がありません: gnuplot にはバージョン 14.0.0 以降が必要ですが、libfreetype.6.dylib が必要ですバージョン 10.0.0 を提供

このメッセージは、Sage で gnuplotpy インターフェイスを使用しようとした場合、または Sage の os.system("gnuplot -e \"plot('sin(x)')\"") のようなものを使用した場合に表示されます。ただし、同じ os.system(...) コマンドは、通常の python で問題なく機能します。どうもありがとう。

0 投票する
1 に答える
775 参照

list - sagemath: リスト内の辞書の分数を matplotlib の小数に変換する

私はセージ数学のいくつかの効率グラフのプロセスを自動化しようとしていますが、この式を取得しました。Matplotlib.pyplot値のリストが必要です。以下で説明するリストで辞書を取得するか、次の形式のリストを取得します。

私はそれらの分数を取り、それらを数値近似に変換し、sage math [python] でそれらの値を含むリストを作成したいと考えています。このn()関数は分数を小数に変換しますが、値を分離して に渡す方法がわかりませんn()

0 投票する
0 に答える
425 参照

python - 多くの重い積分と導関数を含む連成反復方程式を解く

それぞれが多くの積分と微分を含む連立反復方程式のシステムを解こうとしています。

まず、maxima (Sage に組み込まれている) を使用して解析的に解決しましたが、解は、未知の関数に対して行った最初の推測に依存しすぎていました。定数の最初の推測では、ほとんどすぐに答えが返されましたが、最初の推測として使用された記号関数は、計算に深く入り込むためのシステム。

しかし、私が Sage で試したのは、実際には元の方程式の単純化されたバージョンだったので、積分と導関数を数値的に扱う以外に選択肢がないのではないかと考えましたが、無視できない問題がいくつかありました。

  1. 積分には数値的な制限のみが許可され、変数は上限などとして許可されませんでした (変数やパラメーターを計算に残したとしても、数値法のアルゴリズムは分析的なアルゴリズムよりも高速であると思いましたが、そうではありませんでした。そのように動作します)。

  2. 被積分関数は、統合されていない余分な変数とパラメーターを受け入れることもできませんでした。

  3. 偏導関数を計算したり、積分の被積分関数で導関数を使用したりすることができなかったため、微分関数自体が大きな障害でした。

数値導関数のすべての問題を取り除くために、シンボリック diff() 関数で置き換えました。速度の向上はまだ期待できましたが、数値積分の問題は解決しません。

ここで、3 つの質問があります。

a- 方程式を離散化し、混合式ではなく完全な数値処理を行う以外に方法がないと結論付けるのは正しいですか?

b- もしそうなら、これを自動的に行う方法はありますか? 私の方程式は、ODEint などを使用する DE のものではなく、反復方程式です。各ステップで未知数を新しい値に更新するためだけに積分と微分があります。

c- 私の計算のサイズが非常に大きい場合、python から fortran などに切り替えることについて何か提案はありますか?

よろしくお願いします

0 投票する
1 に答える
395 参照

python - Python /SageNotebookでのグラフの作成

SageNotebookで散布図を作成しようとしています。DataA.csvのデータ、特に1行目と3行目を読み込んでいます。これらのデータに基づいて散布図を作成したいと思います。すべてが1つの散布図にあるのではなく、個々のタプルごとに新しい散布図が作成されることを除いて、すべてが機能します。これを修正する方法についてのアイデア。前もって感謝します

0 投票する
1 に答える
3247 参照

python - CSV ファイルの特定の列の値を追加する (Sage Notebook 内)

4 つの異なる列に多数の値を含む csv ファイルがあります。Pythonを使用して、特定の列の値を合計する方法はありますか(列1の値など)。1つの列のすべての値の平均を見つけたい

この方法を使用して特定の列を分離できますが、値を追加して特定の列の平均を見つけるためにそれを変更する方法はありますか

前もって感謝します

0 投票する
2 に答える
492 参照

math - サンプルデータのスパイクを取り除く

どうすれば、離散データセットのスパークデータを「よりスムーズに」削除できますか?

たとえば、

ここに画像の説明を入力

20000 で 2 つのスパークがありますが、次の 600 でのスパークもスパークと見なされます。

非常に高いものをゼロにすることができました。

下位のものについてはどうすればよいかわかりません。最大値は 100 に到達する必要があります。おそらく、ベータ分布のパラメーターをもう少しいじる必要がありますか?

現在、次のようになっています。 ここに画像の説明を入力

可能であれば、説明の参考として sage を使用してください。

0 投票する
2 に答える
9998 参照

python - sagemathでタイトル、軸ラベル、および凡例を追加するには?

私は現在、sagemath がホストするオンライン ワークブックを使用していくつかのグラフを作成しています。

これは、グラフを作成して生成するために作成しているコードの例です。

これは非常に基本的なもので、基本的には 2 つの散布図を重ね合わせたものです。

軸ラベル、凡例、およびオプションでタイトルを簡単に追加する方法はありますか?

軸ラベルを追加できるソリューションをハックすることができましたが、それは本当に醜くてばかげています。

軸ラベル、凡例、およびタイトルを追加する簡単な方法はありますか?