問題タブ [mathematica-7]

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 投票する
4 に答える
1830 参照

wolfram-mathematica - 最小値と最大値の両方を見つけるより速い方法はありますか?

多くの場合、私は次のように書いています。{Min@#, Max@#} &

しかし、最小値を見つけるために 1 回、最大値を見つけるために 1 回、式を 2 回スキャンする必要があるため、これは非効率的です。これを行うより速い方法はありますか?多くの場合、式はテンソルまたは配列です。

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

wolfram-mathematica - 指定されたレベルの各グループに固有のコンテキスト

Mathematica の最近のバージョンでは、次の方法で$Context各セル グループに固有の値を設定するオプションが提供されています。

  • 評価 > ノートブックのデフォルト コンテキスト > 各セル グループに固有

これは魅力的な概念ですが、私のコードは複数のセル グループにまたがっているため、使用できません。

every などの特定のレベルのセル グループに一意のコンテキストを指定する方法が必要ですSectionが、 everyまたはの個別のコンテキストではありませんSubsectionSubsubsection

ソリューションは、新しいセル グループが作成されるときに影響を与える必要があります。

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

wolfram-mathematica - Mathematica7で2つの整数を連結します

Mathematica 7で2つの正の整数を連結する最も効率的な方法は何ですか?

cc[123, 4567]>>1234567

2つ以上はどうですか?

cc[123, 4, 567, 89]>>123456789

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

wolfram-mathematica - v7でのGroebnerBasisの奇妙な振る舞い

を使用しているときに、奇妙な動作に遭遇しGroebnerBasisました。以下ではm1、変数としてギリシャ文字をm2使用し、ではラテン文字を使用しました。どちらにもルールはありません。選択した変数によって、回答が大きく異なるのはなぜですか?

画像:

ここに画像の説明を入力してください

コピー可能なコード:


編集:

ベリサリウスが指摘しているように、私の使用法はGroebnerBasis多項式入力を必要とするため、完全には正しくありませんが、私の使用法はそうではありません。コピーパスタによって発生したこのエラーは、上から使用して残りのコードを実行したときに期待した答えが得られたため、これまで気付かれませんでしたm1しかし、私はそれが不合理な使用法であると完全には確信していません。以下の例を考えてみましょう。

どちらが正しい。ですから、そのような場合でも大丈夫GroebnerBasisと思いますが、その背後にある深い理論に精通しているわけではないので、ここでは完全に間違っている可能性があります。

PSGroebnerBasis投稿で3回言及すると、DanielLichtblauがあなたの質問に答えると聞きました:)

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

wolfram-mathematica - 答えを段階的に示す Mathematica 7

Mathematica が結果を得るために適用する手順を知りたい. 私は持っている

Mathematica は 0 を表示しますが、その結果がどのように得られたか知りたいです。

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

wolfram-mathematica - Interpolation の InterpolationOrder オプションの奇妙な動作

InterpolationFunctionによって生成されたを再作成しようとすると、のオプションでNDSolve非常に奇妙な問題に直面しました。次のことを考慮してください(ドキュメントの関数の例)。InterpolationOrderInterpolationInterpolationFunction

では、再構築してみましょう。データは次のとおりです。

そしてここにあるInterpolationOrder

次に、以下を構築してみますInterpolatingFunction

エラーが発生しますMessage

Interpolation::inord: オプション InterpolationOrder の値 -> {3} は、負でないマシンサイズの整数または次元数 1 に等しい長さの整数のリストでなければなりません。 >>

しかし、InterpolationOrder手で指定すればOKです:

標準の評価シーケンスに従ってBEFORE 呼び出しに置き換える必要があるにもかかわらInterpolationOrder -> interpolationOrderず、動作中に動作しない理由を誰でも説明できますか?InterpolationOrder -> {3}interpolationOrder{3}Interpolation

PS この問題はMathematica 7.0.1 と 8.0.1 で発生しますが、Mathematica 5.2 では発生しません。

アップデート

このバグの回避策を 1 つ見つけました。

期待どおりに動作します。

と の評価によって生成される式は、同じであるにもかかわらず、異なる内部構造を持っているようですRule[InterpolationOrder,interpolationOrder]Rule[InterpolationOrder,{3}]

0 投票する
3 に答える
400 参照

performance - 「MapList」関数

Mathematicaには、最終結果や単一の一致だけでなく、すべての結果を返す関数がいくつかあります。このような関数の名前は*Listです。示す:

  • FoldList
  • NestList
  • ReplaceList
  • ComposeList

私が見逃しているのはMapList関数です。

たとえば、次のようにします。

関数のアプリケーションごとにリスト要素が必要です。


これを次のように実装できます。

ただし、それは非常に非効率的です。この単純なケースを考えて、これらのタイミングを比較してください。

これはMapList、関数をリスト内のすべての要素にマッピングして1000x1000配列を作成する合計よりも、平均して約38倍遅いことを示しています。


したがって、MapListを最も効率的に実装するにはどうすればよいでしょうか。

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

performance - リストにゼロが含まれているかどうかを確認する最速の方法

シークレットサンタへの回答を準備しているときに、 「有効な」順列を生成しているときに、リストにゼロが含まれているかどうかを確認する必要がありました。Mathematica 7でこれを行う最も速い方法は、非負の整数の短いリストに重点を置いて、何であるか疑問に思っています。

使用Min[list] === 0は私が見つけた最速で、MemberQまたはよりも高速ですが、以下の操作FreeQと同等のより高速な方法があることを望んでいます。BitXor

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

colors - MathematicaのListDensityPlotに関するColorFunctionとBlend

Mathematica 7のListDensityPlotを使って(x、y)の位置に対応する一連のデータをプロットしようとしています。これ mydataはデータトリプレット{x、y、f}のリストです。ここでfは-4.5から+4.5までの実数です(包括的)。

ListDensityPlotには、f = -4.5の場合は濃い青色、f = + 4.5の場合は濃い赤色、fが-4.5〜+4.5の場合は青と赤の間で線形補間される色が必要です。

私は次のようなコマンドを使おうとしました:

私は次のようになります:

mydataのListDensityPlot

以下に貼り付けmydataました。ListDensityPlotはプロットを生成しますが、奇妙なことに、非常に負のfの領域は、本来あるべき青ではなく、白に着色されています。これを修正する方法について何かアイデアはありますか?

どうもありがとうございます!

アンドリューデヤングカーネギーメロン大学

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

parallel-processing - この Mathematica 7 Do ループは順番に動作するのに、(ParallelDo を使用して) 並列でエラーを生成するのはなぜですか?

Mathematica 7 を実行しており、.Doを使用して単純なループを並列に実行しようとしていParallelDoます。次の標準的なシーケンシャル コードは正常に動作します。

ただし、ParallelDo標準の代わりに使用するとDo、次のコードでエラー メッセージが表示されます。

表示されるエラー メッセージは次のとおりです。

このDoループを並行して実行するためにできることはありますか?

ありがとうございました!

アンドリュー・デヤング

カーネギーメロン大学