トップページsim
242コメント78KB

mathematicaによるシミュレーション教えてください

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@1周年 NGNG
mathematicaを使って時間を変数としてもつ関数を
求めたのですが,この関数の例えば0.1秒刻みの値を
出力させるにはどうしたらよいのでしょうか?
できれば,Exelに出力させたいのですが。
ご存知の方,教えていただけませんか。
0082mathematica愛好家NGNG
>>59さんへ
あんまり期待した答えかもしれないけどかいときます。
In[ ]:=
n = 3;
data = Table[i, {i, 1, n}];
list1 = Partition[Flatten[Outer[List, data, data, data]], 3];
list2 = Partition[Flatten[Outer[List, data, data, data, data]], 4];
list3 = Partition[Flatten[Outer[List, data, data, data]], 3];

Clear[a, b, c, d, e, f, g, s, t, u];
Flatten[Table[{siki[[1]] //. {a -> list1[[i, 1]], b -> list1[[i, 2]],
c -> list1[[i, 3]]}}, {i, 1, Length[list]}]]
Flatten[Table[{siki[[2]] //. {d -> list2[[i, 1]], e -> list2[[i, 2]],
f -> list2[[i, 3]], g -> list2[[i, 4]]}}, {i, 1, Length[list]}]]
Flatten[Table[{siki[[3]] //. {s -> list3[[i, 1]], t -> list3[[i, 2]],
u -> list3[[i, 3]]}}, {i, 1, Length[list]}]]

Out[ ]:=
{1., 2., 3., 2., 4., 6., 3., 6., 9., 2., 4., 6., 4., 8., 12., 6., 12., 18., \
3., 6., 9., 6., 12., 18., 9., 18., 27.}

{1., 0., -1., 2., 1., 0., 3., 2., 1., 0.5, -0.5, -1.5, 1.5, 0.5, -0.5, 2.5, \
1.5, 0.5, 0.333333, -0.666667, -1.66667, 1.33333, 0.333333, -0.666667, \
2.33333, 1.33333, 0.333333}

{1., 0.5, 0.333333, 2., 1., 0.666667, 3., 1.5, 1., 2., 1., 0.666667, 4., 2., \
1.33333, 6., 3., 2., 3., 1.5, 1., 6., 3., 2., 9., 4.5, 3.}

です。nを変えれば、3だけではなく4でも5でもいいです。
でも、list1,2,3は変数の数によるので注意が必要です。
ちなみに、//Nはレスを書き込む際にコピーペーストがうまくいかないので
小数ででるようにするために入れたものです。実際に計算するときははずすと分数表示になってみやすいです。
時間がだいぶかかってごめんなさいね。
0083mathematica愛好家NGNG
>>79さん
Mathematicaの上でC++を使いたいのですか?
それとも、C++の上でMathematicaを使いたいのですか?
MatheLinkとかlibraryをつかえばC++の上でlibararyとしてMathematicaの組み込み関数などをつかえますよ。
0084mathematica愛好家NGNG
>>81さん
Mathematicaを学ぶ方法としてもっとも適していると思うことは、
自分がしたい計算(たとえば微分積分など)についてMathematica Book
(アプリケーションの中にもあるし、製本したものもある、高いけど)
を丁寧によんでいろいろ試してみることだと思います。
いろいろな人がMathematicaの本を書いてるけど、基礎ができてからでないと挫折してしまうおそれがあります。
Mathematica Bookが一番のテキストだと思います。目次をみておもしろそうなのを自分で実行してみて勉強してみましょう!
008559NGNG
>>mathematica愛好家さん
ありがとうございます
いまから、試してみます
この計算結果がどうしても学会に使いたいのです
008681NGNG
>>mathematica愛好家さん
親切にありがとうございます。
自分が使っているのはstudent版だからMathematica Bookの本は持ってないので
アプリケーションの中にあるのでコツコツやっていこうと思います。
0087あぼーんNGNG
あぼーん
0088mathematica愛好家NGNG
>>59さん
よかったです。お役にたてて。
学会頑張ってください!
0089mathematica愛好家NGNG
>>81さん
Mathematicaいいやつなんで、頑張ってみてください。
ある程度わかってきたら各分野でMathematicaの本が出版されているので
専門書でさらに磨きをかけたり、Mailing Listに登録して(無料)
みんなにいろいろ質問してみてください。
もちろんこのスレでみんなに質問することもいいことだと思いますよ。
009059NGNG
>>mathematica愛好家さん
やっと、さきほど自分の研究用のものに教えていただいたプログラムを
改良することができました。
結果は学会の要旨に載せられそうです。

Flatten[Table[{siki[[1]] //. {a -> list1[[i, 1]], b -> list1[[i, 2]],
c -> list1[[i, 3]]}}, {i, 1, Length[list1]}]]

こうすれば、よかったのですね
siki[[i]]の変数がn個の時にも使用できるようにがんばって改良してみます。
0091Mathematica愛好家NGNG
>>59さん
Length[list]って以前は書いてしまったけどどこにもlistは作ってませんでしたね。
うっかりレスを書いているときにまちがえてしまいました。
Length[list1]等にしないといけませんね。間違いに気付いてくれて良かったです。
要素がn個の時はなんだかややこしそうですね。
要旨がんばってください!
ちなみに、
In[]:=
Clear[list1, list2, list3, siki];
siki = {e1[[1]]*e1[[2]]*e1[[3]], e2[[1]]/e2[[2]] + e2[[3]] - e2[[4]], e3[[1]]*e3[[2]]/e3[[3]]};
siki[[1]]
siki[[2]]
siki[[3]]
sub1 = Table[e1[[j]] -> list1[[i, j]], {j, 1, 3}];
sub2 = Table[e2[[j]] -> list2[[i, j]], {j, 1, 4}];
sub3 = Table[e3[[j]] -> list3[[i, j]], {j, 1, 3}];
n = 3;
data = Table[i, {i, 1, n}];
list1 = Partition[Flatten[Outer[List, data, data, data]], 3];
list2 = Partition[Flatten[Outer[List, data, data, data, data]], 4];
list3 = Partition[Flatten[Outer[List, data, data, data]], 3];
Flatten[Table[{siki[[1]] //. sub1}, {i, 1, Length[list1]}]]
Flatten[Table[{siki[[2]] //. sub2}, {i, 1, Length[list2]}]]
Flatten[Table[{siki[[3]] //. sub3}, {i, 1, Length[list3]}]]
として置換リストsub1-3までつくり、要素をe1[[j]]などで一般型でかくといいかもしれません。
結果はsikiが前と同じ定義なので同じ結果が出力されるはずです。
0092あぼーんNGNG
あぼーん
0093あぼーんNGNG
あぼーん
0094Mathematica愛好家NGNG
>>59さん
追加です。
e[[j]]として要素を定義しますが、演算子は
siki={Sum[e[[j]],{j,1,n}],Product[e[[j]],{j,1,n}],...}
等にすればいいのでしょうか?
またうまくいけば教えてください。
009559NGNG
>>Mathematica愛好家さん
ご教授ありがとうございます

式はほかのソフトウエアから取り込みます。
式の要素はn個で、式の数もi個です。
それを区別するには区切り子として*,/,+,-などをとらえる必要があると思っています
もう少し考えて見ます。
0096あぼーんNGNG
あぼーん
0097名無しさん@1周年NGNG
MAXIMAやMATHLABは比較的盛況なのに、
Mathematicaはなぜこんなに閑古鳥が泣いているのだろうか?
0098名無しさん@1周年NGNG
JLink使ってる人はいませんか?
0099名無しさん@1周年NGNG
スレの趣旨とは全然関係ないですが、スチューデント版って注文から納品まで
どのくらいかかるものなんでしょう?

最初、注文したときは「一週間くらい」といわれ、2週間たったのに連絡して
こないから聞きにいったら「二、三週間くらい」といわれたのですが、たかが
ソフトの注文にそんなにかかるもんなんでしょうか?
単に生協のおばちゃんが忘れてただけじゃないかと・・・
0100名無しさん@1周年NGNG
>>99
多分、生協のおばちゃんがすぐに卸業者に電話しなかったためでしょう。
ふつう、注文したら一週間ちょっとで、きます。
Mathematica 4.1を注文したときはそれくらいでした。
卸業者の在庫がなくて、という話なら別ですが…
0101名無しさん@1周年NGNG
堺屋太一が恐ろしいシミュレーションをしています。
http://www.geocities.co.jp/WallStreet-Stock/7553/

中国の需要拡大に伴い、世界的な資源危機が発生、
エネルギー資源、希少金属、食糧の国際価格が跳ね上がる。

また、日本は少子高齢化によって若年労働力が激減するため輸出競争力が低下し、
中国の輸出に押される。貿易赤字が急拡大し、2018年には1ドル300円にまで円安が進む。

国内の平均物価は現在の3倍に急騰、消費税は20%に近づく。その上、燃料税も増税されるため
ガソリン市販価格はリッター千円になる。・・・ということらしいのですが。
0102λφ³NGNG
>>99
わたしもバージョンアップを頼んでますが、Mathematica4.2日本語版は
WolframResearchの出荷の遅れがあって出荷は10月になるって言って
ました。
0103名無しさん@1周年NGNG
となると、私の注文も10月まで待たされることになる可能性が高いって
ことでしょうか。それならそうと生協のおばちゃんもちゃんと報告して欲
しい、、、つーかそもそも約束の期日を越えても連絡してこないってのも
普通の社会なら許されないことでしょうけど。
0104λφ³NGNG
>>103
生協の人も怒ってました。WolframResearchに抗議するとか言ってたけど
音沙汰ないなぁ。どうなってんだか。
0105あぼーんNGNG
あぼーん
0106名無しさん@1周年NGNG
>MAXIMAやMATHLABは比較的盛況なのに、
MAXIMAって別スレッドにありますけどね。
やっぱり世界的に見て人気ある数式処理はMathematica/Maple/Mathcad
数値演算はMatlab
MATHLABって何?
010797NGNG
>>106
Matlabの間違いです。すみません。。。。。。
0108あぼーんNGNG
あぼーん
0109あぼーんNGNG
あぼーん
0110あぼーんNGNG
あぼーん
0111あぼーんNGNG
あぼーん
0112あぼーんNGNG
あぼーん
0113名無しさん@1周年NGNG
mgのメーリングリスト(英語版マセマティカメーリングリスト)

でどんなことが話題になっているか、簡単(触りだけ)に紹介しましょう。
登録していない人は
http://smc.vnet.net/mathgroup.html
を開けて、そこのImportant MathGroup Email Addressesの節の中の
Subscribe to MathGroup をクリックすることをお薦めします。
0114名無しさん@1周年NGNG
教えてください.mathematicaで不等式ってできますか?
どうやればいいのですか?初心者なんでお願いします!
0115名無しさん@1周年NGNG
<<Algebra`InequalitySolve`
InequalitySolve[x (x^2 - 2) (x^2 - 3) > 0, x]

とすると答えがでます。その他いろんなことは、ヘルプで
Master Index のボタンをおして、inequalityとしてみてはいかが?
0116114NGNG
115さんありがとうございました.ヘルプ見ましたが,お教えいただいたように入力したのですが,動きません.
パッケージが足りないとかあるんですかね?
0117あぼーんNGNG
あぼーん
0118あぼーんNGNG
あぼーん
0119名無しさん@1周年NGNG
`InequalitySolve`はごらんのとおり前と後ろにバックスラッシ「`」がついて
います。そのままコピーペーストするとうごきます
0120あぼーんNGNG
あぼーん
0121114NGNG
119さんありがとうございます.
ところで,ヘルプを参考にしつつ,
実行してみました.
その手順としては,
<<Algebra`InequalitySolve` (enter)
(反応なし)
InequalitySolve[x (x^2 - 2) (x^2 - 3) > 0, x](enter)
ヘルプではこれで解がでるはずなんですが,次のようにアウトプットされます.
InequalitySolve[x (x^2 - 2) (x^2 - 3) > 0, x]
つまり,解が出てきません.何か足りないのでしょうか?
ちなみにmathematica3.0です.

0122114NGNG
119さん,バージョン4.0だったら,不等式解けました.
ありがとうございました.
0123名無しさん@1周年NGNG
age
0124名無しさん@1周年NGNG
mathematica日本語キットをインストールしても日本語になりません。
なんで?
0125名無しさん@1周年NGNG
>>124
いや、日本語キットをいれて立ち上げるとすぐに日本語になりますよ。
ちなみにわたしはMac使ってますけど、OS9では問題なく日本語キット
が動きますよ。OSXでは、OSの環境を日本語にしていれば、
本体をインストールするだけで日本語が表示されます。
ただ、工場から出荷する際、間違えて英語版を日本語版のパッケージに
いれたというミスを聞いたことがありますが、
インストールした際に日本語が表示されないときは英語版なので
交換してくれるそうです。(当たり前ですが)
Windowsにインストールしたのであれば全て再インストールしたほうがいいかも知れませんね。
ただ、再インストールすると、Math IDが変ったりしてPasswordの再発行が必要になるかも知れませんが…
0126名無しさん@1周年NGNG
Windowsで再インストールしても日本語化できない。
0127名無しさん@1周年NGNG
>>126
Mathematicaで使用する言語をJapaneseにしてる?
0128名無しさん@1周年NGNG
オプションインスペクターで日本語にしましょう
0129名無しさん@1周年NGNG
>>128 それってどこの機能?
0130名無しさん@1周年NGNG
age
0131名無しさん@1周年NGNG
ファイル->パレット->言語設定
でも駄目か?
0132名無しさん@1周年NGNG
ファイル->パレット->
に言語設定っていうのがない!
パレットには7つ選択肢があって、
言語設定って英語でなんていいます?
Language Preference とかじゃないですか?
そういうのはないですが。
0133名無しさん@1周年NGNG
age
0134名無しさん@1周年NGNG
>>132
ver4.1 では、GengoSettei になってる。
0135名無しさん@1周年NGNG
mathmaticaでYの字のように2方向から進行する波が
一つに収束するようなものをアニメーションするにはどうるればいいんでしょうか?
0136名無しさん@1周年NGNG
>>134 GengoSetteiなんてない
0137名無しさん@1周年NGNG
>>134 GengoSetteiなんてない。ver4.0です。
0138名無しさん@1周年NGNG
あげ
0139名無しさん@1周年NGNG
mathematicaで有限要素法電磁界解析って無謀ですか?
Cでやるよりかなり時間かかりそうなんですが。
0140名無しさん@1周年NGNG
>139
なんの目的でそういう事をするのか?

1)結果だけ欲しく、物設計用
仮に Mathematica を持っている、としても
無謀です。実行スピード、メモリサイズで
割に合いません。 Mathematica が動くスパコンを
持っているとしても、構築の手間が膨大です。
教科書コードの丸移植でもコンパイラでしょう。

2)離散化手法自体をあれこれ試す
数学が得意ならば Mathematica でもよいかも。。。
まあそういう人が作ってくれたら神でしょうがね。
0141名無しさん@1周年NGNG
x y A
のようなデータの等高線を描かせて、囲まれた面積(たとえばA=20の面)
の面積を計算させることは可能でしょうか?
等高線を描かせたのはいいが、そこで行き詰っています。。。
0142名無しさん@1周年NGNG
>>141
x,yが均等な間隔なら、A>=20となる点の数を数えれば良いかな。
そうでないなら、ちょっとめんどい。
0143名無しさん@1周年NGNG
>>141
なんかの三次元関数z[x,y]とz=Aの切片がなす閉曲線の面積?
閉曲面の表面の面積?
何をもとめたいの?
0144名無しさん@1周年NGNG
4.2やっと購入しました。OSXの上で動かしています。
何となく全ての動作がはやくなりました。すごいです。
4.0->4.1より4.1->4.2のほうがパワフルです。
0145名無しさん@1周年NGNG
でももう二年たつんですね。このスレ…
0146名無しさん@1周年NGNG
前までmathematicaつかっていたけど、やっぱcやフォートランのほうが
なにぶんやりやすいぞ。
0147名無しさん@1周年NGNG
>>146
確かに計算が早いけどMathematicaは組み込み関数が便利なので
ずっとMathematica使っています。データのフィッティングも簡単やし。
0148名無しさん@1周年NGNG
Mathematica4.2になってから非線形の最適化プログラムが強化されましたが
そのなかで、NMinimizeというコマンド(非線形simplex法)がありますが実際使ったことのある人、
使い心地を教えてくださいませんか?また、Nelder-Meadもオプションについたみたいなんですけど
これも使ったことのある人、感想おしえてください。
0149148NGNG
NMinimizeは変数が二個までしかフィッティングできないので
多量変数(三個以上)の場合はFindMinimumで極小値を求めないとだめっぽい。
NMinimizeはそういうアルゴリズムなんかなぁ?
0150名無しさん@1周年NGNG
NMnimizeのMethodオプションにランダムサーチやNelder-Mead
がついてるし、NMinimizeは非線形simplex法を採用していてかなり
すごい!でも、Nelder-Mead自体は1965年に発表された方法だから
採用するのに時間かかりすぎ?
また、Analysis of Variance (ANOVA)でfittingの精度をきちんと
見積もることができるようになったのはうれしい。

0151名無しさん@1周年NGNG
Mathematica のホームページを見るとNMinimizeでは
「遺伝的プログラミング」を使用できると書いてあるが、
本当か?だったら本当に面白いが、「遺伝的アルゴリズム」
の間違いじゃないだろうか。

・・・と思って英語版レビューのページみたら、これはやっぱり
遺伝的アルゴリズムじゃないか!
0152名無しさん@1周年NGNG
>>151
遺伝的アルゴリズムってどういうイメージ?
よくしらないんで教えてもらえるでしょうか?
0153名無しさん@1周年NGNG
>>152
わかりやすいのがあんまり無いな。
http://florida.mes.titech.ac.jp/ga-j.html
0154名無しさん@1周年NGNG
test
0155152NGNG
>>153
ありがとうございました。
さっそく勉強してみます。
0156あぼーんNGNG
あぼーん
0157名無しさん@1周年NGNG
須藤元気がもっと強くなりますように。
0158名無しさん@1周年NGNG
mathematicaで多重積分(n重責分)を表現するにはどうすればよろしいですか?
これができないものかと悩んでいます。。。
0159名無しさん@1周年NGNG
Integrate[f[x,y],{x,0,1},{y,0,1}]
じゃだめ?
0160158NGNG
2重積分ならわかるんですけどね。
一般にn重となるとどうしていいかわからなくて。。。。
∫…∫dx1dx2・・・・dxn
っていうのをmathmaticaを使って計算させてみたいんです。
0161名無しさん@1周年NGNG
>>160
具体的にどういう計算をしたいか良くわからんが、
Ver4.1以降ならBoole関数使うと上手く行くかも。
0162名無しさん@1周年NGNG
>160
つまり、引数が可変ということ?
だとすると、こんなのはどうでしょう(頭で考えただけで未検証)
1)積分変数とその区間の組を List で作る
2)そのリストに被積分関数を Prepend
3)Apply で List を Integrate

0163162NGNG
もしも Integrate[f[r_vector], Domain] なんてのがご希望でしたら
すいません。

大人しくリーマン和かモンテカルロを構成するのかなぁ。。。
0164名無しさん@1周年NGNG
あのお、マスマティカで経路積分がしたいんですが、よr
0165名無しさん@1周年NGNG
>164

時間分割タイプの式をちらっとしか見たことありませんが
ちょっとしたソフトウエアプロジェクト並になると思います。
ググったら、2〜3の米国大学でシラバスのトピックで
見かけた内容ですね。

領域が変なタイプの場合の対応として
積分領域を含む単純タイプの新領域 +
  領域内外区別用の Heviside x 被積分関数
にしてみたり

有限分割で式を組み立てて、 Limit もしくは
分割数大で数値的な収束を見る

C とかでライブラリがありそうな気がしますので、
そのソースを解読し、 Mathematica ならではの
リスト処理をするのが早いと思います。
0166名無しさん@1周年NGNG
>>164
無限重積分なんてできっこないだろ!
0167名無しさん@1周年NGNG
単純にxをn回積分するのも簡単にできないのかなぁ?
0168名無しさん@1周年NGNG
n個のデータをn個のファイルに保存するにはどうすればよいですか?
0169名無しさん@1周年NGNG
ひとつひとつ、Exportするのはだめ?
多分、任意のn個のdataを自動的にファイルの名前にaaa_###.txt
としてセーブしたいんですよね?
めちゃめんどうです。
0170169NGNG
パターンの認識は他のプログラム言語(perl、awk etc)
に比べてかなり面倒です。
data[[n]]としてわりあてて
Table[Export[data[[n]].txt,data[[n]],"Table"],{n,1,100}]
として発生しておき、実行するしかないでしょう。
やったことないのでちゃんと動くか分かりませんが…
0171名無しさん@3周年NGNG
誤差逆伝搬法のアルゴリズムを教えてください.
各層3層でのさくっと書いてくださる方,お願いします.
0172BPNGNG
>>173
バックプロパゲーションならネットでも簡単にひっかかるだろ
検索してみな
0173名無しさん@3周年NGNG
「ますます出来るMathematica」
http://www.catkk.co.jp/mathcd/index.html

これ使うと勉強効率あがるかしら?
0174名無しさん@3周年NGNG
VBAからmathematica動かしたいんですが、
詳しく書かれてるHPとかありませんかね?
wolframのHPだけだと、よくわかりません、、、
0175名無しさん@3周年NGNG
age
0176200NGNG
200get
ついでにage
0177_NGNG
http://homepage.mac.com/hiroyuki44/hankaku03.html
0178超初心者NGNG
図を描くのに必要なのですが、
ImplicitPlotはどうやったら使えるようになるのでしょうか?
ヘルプにある以下のプログラムを打ち込んでも
下の行の式をそのまま返してくるのですが・・・

<< Graphics`ImplicitPlot`
ImplicitPlot[x^2 + 2 y^2 == 3, {x, -2, 2}]

きちんと各行shift+enterで入力決定しております。
よろしくお願いします。
0179名無しさん@3周年NGNG
>>178
Packageがうまく組み込めていないかもと思われ。
Input menu->Get File Pathで、<<のあとにパスを入れてミソ
きれいな楕円だね?
0180超初心者NGNG
>>179
お返事ありがとうございます。
申し訳ありませんが、具体的なプログラムを書いていただけますでしょうか?
<<C:\Program Files\Wolfram Research\Mathematica\5.0\SystemFiles\Graphics\Packages\FileGraphics.m Graphics`ImplicitPlot`
ImplicitPlot[x^2 + 2 y^2 == 3, {x, -2, 2}]
ではダメでした。
0181名無しさん@3周年NGNG
<<"C:\\Program Files\\Wolfram
Research\\Mathematica\\3.0\\AddOns\\StandardPackages\\Graphics\\ImplicitPlot.m"
で、shift+enter
ImplicitPlot[x^2 + 2 y^2 == 3, {x, -2, 2}]
で、また、shift+enter
■ このスレッドは過去ログ倉庫に格納されています