〓 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/
0232132人目の素数さん
NGNG>>230
BindListM[lst_List, f_] := Join @@ Map[f, lst];
ReturnListM[x_] := {x};
MyOuter[] := {{}}
MyOuter[l_List, ls___List] :=
BindListM[l,
Function[x,
BindListM[MyOuter[ls], Function[tl, ReturnListM[Prepend[tl, x]]]]]]
MyOuter[p1,p2,p3]の様に使う。
# このコードが良く分からなければHaskellという言語を
# 通じてMonadを勉強するといい。シンタックスシュガーによって
# Haskellでは上のコードがこう書ける。
# myouter [] = [[]]
# myouter (l:ls) = [(x:tl) | x <- l, tl <- myouter ls]
しかし実は便利な組込み関数Outerがあるので、
Flatten[Outer[List,p1,p2,p3,p4],3]
(後ろの3はpjの個数 - 1)
でよい。
0233132人目の素数さん
NGNGMyOuter[] := {{}}
MyOuter[l_List, ls___List] :=
Module[{xs = MyOuter[ls]},
BindListM[l,
Function[x, BindListM[xs, Function[tl, ReturnListM[Prepend[tl, x]]]]]]]
0234230
NGNGOuterを使いたかったので、
Flatten[Outer[List,p1,p2,p3,p4],3]
が大変わかりやすかったです!
0235132人目の素数さん
NGNG普通に使えるときとか、ダイアログも何も無しに終わっちゃうときとか
パラパラあったんですが、最近どうも起動失敗ばっかりで、
Wolframのサイトのヘルプも試してみたんですがどうもダメで、
他にこんな症状の人います?
0236132人目の素数さん
NGNG0237132人目の素数さん
NGNGLimit[
Integrate[a x/((x - b)^2 + a^2), {x, -L, L}],
{L -> ∞}],
{a -> +0}]
これを現在実行してるんですけど、15分くらい経つけど答えでないんですよね〜。
バグですかね〜。
普通に問題とけるぞ!って方は教えて頂けるとありがたいです。
0238132人目の素数さん
NGNG置換で普通にできないべか
0239132人目の素数さん
NGNG具体的に教えていただけないでしょうか?
0240132人目の素数さん
NGNGおいおい、わからない質問スレへ行けよ
0241132人目の素数さん
NGNGわかりました。
0242132人目の素数さん
NGNGバージョンはいくつ?
4.2.1だと一瞬でb \[Pi]とでるぞ。5以上ならサポートに報告すれ。
Limit[Limit[Integrate[a x/((x - b)^2 + a^2), {x, -L, L}], L -> Infinity],
a -> 0]
0243132人目の素数さん
NGNG0244132人目の素数さん
NGNG5.01だと無限ループに入るみたいだね。
これに限らず、ver5以上は式の簡略化などでフリーズする
確率が高いような気がする。
0245132人目の素数さん
NGNG0246132人目の素数さん
NGNGあー、すまん。フリーズじゃなくてカーネルエラーで落ちるの間違い。
前スレにも出したけど、こんな式を評価すると確実に落ちる。
7910*Csc[(4*Pi)/15]*Sqrt[((-(1 -
Cos[82000/797267]^2))*Sin[(4*Pi)/15]^2 +Sqrt[(1 -
Cos[82000/797267]^2)^2*Sin[(4*Pi)/15]^4 - (-1 +
Cos[82000/797267]^2)*Sin[(4*Pi)/15]^2*(Cos[82000/797267]^2
- Sin[(4*Pi)/15]^2)])/(Cos[82000/797267]^2 -
Sin[(4*Pi)/15]^2)]//FullSimplify
0247132人目の素数さん
NGNG0248132人目の素数さん
NGNG0249132人目の素数さん
NGNG単なる優れた電卓と思ったら大間違いだよ。
「Mathematica 方法と応用」 がお薦め。
0250132人目の素数さん
NGNGlim[n→∞]∫[0→π/2]|sin2nx*cosx|dx
コマンド教えてくれないか?
0251132人目の素数さん
NGNGLimit[Integrate[Sin[2 n x] Cos[x], {x, 0, Pi/2}], {n -> ∞}]
答えは0でした。
0252132人目の素数さん
NGNG絶対値は?
0253132人目の素数さん
NGNG手計算でやったら2/πになったんだけど・・・間違いかな
手計算でやってもかなり莫大な計算量になったから、
Mathematicaのコマンド教えてもらおうと思ったんだけど・・・
0254132人目の素数さん
NGNG手計算はぜんぜん面倒じゃないだろ。5,6行でできる。
0255132人目の素数さん
NGNGうそだべや〜めんどいぞ。答えはあってる?
0256132人目の素数さん
NGNGDo[
Plot[
Sin[2 n x] Cos[x], {x, 0, Pi/2}, FrameLabel -> {x, Sin[
2 n x]Cos[x], None, None},
Frame -> True,
FormatType -> TraditionalForm,
TextStyle -> {FontSize -> 12},
PlotRange -> {{0, Pi/2}, {-1, 1}},
FrameTicks -> {{{0, 0}, {Pi/2, Pi/2}}, Automatic}
],
{n, 1, 100, 5}
]
0257132人目の素数さん
NGNG俺も同じになったよ。
つーか、sin2nx*cosxなんかになってるから、
積を和に変換したり、ついついめんどくさい計算をしちゃうんだよな。
少し一般化して、
f(x)を[0,π/2]上連続関数とする。
lim[n→∞]∫[0→π/2] |sin2nx|*f(x) dx を求めよ。
にすれば、簡単になるはずだ。
0258132人目の素数さん
NGNGうほ、なんかすごいね。そんなことできるのか!
>>257
今考えたけどわかんね・・・
俺は積-和にしてごりごりするしかできなかった・・・orz
概略でいいから教えてくれないか?
0259132人目の素数さん
NGNG2nx=tと置換して、区間を分割
=Σ_[k=0,n-1]∫[kπ,(k+1)π] |sint|*f(t/(2n)) dt/(2n)
t=y+kπと置換すると
=∫[0,π]siny*(1/(2n))Σ_[k=0,n-1] f((y+kπ)/(2n)) dy
あとはfの一様連続性を使って、f((y+kπ)/(2n))をf(kπ/2n)で評価してやればOK。
(最初の問題 f(x)=cosx の場合なら、cosx の単調減少性を使って、任意の0≦y≦πで
cos((k+1)π/(2n))<cos((y+kπ)/(2n))<cos(kπ/(2n)) だから、評価して挟み撃ち)
0260132人目の素数さん
NGNGおお、すげーな・・・よく思いついたね。サンクスコ!
0261132人目の素数さん
NGNG固定ベクトル{1,2,3}とxyの値が任意の{n,m,5}のベクトルを
内積させ、nとmをそれぞれ1から5ぐらいまで変化させたときの合計25個を
計算させてみようとしたのですが、いまいちうまくいかないんです。
手始めにmのほうは固定してnのみを変化させてみようと以下のような
形にしてみました。
a={1,2,3}
b={For[n=1,n<=5,n=n+1,Part[Range[1, 5],n]],2,3}
a.b
これではうまくいかないんですが、ループの使い方がいまいちよく
分からないんです。最初は
{1,2,3}.{Range[1, 10],2,3}
なんてものでやってみたんですが、"非長方テンソル"がどうのとなって
ダメでした。どういうふうに行えばいいのでしょうか?
それから、僕は今「mathematica数学の道具箱上下」を使ってmathematicaを
使ってみようとやっているんですが、どうもグラフや図を描くことの基礎を
学ぶにはいいみたいなのですが、数式処理はあまりいろんな例を含めて展開
されていない気がするんです。何か初心者が学ぶにいいテキストってありますか?
0262132人目の素数さん
NGNGAbs[Sin[2 n x]]でできるお山がn個あるわけだ。
それぞれの面積は同じで
Integrate[Sin[2 n x],{x,0,Pi/2/n}]=1/n
そしてそれぞれのお山にお山の頂点の座標に対応するCos[x]をかけて
すべてのお山を足してやればよい。
だから
1/n * Sum[Cos[Pi/(2 n)*(k-1/2)],{k,1,n}]
でnを適当に大きくしてやればよいのさ
1/n * Sum[Cos[Pi/(2 n)*(k-1/2)],{k,1,n}]/.n->100//N
=0.636626
0263262へ
NGNGb[n_, m_] := {n, m, 5}
Do[
Print[" m = ", m, " n = ", n, ",", " ", a.b[n, m]],
{n, 1, 5}, {m, 1, 5}
]
0264132人目の素数さん
NGNG私はMathematica暦2年
大学4回生です
0265UltraMagic ◆NzF73DOPHc
NGNGそれでもまだMathematicaは高い。
0266132人目の素数さん
NGNG0267132人目の素数さん
NGNGかなり精度が良いぞ
1/n * Sum[Cos[Pi/(2 n)*(k-1/2)],{k,1,n}]/.n->10^1000,100]
これで
Pi/2
と90数桁まで一致した
自慢だけどね
0268132人目の素数さん
NGNG面白い。ForをPlotで使うことの意味がわかったよ。
0269132人目の素数さん
NGNGと入力すると
[Pi/2*Sqrt[(1-x)/(1+x)]は□において機械サイズの実数ではありません
と出て来てしまい、図を表示することができません。
どなたか解決法を教えてくださいませんか。
0270UltraMagic ◆NzF73DOPHc
NGNG0271132人目の素数さん
NGNGこれで普通に出るけど…
0272132人目の素数さん
NGNG何で?何で出るの?
さっきまで全然でなかったのに。
まぁ、とにかく、ありがとうございました。
0273132人目の素数さん
NGNGAbsだと実数以外受け付けてくれないので。
入力したい式は
D[e^-|x|*ArcTan[3x],x]
Absを使うとAbs’という珍妙な定数が出てくるんで。
0274UltraMagic ◆NzF73DOPHc
NGNG「超関数の意味での微分」と考えればごく自然だよ。
0275UltraMagic ◆NzF73DOPHc
NGNG0276132人目の素数さん
NGNG0277132人目の素数さん
NGNGy=Sin[3t]
といった形でパラメータ表示されたx、y、に関するグラフを書きたいのですが、どうしたらよいでしょう?
0278132人目の素数さん
NGNG0279132人目の素数さん
NGNGありがとうございました!
0280132人目の素数さん
NGNGTable[{1, 2, 3}.{n, m, 5}, {n, 1, 5}, {m, 1, 5}]
0281132人目の素数さん
NGNG0282132人目の素数さん
NGNGそりゃできるだろ。
***の所は自分で埋めるように(ちょっと面倒)。
SetAttributes[LogPlot3D, HoldFirst];
LogTick[min_, max_] := Table[{h, 10^h}, ***]
LogPlot3D[f_, r__] :=
Plot3D[Log[10, f], r, Ticks -> {Automatic, Automatic, LogTick}]
0283132人目の素数さん
NGNG30×30×30の27000個のデータ出すようループさせてみたんですが、へぼ
パソコンなんで大体7,8分ぐらいかかるんです。
噂には聞いてましたが単純中身のループでも、結構時間はかかるものなんですか?
なんか、あの、だだだーーと流れるように表示させるために時間が取られている
気がするんですが、表示にメモリを使わないようにして時間短縮する方法などは
ないのでしょうか?
0284132人目の素数さん
NGNG0285132人目の素数さん
NGNG与えられた正則式に対し、文字列がそれに合致するかどうかを
判定する関数を作れ。
というのがあるのですが、どのような方針で関数を作ればいいのかわかり
ません。教科書や参考書もないのでわからないんです。
どうか教えてください。
0286283
NGNG一応、27000個のデータ自体はその後MicroAVSなどを使って可視化してみたい
んで、どこかに記録させたいんですよね。他のノートブックに出力するように
しても、完了までの早さは一緒ですよね。
C言語などでは、27000個ぐらいのループなら入力してから出力したいファイルに
結果がすべて出るまでほとんど瞬間ですから、この一般言語とのギャップを
多少でも補う方法はないのかなと思ったんです。
やっぱりこういうことはCなどでするのがベストってことでしょうか?
でもmathematicaの組み関数の使いやすさを知った後で、Cで同じ数式処理を
させるのはちょっと鬱ですねー。
0287132人目の素数さん
NGNG次のセルに書いてそのセルだけ実行すればいける…
すまん、試してないが適当に言ってみた
>>285
ここよりクラスメートか先生に聞いて来なされ
0288132人目の素数さん
NGNG一次元入力したものを二次元で表示するコマンドってありますか?
「2Dの作成」じゃなくて、例えば2^2と入力して上付の2を表示させるような。
0289132人目の素数さん
NGNGよくわからんが
HoldForm[2^2] とか?
0290132人目の素数さん
NGNG;をつけても評価されるし結果もメモリに記憶される。
表示に時間がかかる場合は>>等でファイルに書けばいいのでは。
0291132人目の素数さん
NGNGどういう状況を考えているかわからないので、具体的に式をあげて、
どういう出力を得たいのかを教えてください。
0293283
NGNGアドバイスありがとうございます。ファイルに書くとはどういうこと
なのでしょうか?
一応、「;」をつけてみたり、他のノートブックに出力してみたりしたん
ですが、処理中にもう一つ出るウィンドウ、「メッセージウインドウ」っていうんですか!?
そこではやっぱり、「ダダダダダー」と延々と処理していて完了する時間は変わらない
ですよね。これがマセマティカっていうものだということなのかもしれませんが
何か秘策たる方法があるのではという思いもあるんですよね。
0294132人目の素数さん
NGNGこいつを実行したいのだけども
エラー吐いて何もしてくれないのは何故だろう…
分かる方教えて下さい
エラー:Pi*Cos[sita]は有効なシンボルではありません
0295132人目の素数さん
NGNG5.0使い?
0296132人目の素数さん
NGNG0297132人目の素数さん
NGNG?>>
と入力してヘルプを読もう。
普通はメッセージウインドウにはなにも出力されないはずなので、
プログラムを見直したほうがいいのでは。
問題ないなら、Offで出力されないようにできると思う。
0298132人目の素数さん
NGNGそういう問題の場合は、入力ミスの可能性などもあるので、
Pi -> πにしたりせず、そのままコピペできるものを張れ。
0299132人目の素数さん
NGNGπはそのままコピペできて、円周率として認識されますよ。
0300132人目の素数さん
NGNGLinux版だとできないのだ。
0301132人目の素数さん
NGNGnbファイルで上げて見ました、アドバイスお願い致します
0302294
NGNGあと、もと書いてあった式と上げたファイルが違うのは
最終的にやりたいのが上げたファイルということです
0303132人目の素数さん
NGNG見られん。
24時間以内に消えるようなところに上げるなよ。
0304132人目の素数さん
NGNG最小化作用素を定義せよ:引数は、{0、1、・・・99}
の元のペアのリストA。値は部分関数f。
という問題なのですが、数式で書くと
A→(μA)(x)=min{y|(x,y)∈A}
になると思います。mathematicaで表記するとどうなるか教えてください。
0305132人目の素数さん
NGNG引数はリストなのかリストの元なのか?
μ がリストを引数として、リスト上の関数を返すような関数
μ : P({0,..,99}^2) \ {φ} -> {{0,..,99}^y | y ⊂ {0,...,99}}
(μ(A))(x)=min{y|(x,y)∈A}
だとして、 その定義。
----
\[Mu][A : {{_Integer, _Integer} ..}] := Function[x,
minimumBy[compare[#1[[2]], #2[[2]]] &, Select[A, Equal[x, First[#]] &]]]
compare[x_, y_] = If[x < y, LT, If[y > x, GT, EQ]];
minimumBy[f_, {x_, xs___}] := Fold[If[f[#1, #2] === LT, #1, #2] &, x, {xs}]
(* Example *)
A = {{1, 3}, {2, 2}, {2, 4}, {1, 1}};
\[Mu][A][1] (* == {1, 1} *)
0306304
NGNG本文中の質問なんですが、
LTやGTやEQの意味は何でしょうか?
初心者ですみません。
0307132人目の素数さん
NGNGLT: less than
GT: greater than
EQ: equal
のこと。
0308132人目の素数さん
NGNGのですが、そうではなく、評価するたびに、現在使用中のノートブックとは別の
のノートブックが自動的に立ち上がり、その自動的に立ち上がったノートブックに
グラフのみ表示させたいのですが、どうすればいいのでしょう?
関数の評価→グラフ専用のノートブックが立ち上がり出力。としたいんです。
SilabやMatlabだと 結果が数値の場合とグラフの場合は出力先が違って便利なんです。
0309132人目の素数さん
NGNGとかライセンスIDを忘れてしまってできません。
なんか解決方法はありませんかね?
0310132人目の素数さん
NGNGというかメモを探すしかないと思う
0311132人目の素数さん
NGNGレスサンクス
ていうか、何でこんな厄介なの。
そこまでするほどすごい技術があると思わんけど
0312132人目の素数さん
NGNGマセマティカなんて使うんじゃない。
0313132人目の素数さん
NGNG0314132人目の素数さん
NGNGPlotしたとき、軸に表示される数字のフォントを変えることは
できるのでしょうか?
0315132人目の素数さん
NGNG一部のフォントだけを変えるのはPostsciptの該当部分を書き換える
しかないと思う(DisplayStringを使う)。
テキスト部分のフォントを全部置き換えるのは、
Plot[Sin[x], {x, 0, Pi}, TextStyle -> {FontFamily -> "Arial"}]
(Windows/Macの場合)
0316かわばた君の友人
NGNGライセンスID(L9801-9801みたいなもの)と、パスワード
(10桁とか16桁から25桁程度の数字)がないんですか。
私は、以前に学生バージョンのパスワードはわかって
いるけれども、ライセンスIDがわからなくなってしまった
ことがあり、ウルフラムに英語で問い合わせをしたとこ
ろ、数日で教えてくれました。
ご心配のケースでは、登録があれば、日本の代理店や
ウルフラムリサーチにお尋ねになってみてはいかがで
しょうか。
手がなければ、ご連絡くださいませんか。古いライセンス
なら余っていますので、お力になれるかもしれません。
0318132人目の素数さん
NGNG画面の中央揃えで表示するにはどうすればいいんでしょう?
Textのスタイルの上に貼り付けたりしたらできるんですけど、
それしか方法はないんでしょうか?
0319132人目の素数さん
NGNG> それしか方法はないんでしょうか?
いいえ。
Stylesheetか直接CellのImageMarginsを変更すればいい。
MathematicはCellもグラフも全部式なんだから大抵のことは自動化できる。
# >>308
# > 関数の評価→グラフ専用のノートブックが立ち上がり出力。としたいんです。
# > SilabやMatlabだと 結果が数値の場合とグラフの場合は出力先が違って便利なんです。
# 自分で>>220-221を書いといてなんだが、
# 何が便利なんだかさっぱりわからん…というか不便だろう。
# >>308はもうちょっとデフォルトで使ってMathematicaを理解してから
# 考え直したほうがいいのでは。;も知らないとかいう落ちではあるまいか。
0320132人目の素数さん
NGNGこれができないんだけど…
何が原因なんでしょうか?
0321319
NGNGただし、Windowサイズを変えても中央揃えのままにしたいということなら、
ImageMarginesではできないかもしれない。
BoxDataで囲んでText扱いで表示すればできる。これは
> Textのスタイルの上に貼り付けたりしたらできるんですけど、
このCellの式を見ればわかるだろう。
0322132人目の素数さん
NGNG>>294のエラーはでないが。
Rは複雑すぎるな。
記号的には積分できないだろう(終わりそうにないので止めた)。
0323132人目の素数さん
NGNGどなたかどうすればよいのか助言下さい…
0325132人目の素数さん
NGNG手でやりたいなら止めはしないが…
自動化するとこうなるだろう。
SetAttributes[PrintCenterd, HoldFirst];
PrintCenterd[f_] :=
Block[{$DisplayFunction = Identity},
CellPrint@
Cell[BoxData[
RowBox[{Cell[GraphicsData["PostScript", DisplayString[f]],
"Graphics"]}]], "Output", TextAlignment -> Center]]
PrintCenterd[Plot[Sin[x], {x, 0, Pi}]]
0326132人目の素数さん
NGNGIntegrateは記号的積分がが失敗して初めて数値積分に挑戦するから
そもそも数値計算でいいのならNIntegrateを使え。
0327132人目の素数さん
NGNGこれPlotPoints->300ぐらいにすると枝わかれがよく見えておもしろいグラフだな。
これは何で出てくる関数?
0328132人目の素数さん
NGNG本当はsitaで積分してrのグラフを書きたいんだけどねえ…
うまくいかないのは何故だ…orz
>>327
X線回折
0329132人目の素数さん
NGNGどううまくいかんのだろうか。
最後のIntegrate[..]の行を
Func[x_] := NIntegrate[R /. r -> x , {sita, 0, 2*Pi}]
Plot[Func[x], {x, 0.001, 10}, PlotDivision -> 2]
に変えろ。
元のグラフに特異点があるので(数値積分の)結果の正確さは
まったく保証できないが。
0330132人目の素数さん
NGNGEllipticE[2]
ってのは数値として与えられる物なのでしょうか?
数学を知らんのか!っと怒られてしまいそうですが、教えて君に教えて下さい。
0331132人目の素数さん
NGNG揃うようにしたいんですけど、設定あるいは入力やなんかでできますか?
どうしても階段状になるみたいで。
■ このスレッドは過去ログ倉庫に格納されています