トップページ⇒math
1001コメント317KB

〓 Mathematica 2 〓

■ このスレッドは過去ログ倉庫に格納されています
0001132人目の素数さんNGNG
        _....._{{ 〃
      , - ' ,..、、.ヾ{{フ'⌒`ヽ、
    /  ,:', -‐‐` ´ '´⌒ヽ ヾ:、
.   ,'   ,'´ ,ィ ,ィ ,' ,   `ヽ',  ',-<
    ,'   .i  /|. /.| { i,  i,  }.  }_,,))
   ! |  ! .,'-.{ ! !|; |`、.}゙!.! |.  ! ヽ.
   ', ', |Vァ=、゙、 `゙、!-_:ト,リ', l ! |   ゙',
    ヽ、', l:!Kノ}.     f:_.)i゙i: リ ! l ル 
     | l!iヾ- ' ,   .!__:ノ ゙ ,リ l リ'´     
.     ',|!!、    r‐┐   ` ノ'. /,イ    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  
      'i!゙、ヽ、 ゙ー'  _, ィ,:',:''´    <  Mathematica に関する話題はここに書いてね!
      ゙:、ィ、jヾー::: 'iヘ .ノ',リ.        \___________________
   ,、- '´ ヽ、゙、   { `>"、  
  /\\    ',   }   //`ヽ

 ★前スレ

〓Mathematica〓
http://science2.2ch.net/test/read.cgi/math/985023298/
0577132人目の素数さんNGNG
>>569
5.1でたのか、知らんかった。
アップグレードのお知らせとか送ってくれないのかな。
ところで5.0からのアップグレードはいくらくらいぼったくられるのだろう?
0578132人目の素数さんNGNG
>>576
留年しろ
0579132人目の素数さんNGNG
Mathematica と LaTex ではどちらが数式の記述能力が上ですか?
たとえば、あまり一般的でない記法とかを自由に記述できたりしますか?
(どちらがきれいな表示かは問題にしていません。)
0580伊丹公理NGNG
初等的なものなら、Mathematica
編集ならLaTeX
自由自在、縦横無尽に使うなら TeX
0581132人目の素数さんNGNG
>>579
普通にそれぞれの用途を考えたらわかると思うが?
0582132人目の素数さんNGNG
>>580 >>581 ありがとう。
0583132人目の素数さんNGNG
0584132人目の素数さんNGNG
Mathematica5なんですが、EmacsのParen Match Highlightingのような機能
(対応する括弧を強調表示する機能)は無いでしょうか?
0585132人目の素数さんNGNG
Mathnoteいい
http://homepage2.nifty.com/autumn-soft/
0586132人目の素数さんNGNG
>>584
Edit -> Check Balance [Shitf Ctrl B]
0587132人目の素数さんNGNG
>>586
ありがとう。
自動的に強調表示してくれる機能は無いのね。残念。
0588132人目の素数さんNGNG
>>586

面白いね。
0589132人目の素数さんNGNG
Mathematica上での置換について質問します。

Mathematicaで置換するやり方はわかるのですが、
テキストファイルなどと違って置換する速度がかなり遅いです。
数個程度の置換ならば良いのですが、置換する数が数万個単位になるような
長い数式だと普通の置換のやり方ではさすがに時間がかかりすぎてしまいます。

今回困っているパターンについて
例えば数式で ax+by に対して"ax+by"のように「"」がついています
これではax+by自体を文字列とみなしてしまい中の計算は行ってくれません
Mathematica上で「"」→「」の置換を行えば問題は解決するのですが、これが数万個単位であるのです
特別なテキスト形式で保存しても文字列と数列では単純に「"」のあるなしではないので
「"」だけを削除すればよいという問題でもありません

よろしければ
Mathematica上で置換をテキストレベルに早く行うことができるやり方
もしくはMathematicaの表記どおりに「"」を削除を行うだけで解決するようなやり方
知っている方がいればお願いします
ツールの有無、シェアの有無にはこだわりません
0590132人目の素数さんNGNG
>>589
数万個どうやって作ったわけ?
手入力してしまったとかいうのでなければ、そのデータ入力のところからやりなおすのがいい。
参考>>402,>>404。

試してみるとバグだと言いたくなる遅さだね。フロントエンドを表示せずにはNotebook操作系の関数も使えないのが痛い。
0591132人目の素数さんNGNG
\!\(For[i = 1,
i <= C\_A + 1, \(i++\), \[IndentingNewLine]Which[\[IndentingNewLine]i ==
1, DM[1, 1] = \(-\((C\_B*\[Mu]\_B)\)\);
For[l = 2, l <= C\_A + 1, \(l++\),
DM[1, l] = 0], \[IndentingNewLine]i == \((C\_A + 1)\),
For[l = 1, l <= C\_A - 1, \(l++\), DM[C\_A + 1, l] = 0];
DM[C\_A + 1, C\_A] = C\_A*\[Mu]\_A;
DM[C\_A + 1, C\_A + 1] = \(-\[Mu]\), \[IndentingNewLine]i\ != 1\ && \
i\ != \((C\_A + 1)\), \
For[l = 1, l <= i - 2, \(l++\), DM[i, l] = 0];
DM[i, i - 1] = \((i - 1)\) \[Mu]\_A;
DM[i, i] = \(-\((C\_B*\[Mu]\_B + \((i - 1)\)*\[Mu]\_A)\)\);
For[l = i + 2, l <= C\_A + 1, \(l++\),
DM[i, l] = 0]]]\[IndentingNewLine]
DM = Array[DM, {C\_A + 1, C\_A + 1}]\)
のどこが悪いですか
0592132人目の素数さんNGNG
>>591
    DM2 = Array[DM, {C\_A + 1, C\_A + 1}]\)
にしたらわかる。
0593132人目の素数さんNGNG
solution=
NDSolve[
{Derivative[1][x][t]==-3(x[t]-y[t]),
Derivative[1][y][t]==-x[t]z[t]+27x[t]-y[t],
Derivative[1][z][t]==x[t]y[t]-z[t],
x[0]==0,z[0]==0,y[0]==2.1},
{x,y,z},
{t,0,100},
MaxSteps->5000,
Method->ExplicitEungeKutta];
ParametricPlot3D[
Evaluate[{x[t],y[t],z[t]}/.solution],
{t,0,100},
PlotPoints->5000];

でローレンツ方程式の解を3Dで描いたのですが、
この立体図形のy[t]=0での断面を描くにはどうしたら良いでしょうか。
Evaluate[{x[t],y[t]=0,z[t]}/.solution],
とやったら、断面にはならずにy方向無限遠点から見たような図になってしまいました。
0594132人目の素数さんNGNG
v=d(a+p/q)^(-c)*y
このような非線形の等式をpについて解いて、
p=の格好にしたいのですが、
こういう式変形をさせるにはどうしたらいいのでしょうか?
教えて下さい。
0595550NGNG
>568
遅くなりましたが,ありがとうございます.コードの意味も大体分かりました.
0596132人目の素数さんNGNG
Plot3Dでグラフを書くと、外側に直方体の枠が出るんですが
あの枠を出さない方法を教えてつかあさい。
0597132人目の素数さんNGNG
x^y=y^xのグラフを表示させたいのですが、
Mathematicaで陰関数を表示する方法はありますか?
GCalcやfunctionViewなどでできるんですが、
Mathematicaでもできるのかなと思いまして。
0598132人目の素数さんNGNG
>>594

First move d and y to the left hand side.
second, take the power of -1/c and then move a to the left hand side
0599伊丹公理NGNG
>>597
(log x)/x の重複値を調べる
0600132人目の素数さんNGNG
>>593
お願いします。
x[t],y[t],z[t]の式出してそこにy[t]の値を代入、とかできるのかな?
何にせよ今mathematica使えないからなぁ…
0601132人目の素数さんNGNG
>598
返信ありがとうございます。
でも、もちろん、私も手では計算できるんですけど、
もっと実はもっと複雑な非線形の等式で似たような事を
したいので、それをmathematicaに計算させたいのです。
それってどういうコマンドを使えば良いんですかねぇ?
0602132人目の素数さんNGNG
>>597
<< Graphics`ImplicitPlot`
ImplicitPlot[ {x^y == y^x}, {x, 0.1, 10}, {y, 0.1, 10}]
0603593NGNG
お答えお待ちしてます… orz dogeza
0604132人目の素数さんNGNG
>>603
しつこいな(w 今まで見た奴は誰も知らなかったから答えてないんだろうよ。
俺も簡単な方法は知らない。

思い付くのは、
1) とりあえず3Dのグラフを書いて、グラフデータの線分
(FullFormすればLine[List[...],List[...]]のようなものでグラフが書かれていることがわかる)
と平面y == 0との交点を求める。
2) y[t] == 0 をFindRootで解く。解がたくさんあるので
FindRootの初期値も十分たくさん取って、重複して出てきた解をのぞく。
最後にそのtに対してx[t], z[t]を計算する。
0605132人目の素数さんNGNG
>>604
ありがとう。色々やってみます。
1)の交点を求めることさえ難しいわけですが。
0606132人目の素数さんNGNG
もう少し詳しく…自分でもやりますが。
しつこいですね、ごめんなさい
0607593NGNG
y[t]をz軸に設定して、PlotRangeで-0.001,0.000と指定して無理やり断面を求めました。
皆さん色々アリガトウございました。
0608132人目の素数さんNGNG
>>593

いくらマセマティカといえどもかれが
答えを出しやすい所まで、お膳立てしてあげるのが
人間の仕事でしょう?
0609132人目の素数さんNGNG
>>608
so wht
0610132人目の素数さんNGNG
Mathematicaで萌え萌えはにゃ〜んヽ(´ー`)ノ
0611132人目の素数さんNGNG
グラフ表示で質問です
私が自分で定義した関数をPlot3Dでx軸,y軸の範囲を指定してあげると問題なくグラフが出ます
その点では問題はないのですが、一つだけ行いたいことがあるのでお聞きします

たとえばz軸の値が0〜100で表示されたとします
それを無理やり0〜10の範囲だけに絞って表示することができるのでしょう?
(x,yの範囲の変更を行わないことが条件です)
何がやりたいかといいますと
そのグラフは0〜10が最も多くごく一部が10~90の値を示しているので
そこに0~10の範囲に絞ってメモリ幅をもっと拡大し細かい表示が見たいのです
よろしくお願いします
0612611NGNG
いろいろ調べたところ何とかできそうです
板汚しすいませんでした
0613132人目の素数さんNGNG
>>612
> いろいろ調べたところ何とかできそうです
> 板汚しすいませんでした
できそうなら方法を書け。書かないから板汚しなんだよ。

PlotRange -> {0, 10}
0614132人目の素数さんNGNG
Solve関数を使って多項方程式でベクトル*行列=ベクトル
という形で問題を解いていますが、方程式を形つくるある変数を整数から小数
にすると
"行列\!\({\(\[LeftSkeleton] 1 \[RightSkeleton]\)}\)に含まれる悪条件より,結果\
\!\(RowReduce\)には重大な数値的エラーが含まれている可能性があります."
とでます。解が求まりません。
どうしたらいいのですか、教えてください。整数ならうまくいくのですが小数になった
とたんこのようになります。つまり、行列の中の要素に、小数が入っていることです。
0615614の者NGNG
あと、”原始的ではない式が想定されます”
とは、どういう意味ですか
0616132人目の素数さんNGNG
基本的にSolveは多倍長数や記号を用いた厳密な解、NSolveは浮動小数を用いた近似解を
想定しているけど、Solveで浮動小数を用いると、NSolveと同じ結果になって、Solveの本来
意図した結果とは異なることがありますよ、と言う意味だと思う。

浮動小数による数値解を求める時には、最初からNSolveを使った方が早いらしい。
(少なくとも昔は) Mathematicaでは式の中で小数があると、式のデータを全て浮動小数と
して扱うので計算が速くなる。 Mathematica bookのどっかに書いてあった気がする。
0617132人目の素数さんNGNG
>>614
行列には"条件数"というものがあって、それが「悪い」と
浮動小数点演算では数値的誤差のために逆行列等が正しく計算できない。
詳しくは数値解析の本を。

>>615
多分そこに想定されていた式は別の形(式の組合せ)だったんだろう。
間違った式がわたってるだろうからプログラムを見直せ。
0618617NGNG
つまり>>616は間違ってる。
0619614の者NGNG
分数で表すことで解決しました。
ご返答ありがとうございます。mathmaticaについて少し理解が深まりました
0620132人目の素数さんNGNG









おめーら全員逝けよ


0621132人目の素数さんNGNG
>>619

よかったね。
0622ChaosicSoul ◆/yaJbLAHGw NGNG
Re:>620 いいから私にMathematica5を贈呈しろ。
0623132人目の素数さんNGNG
>>622
5.1でもe**leで探せば直ぐに見つかるよ。 鍵メカも前のものが使えるし。
日本語の尻メカはないので、英語しか使えないが。
0624132人目の素数さんNGNG
>>622
> Re:>620 いいから私にMathematica5を贈呈しろ。

残念ながら4.2しか持っていない。
0625132人目の素数さんNGNG
だれか、Publiconって使ったことのある人います? いれば、レポお願いします。
0626132人目の素数さんNGNG
age
0627132人目の素数さんNGNG
262
0628132人目の素数さんNGNG
Mathematica と LaTex ではどちらが数式の記述能力が上ですか?
たとえば、あまり一般的でない記法とかを自由に記述できたりしますか?
(どちらがきれいな表示かは問題にしていません。)

0629132人目の素数さんNGNG
>>628

Latexでしょ
0630とらぬ狸NGNG
むしろLaTeXでは?
0631132人目の素数さんNGNG
いや、LaTeX だろ。
0632132人目の素数さんNGNG
Publicon使って見てくれよ。
0633132人目の素数さんNGNG
めんどくさいので例は挙げないが、
俺のマセマティは、ループ構文に弱い。だいたい
バグメッセージを吐くか、言われたとおりやらない。
ちなみにマセマティ4とウィンドー98です。
FORもしくはDoを使って、ループさせ、逐一最後の結果を
あるリストに書き足していくという作戦なんですが
あまり成功したことない。リストに書き足さないとか
FORでくるむと今まで行っていた計算をやらなくなるとか
(マシンリミットをこえたとかメッセージ)。
なぜ?
Print関数は、ロバストなので最近はそれで結果を画面に
吐かせてます。そのあと、こぴぺでテキストエディターにはりつける。
悲しいよね。
0634132人目の素数さんNGNG
5.1なんだけれど、
PolarPlotでグラフが表示されないのはなぜでしょう

In[37]:=
<<Graphics`Graphics`

In[38]:=
PolarPlot[theta,{theta,0,5*Pi}]

Out[38]=
PolarPlot[theta,{theta,0,5 π}]


となってしまうのですが…
0635132人目の素数さんNGNG
当方、5.1ですが、ちゃんと貝殻ができたよ。 理由として考えられるのは
<<Graphics`Graphics` でパッケージを読み込む前にPolarPlotをうっかり使ってしまったこと。
そうすると、名前が隠されてしまう。 この場合、

Remove[PolarPlot]
として、現在のコンテクストからPolarPlotを消し去るか、(そうすれば、Graphics'Graphics'PolarPlot
にアクセスできる)

Graphics'Graphics'PolarPlot[theta,{theta,0,5 π}]
として、直接目的の関数にアクセスすれば、プロットできるはず。
0636132人目の素数さんNGNG
>>635
できました。
おそらくパッケージを読み込む前に使ってしまったことだと思います。ありがとうございました
0637132人目の素数さんNGNG
age
0638132人目の素数さんNGNG
>>633
C言語やJavaなどのプログラミングをやってみれ。Javaなら無料だ。
0639132人目の素数さんNGNG
>>633
> 悲しいよね。

悲しいね。
> めんどくさいので例は挙げないが、
とか
> あまり成功したことない。リストに書き足さないとか
...
> なぜ?
とか他人に理解できない愚痴書いて
逃避してないで解決しようよ。

>>634
CとかJavaなんかやったらますますForとかDoとかループを使うようになるじゃないか。

Schemeでもやるのがいいだろう。Mathematicaは本来関数型言語なので、Forとか
Doとか、書き換えたりとかいうのは、遅いし読みにくい。
0640132人目の素数さんNGNG
>>639

アドバイスと励ましのお言葉ありがとう。

C言語はやったことないけどそういう汎用性のある
言語でコーディングした方がいいんだろうね。
マセマティを呼び出すようなコードね。
0641132人目の素数さんNGNG
コンピュータ言語は、人間側が機械に合わせてあげるのがポイントなんだよ。
だから、For文でエラーが出たなら、即自分の書き込んだものをチェックするの!
0642132人目の素数さんNGNG
z=x^3 - 18 x y + 8y^3 グラフを等高線プロットで描きたいんです。
きれいに描く方法を教えてくれませんか。

ContourPlot[x^3 - 18 x y + 8y^3, {x, -5.5, 5.5}, {y, -5.5, 5.5},
Contours -> 60,PlotRange -> {-30, 300},
ColorFunction -> Hue]

とやってみたんですが、極地がわからんやら端っこが汚いやらで……。
もう少し何とかできないでしょうか。
いま書いてあるPlotRange や ColorFunction は無視してください。
0643132人目の素数さんNGNG
ContourPlot[x^3 - 18 x y + 8y^3, {x, -5.5, 5.5}, {y, -5.5, 5.5}, 
  Contours -> 15, PlotRange -> {-30, 50}, 
  ColorFunction -> (Hue[Log[1 + #]] &), PlotPoints -> 200]
ではどう?
0644132人目の素数さんNGNG
ColorFunction -> (Hue[# Log[2]] &) 
のほうがいいかも。
0645642NGNG
>643 >644
ありがとうございました。助かりました。

……指紋みたいなグラフだな。
0646132人目の素数さんNGNG
z=(x-2y+2)(4x-y-4) の等高線プロットの上に
x^2+2y^2-4=0 のグラフを重ねて描きたいのですがどうしたらよいでしょうか。

ContourPlot[(x - 2 y + 2) (4 x - y - 4), {x, -10, 10}, {y, -10, 10},
Contours -> 15, PlotRange -> {-300, 100},
ColorFunction -> (Hue[# Log[1 + #]] &), PlotPoints -> 200]

ParametricPlot[{Sqrt[2] Sin[t], 2 Cos[t]}, {t, 0, 2Pi}]
0647132人目の素数さんNGNG
v5.1がリリースされてから約1ヶ月が経ちましたが、
v5.0と比べてどう違いますか?
0648132人目の素数さんNGNG
A={{1,2},{3,4}}
B={{5,6},{7,8}}
とやって、ここから対角ブロック行列 X=[[A 0][0 B]] を定義したいのですが、
どうしたらよいでしょうか?
0649132人目の素数さんNGNG
A={{1,2},{3,4}}
B={{5,6},{7,8}}
Z={{0,0},{0,0}}
X={{A,Z},{Z,B}}

これでどう?
ゼロ行列は関数化されてたと思うけど忘れた。
0650132人目の素数さんNGNG
もう5.1にしているやつ結構いるんだな。
0651132人目の素数さんNGNG
mathematica 5.0 とか 5.1 は割れ物として見つかる?
0652132人目の素数さんNGNG
例えば、{{10,3},{11,2},{13,0}}のようなリストから
最初の要素が一番大きい組を取り出す(この場合は{13,0})
方法はあるのでしょうか?
Maxを使えば13となりますが、{13,0}という形で取り出したいのです。
もしよろしければ教えてください。
0653132人目の素数さんNGNG
5.1 は、結構いろんな機能が入ってるな。v4->v5の時よりも
変化が大きいんじゃない?

この機能が楽しそうだなと思ったり。
http://www.wolfram.com/products/mathematica/newin51/equationtrekker.html
0654132人目の素数さんNGNG
>>652
最大数が複数個ある場合を考慮に入れるなら

f[mlist_] := Select[#, Function[x, Part[x, 1] >= Part[#, 1, 1]]] &[Sort[mlist, Part[#2, 1] < Part[#1, 1] &]]

とし、一つだけでならば

f[mlist_]:=Part[Sort[mlist, Part[#2, 1] < Part[#1, 1] &], 1]

仕組みは簡単で、各セルの左側の値で大きい順にソートして最も大きいものを選ぶだけ。
純関数を使っているから見にくいが、やっていること自体は単純。
0655132人目の素数さんNGNG
>>651
5.1はWinでは x86版、 Linuxでは x86版、x86-64bit版(athlon64)、Itanium版が探せばある。
0656132人目の素数さんNGNG
>>654
ありがとうございます。まだ使い始めて日が浅いので。
こうやればいいんですね。よく考えてみると単純ですね。
0657132人目の素数さんNGNG
>>646
どなたかご教授願います。
0658132人目の素数さんNGNG
age
0659132人目の素数さんNGNG
>>657
test1 = ContourPlot[(x - 2 y + 2) (4 x -
y - 4), {x, -10, 10}, {y, -10, 10}, Contours -> 15, PlotRange -> {-300,
100}, ColorFunction -> (Hue[# Log[1 + #]] &), PlotPoints -> 200,
AspectRatio -> Automatic]
test2 = ParametricPlot[{Sqrt[2] Sin[t], 2 Cos[
t]}, {t, 0, 2Pi}, PlotRange -> {{-10, 10}, {-10, 10}},
AspectRatio -> Automatic]
Show[test1, test2]
0660132人目の素数さんNGNG
395
0661132人目の素数さんNGNG
>>657
xご教授 o御教示

mathよりjapaneseやれよw
0662132人目の素数さんNGNG
本年初カキコ。
0663132人目の素数さんNGNG
>>659
ありがとうございます。
Show[test1,test2]で表された図を印刷したいんですが、図だけをコピーすることはできないでしょうか。
枠線が邪魔なんです。

>>661
_| ̄|○
0664132人目の素数さんNGNG
mathematica for linux
を中古で安く譲ってくれる方はいますか?

もし合法でないなら無視して下さい。
合法的に安く入手したいだけですので。

0665132人目の素数さんNGNG
放送大学入学して、アカデミック(?)が一番安いのかな・・・。
仕事で使うのならまずいけど。
0666132人目の素数さんNGNG
>>664
へんなシト。 英語版ならクレカを持っていれば、ダウソ版が1880ドルで買える。 これが
一番安いと思う。 Mathematicaは業務用ソフトではないし、値段はこんなものか。
日本語版は確か35万くらいする。
0667132人目の素数さんNGNG
mathomaticaというものを見つけました。
gnuです。mathematicaとの互換性は?
0668132人目の素数さんNGNG
別のソフト
0669132人目の素数さんNGNG
ざんねんん。ですね。
Mathematica恐怖症になってしまった。
やる気がおきない。
0670132人目の素数さんNGNG
age
0671132人目の素数さんNGNG
オークションサイトを探すとか
0672132人目の素数さんNGNG
18xy-x^3-y^3=0
のグラフの輪っかになってる部分の面積を求めたいんですが、どうしたらよいでしょうか
0673132人目の素数さんNGNG
高校の数学の教科書があるなら、是非見て下さい。数IIICのどっちかで理解出来ると思う。

グラフはこれで見れるね。
<< Graphics`ImplicitPlot`
ImplicitPlot[18x y - x^3 - y^3 == 0, {x, -10, 10}]

で、面積は、
18 x y - x^3 - y^3 < 0
の範囲であることは分かりますか?
0674673NGNG
陰関数の積分の方法を忘れてしまった_| ̄|○

Sin[x]やCos[x]を使うんだっけ…
0675132人目の素数さんNGNG
>>673
>0 の間違いでは?

>>674
version5以降なら、↓で計算できる。でも、式の簡略化に失敗してるなあ。

<< Calculus`Integration`
Integrate[Boole[18 x y - x^3 - y^3 > 0], {x, 0, 10}, {y, 0, 10}]
0676673NGNG
>>675
訂正サンクス、やり直さなきゃいけないのは自分の方だった。

N[Integrate[Boole[18 x y - x^3 - y^3 > 0], {x, 0, 10}, {y, 0, 10}] ]
で値がでましたね。

54.
■ このスレッドは過去ログ倉庫に格納されています