問題タブ [wolfram-cdf]
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.
wolfram-mathematica - CDFプレーヤーからデータを取得する
私のSkepticsワーキンググループのために、私はMathematica でプログラムを書き、写真を使って見せられた人物の状態を評価するダウザーの能力をテストしました。null 測定のために、このドキュメントをグループのメンバーに CDF 形式 (新しい v8 Computable Document Format、CDF-playerで実行するためのもの) で配布しました。私のコンピューター (mma を使用) ではすべて正常に動作しますが、他のコンピューターではデータをエクスポートできません (プログラムは Excel ファイルへのエクスポートを行います)。細かい活字を読むと、プレーヤーがエクスポートをサポートしていないことがわかります。だから私の質問は:
CDFプレーヤーからデータを取得する方法はありますか?
wolfram-mathematica - webMathematica からCDFを提供する
次の(編集された)コードのスニペットを Mathematica に入力するとします。
nbTest と cdfTest の両方が True であることがわかりました。webMathematica 内から同じコマンドを実行すると、nbTestはTrueですが、cdfTestはFalseになります。ここでその結果を見ることができます:
http://www.cs.unca.edu:8082/webMathematica/generateCDF.jsp
その結果を生成するコードは次のとおりです。
http://www.cs.unca.edu:8082/webMathematica/generateCDF.jsp.txt
webMathematica のセキュリティ設定を調べてCDFエクスポートを有効にする方法を見つけましたが,見つかりませんでした.これを有効にする方法を知っている人はいますか?もちろん、このコンテキストでは意図的に無効にすることもできます。
私の意図は、HTML フォームを介してアクセスされる JSP ページから動的に生成された CDF ドキュメントを提供することです。これにより、テキスト入力と組み合わせて CDF を適切に操作できるようになります。
編集: サーバー上の Mathematica のバージョンを更新し、上記のコードを更新して、完全なバージョン文字列が表示されるようにしました。したがって、バージョン 8.0.1 であることがわかります。問題は解決しません。
wolfram-mathematica - CDF プレーヤーのインターネット アクセス構成
CDF Player のインターネット アクセス構成はどこにありますか?
Mathematica で、システムと同じ構成を使用するように指示すると、機能しません。この同じ構成を自分で作成すると、機能します。
CDF Player でも同じことをしたいです (インターネットが見つからないと表示されます)。「好み」ってどこ?
ありがとうございました、
wolfram-mathematica - Mathematica グラフィックスのちらつきとダブルバッファリングに関する質問
Mathematica はグラフィック表示のダブルバッファリングをどのように処理しますか? それは自動的に行われますか?
私が質問している理由は、アニメーションを実行するときに、アニメーション レートによっては、グラフィックが画面上で更新されている間にちらつきが気になるからです。速度を遅くすると、これを減らすことができます。
以下に簡単な例を示し、表示されているちらつきを減らす方法について専門家にアドバイスがあるかどうかを尋ねます。
この例では、円の周りに点を描画します。アニメーションの実行中にちらつきが発生します。つまり、ボールの動きがスムーズではありません。速度を遅くすると、ちらつきが減少します。でもレートが高くてもちらつきを抑えるにはアウェイがあればいいのでは?
だから私の質問は:これはどうあるべきかということですか?または、レートが「最適」に設定されていなくても、アニメーションの更新をよりスムーズに実行する(ちらつきを減らす)ために使用できるトリックとヒントはありますか?また、Mathematica はグラフィックスの更新に内部的にダブルバッファリングを使用しますか?
Windows 7、64 ビットで V 8.0.1 を使用しています。
ありがとう
更新 1 私の質問が適切に提起されていない可能性があります。私は Animate を直接使用していないので、Mathematica を責めることはできません。現在 RunScheduledTask[] を使用してタイマーを更新しています。各タイマー インスタンスで、Graphics に新しいプロットを作成します。それを使用してここに投稿する小さな例を作成するのは困難だったので、上記では代わりにトリガーを使用しました。したがって、現在は実際にトリガーを使用していないため、この場合は RefreshRate を使用できません。
このページや他のページなど、画面の更新に関するこれらの問題について話しているさまざまな Web ページを見ていたので、質問しました。
これは、二重振子のアニメーションを作成するために、私が現在作成している CDF です。delta_t を大きくすると (これは、見つかった ODE に対する数値解の各間隔の間の時間です)、アニメーションが表示されます。画面にはたくさんのちらつきがあります (または、好きな用語を使用します)。ポイントは、目で見るのが簡単ではないということです。これを防ぐために何かできるかどうかを知りたいと思っていました。
CDFはこちら
マウスを使用して振り子の位置を変更し、ちらつきの効果をさらに確認することもできます。
RefreshRate を指摘していただきありがとうございます。
今のところ、delta_t を小さくしておく必要があると思います。
更新 2
これは、グラフィックを更新するために使用するコードのセクションです
上記の「更新」は、私が制御する time_interval ごとに、scheduledTask によって更新される変数です。
アップデート
私が見たアプレットは、Java で二重振り子をアニメーション化するものでもあると思いましたが、ほぼ同じ速度で実行した場合でも、私が行ったものよりもはるかにちらつきが少ないと思います。ここにリンクがあり ます http://www.myphysicslab.com/dbl_pendulum.html
ですから、まだまだやるべきことがあると思います。このちらつき効果を減らす方法を見つける必要があります。
wolfram-mathematica - Manipulate構造を使用せずに「SaveDefintions」を実行するにはどうすればよいですか?
テキストの中央にダイナミックピースを配置するCDFドキュメントを作成しています。このドキュメントはPlayerで動作するはずです。
異なるセルの周りに散らばっているすべての動的な部分からアクセスする必要があるグロガル値を登録するための最良の方法は何ですか?
たとえば、g = 9.8を定義し、さまざまなセルに配置されているすべてのダイナミクスがこの値にアクセスできるようにします。これはプレーヤーで機能するはずなので、この値はMathematicaのセッション間で持続するはずです。
私は2つの異なる方法しか考えられませんでした:
- ユーザーがファイルを開いたときにクリックする必要のあるアクションボタン。ノートブックで使用されている必要なすべての=および:=を起動します。
- SaveDefinitions-> Trueを使用し、変数がマニピュレートにローカライズされていない空のマニピュレーションを作成します
どちらも人工的すぎるようです。
ダイナミクスの表示を受け入れる人がすでに下にスクロールして、必要なすべての定義を実装するダイナミクスを通過している可能性があるため、表示された後にのみ定義を設定する他の方法を使用するのは適切ではありません。
では、Manipulate構造を使用せずに「SaveDefintions」を実行するにはどうすればよいでしょうか。
wolfram-mathematica - CDF Player の入力フィールド内で ENTER を押すと、行が重複します。行動を変えるには?
読者が自分の値を入力できるように、テキストの途中にいくつかの InputFields を持つ CDF を作成しました。
CDF プレーヤー (8.0.3) では、ユーザーがフィールド内の値を変更した後、"Return" または "Tab" または "マウスで他のフィールドを選択する" の代わりに ENTER を押した場合を除いて、すべて正常に動作します。
彼が ENTER を押すと,CDF プレーヤは Mathematica が行うのとまったく同じことを行います.行が複製され,最終的に内部のセル構造が中央に表示されます.
Mathematica のすべてのユーザーは ENTER を押すことを簡単に避けることができますが、CDF Player のユーザーはこの ENTER/RETURN の二重性に気付いていない可能性が高いです。
覚えているすべてのノートブック オプションを試しました: 展開済み、編集可能など、成功しませんでした。
私が覚えていたもう 1 つのことは、NotebookEventAction で ENTER アクションを削除することでしたが、それを行う方法が見つかりませんでした: {"KeyDown", "Enter"}->Null ??? ; Enter、EnterKey、[EnterKey]などを試しましたが、成功しませんでした。
CDF Payer からこの Enter サイド エフェクトを削除するのを手伝ってくれる人はいますか?
wolfram-mathematica - Manipulateの外部では高速にプロットしますが、Manipulateの内部では低速でプロットするコード。理由を見つけるのに役立ちます
ダイナミクスを直接使用する高速アルゴリズムを使用してODEの解の結果をプロットするコードを考えると、画面上に解を非常に高速にプロットすることがわかります。
このアルゴリズムをManipulate[]に統合したところ、プロット部分が以前よりもはるかに遅くなっていることに気付きました。
私はこれに4時間費やしましたが、これがなぜなのかわかりません。私は誰かが問題と問題が何であるかを見つけることができることを願っています。
アルゴリズムは、ここでの私の他の質問に対するレオニードの回答で今日投稿されたものです(レオニードに感謝します!)
アルゴリズムは非常に高速であり、プロットも高速にレンダリングします。ただし、ダイナミクスを直接使用します。Manipulate内で使用したいのですが。
私はそれをManipulateに統合しましたが、私が知っている限りでは、コードが進んでいるので、正しく実行したかどうかはわかりませんが、結果は正しいです。
プロットは機能し、元のアルゴリズムと同じように正しいプロットを生成しますが、プロットの速度ははるかに遅くなりました。すべてのパラメーターは両方の場合で同じです(つまり、問題のパラメーター)。これは私が長い間苦労してきた問題です。マニピュレートを使用するときにfpsを高速化する方法。
したがって、問題は、Manipulate内で実行するために統合することにあるか、効率的でないものを作成したか、ManipulateがすでにDynamicModule []を使用しており、これがプロットのレンダリングを遅くしたり、プロセス全体を遅くしたりするという副作用があったためである可能性があります。
Leonidコードを統合したManipulateコードを投稿します(さまざまな方法を試しましたが、すべてプロットが遅くなります。これは以下の1つのバージョンです)。
これが元のコードで、Leonidがここに投稿したものとまったく同じですが、上部に2つのパラメーターを追加したので、速度を比較しやすくするために、両方のバージョンでまったく同じパラメーターが実行されます。これを実行すると、上記と比較して、画面上でプロットが生成される速度に気付くでしょう。
なぜ速度の違いがあるのかを見つけるのに助けが欲しいです。アルゴリズムが外部では非常に高速であることがわかっているので、プロットの速度の違いはManipulate内のDyanmicsの相互作用によるものであると仮定します。
ヒントや試してみてくれてありがとう。
アップデート
わかりました、これは面白くなってきています。Dynamicsを使用するだけでCDFを作成できることを私は知りませんでした。Manipulateを使用する必要があると思いました。しかし、私は間違っていました。試してみましたが、実際に動作します。 これは私のサイトにあります。これは、減衰駆動振り子(関節に駆動力が存在するために無秩序な動きを示す)のシミュレーションであり、マニピュレートではなくダイナミクスを使用して記述されています。
上記のコードは次のとおりです。
これは、ダイレクトダイナミクスを使用した最初のCDFです。画面の更新におけるパフォーマンスの違いを確認したい場合は、Manipulateを使用した上記のバージョンを次に示します。この場合、大きな違いはわかりませんでしたが、これは振り子の位置をプロットしていること、バッファリングは不要、データ処理はないことに注意してください。ボブの位置をポイントごとにプロットするだけです。
ダイナミクスだけでCDFを作成できるようになったのは非常に興味深いことだと思います。
wolfram-mathematica - 関数間でのデータの受け渡しに関する簡単な質問
簡単な質問ですが、はるかに効率的な明らかな解決策を見落としていないことを確認するために質問しています。
非常に大きなリストなどの大きなデータ バッファーがあり、それを更新する必要があり、それを関数に渡して関数内で更新を行いたい場合は、次のようにします。
また、参照渡しを使用できないため (CDF では、関数の属性を HoldFirst などの何かに変更することはできません)、関数自体の内部でリストのコピーを順番に作成する必要があります。それを更新し、コピーを返します。
私の質問は、良くない「グローバル変数」を使用する以外に、これを行うためのより効率的な方法はありますか?
ps。約 1 年前、参照によるコピーについて 質問しました。Mathgroup の質問へのリンクを次に示します。(レオニードの回答のおかげで、有用な回答でした)。
しかし、ここでの私の質問は少し異なります.HoldFirstを使用できないため、この余分なデータのコピーを常に回避するために私が見ていない他の選択肢はありますか?サイズが大きくなりすぎるとプログラムが遅くなるようです.大きい。
(SetAttributes とその仲間は使用できません。CDF では許可されていません)。
最初に基本的な例を示し、次に HoldFirst を使用できる場合にどのようにするかを示します。
例
HoldFirst を使用できる場合は、次のように記述します。
コピーが行われないため、はるかに効率的です。参照渡し。
次のように、グローバル変数を使用できます
しかし、これは非常に高速であっても、もちろん悪いプログラミングです。
大きなデータ バッファがあり、Mathematica コードをモジュール化したいので、処理する大きなデータを渡す関数を作成する必要がありますが、同時に「効率的」に保ちたいと考えていました。
これを行うために見ることができる他のオプションはありますか?
これが以前に尋ねられた場合は申し訳ありませんが、SOを検索するのは難しいです。
ありがとう、
追加1
Unevaluated を使用するのは簡単ですが、リストが渡されていることを確認するために必要だった型チェックを使用できなくなりました。例えば
「a」にはヘッダー List がないため、この呼び出しは定義に「バインド」しません。
そのため、コードの堅牢性の一部が失われます。しかし、Unevaluated を使用すると CDF で機能し、それを使用するようにコードを変更するのは簡単でした。機能させるためにそこにあった余分な「型チェック」を削除する必要がありました。
wolfram-mathematica - PowerPoint または Keynote でダイナミクス/CDF を表示できますか?
プレゼンテーションで動的コンテンツを表示したいと考えています。しかし、木曜日までに Mathematica で自分のやりたいようにスライドを作成する時間があるかどうかはわかりません。
Powerpoint (Microsoft) または Keynote (Apple) プレゼンテーション内で Mathematica に動的オブジェクトを組み込むことは可能ですか?
ipad - iPad 上の CDF?
私の数学の教授は、インタラクティブなグラフ (つまり、CDF で生成できるようなもの) を iPad で生成できるようにしたいと考えています。ユーザーは、iPad 上の CDF プレーヤーを使用して、コンピューターで実行できるすべてのことを、Web ブラウザーで実行できるすべてのことを使用して、効果的に実行できる必要があります。canvas 要素の線に沿って何かを考えていましたが、iPad 用のネイティブ クライアントがあるかどうか知っている人はいますか? そうでない場合、Mathematica のグラフィックス コードをコンパイルして、Safari や Chrome が理解できるものにする方法はありますか?
ありがとう!