〓Mathematica〓
■ このスレッドは過去ログ倉庫に格納されています
0001132人目の素数さん
NGNGMathematicaについて語るスレです。
大学で初めて出会った時は感動したなぁ。(NeXT版…)
Plot3Dでよく遊んだものです。
四次方程式の一般解を出力して、壁に貼ったりしてました(w
0446132人目の素数さん
NGNG0447mathmania ◆uvIGneQQBs
NGNGもっとも、私は最近Mathematicaをやっていない。
C言語(ForTranも少し)を使ってる。
理由はというと、、、Mathematicaが使えなくなったから。
まぁ、使いやすさの面でいえば、大きなプログラムには、C言語の方がいいだろう。
0449132人目の素数さん
NGNG原始的なプログラミング言語と不統一な仕様の
mapleよりは使いやすいと思う。
言語としてつかえてなんぼだから
素人にはお薦めできない、って感じはあるかもね。
>>447
補完機能をつかうべし。
0450132人目の素数さん
NGNG本は何でしょうか?
0451132人目の素数さん
NGNGOSを再インストールしる!
それでだいじょうぶだ! 安心しろ
>450
白石さんのがいいぞ!
安心して買え
0452132人目の素数さん
NGNGあなたが探してるのってこれだよね?二日間無料だしね♪
http://alink3.uic.to/user/angeler.html
0453132人目の素数さん
NGNGと言ってみる
0454132人目の素数さん
NGNGMathematicaプログラミング J.ゲイロード・N.カーミン・R.ウエリン
を読んで、その後で
プログラミングMATHEMATICA. R・メーダー 著、時田 節
を読むとよくわかると思われ。
特にメーダーの本は(全くの初心者以外には)一読の価値あり。
非常に下手な翻訳だけど。
0455132人目の素数さん
NGNGWindows Me はやめた方がいいですよ。
2KかXPにしましょう。
(マジレス)
0456132人目の素数さん
NGNG1.23456789とか1234.56789って直接入力すると
1.23456や1234.56と表示されます。
# 表示だけがそうなるだけで内部的には入力した数のままです
これを以降の入力からすべて指定した有効数字で表示させたいのですが
どうやったら良いのでしょうか?NumberFormではそれで指定した場合だけ
表示されるのでこれを以降の入力すべてで有効にしたいのでよろしく
お願いいたします。
0458132人目の素数さん
NGNGちょっと邪魔くさいけど、関数を定義すればどう?たとえば
F[x_]:=N[x, 30];
F[E^3]
とするとe^3が30桁表示されるはず。
0459mathmania ◆uvIGneQQBs
NGNGだが、SetPrecision[E^3,Infinity]か、SetAccuracy[E^3,Infinity]はどうだろう?
まぁ、分数表示になるが、その数に2^52(?)を掛ければ小数点表示がわかるだろう。
あぁ、それと、私はMathematica復活したわけではないので。
0461132人目の素数さん
NGNGMathematicaでの以降の入力すべてで指定した有効数字で表示させたいということ
でしょうから、その方法ではその関数内の引数にだけ有効であって意味がありません。
何かシステムの設定でできそうな気もしますがそれらしいものが見当たりませんね。
どうやるんだろうか?
0462132人目の素数さん
NGNGSetPrecisionは計算精度を変更させるだけであってその表示は依然として
有効数字6桁です。
0463132人目の素数さん
NGNG編集→環境設定→書式設定→式の書式→表示設定→PrintPrecision
0464132人目の素数さん
NGNG書式設定でしたか。見落としてました。大変助かりました。ありがとうございます。
0465mathmania
NGNG0466132人目の素数さん
NGNGhttp://endou.kir.jp/betu/linkvp/linkvp.html
0467132人目の素数さん
NGNG何かよい方法(ツール)はありませんか?
等高線図を複数枚、平行になるよう並べて
ナナメ上から見下ろすようにすればよいと思うのですが、
よいアプリケーションを探しています。
他の方法でも、可能ならば何でもいいです。
0468132人目の素数さん
NGNGいってることが良くわかりません。等高線図を斜めから見下ろす?
mathematicaでの実現ならば、三次元にスライスしたときの
データをどうやって表示するかという話になるのだろうけど、
それはデータの形式に依存するからなんともいえないし。
0469467
NGNG間違いがありました。すみません。
まず画面に出したいのは4次元データ中の3次元分なので、
「3次元データを表示したい」と訂正します。
データは格子状データです。
古い人間なのでfortran形式で言うと
do k=1,nz
do j=1,ny
do i=1,nx
write(6,*) x(i),y(j),z(k),data(i,j,k)
end do
end do
end do
の形式の等間隔のデータと思って下さい。
やりたいのは、これまた解かりにくい表現かもしれませんが
gnuplotで
set contour base
unset surface
set view 60,10
くらいの時にプロットした等高線図を複数枚、一つの画像にプロットしたいのです。
0470132人目の素数さん
NGNGgnuplot云々はわかりませんが、
ListContourPlot3Dかな?
0471132人目の素数さん
NGNGそれに $1880 5.0 Eng vs \448800 日本語版 4.2only
US ってこれでも Premier Service 付きだって。。。。
潮時かね
0472467
NGNG>>470
>ListContourPlot3Dかな?
手持ちのマニュアルには
ListContourPlotとListPlot3Dしか見付かりません。。
(ver5からの新機能ですか?)
それら二つから推測すると、
ListContourPlot3D[{{{},{}},{{},{}}}]
のような3重ネストの配列を入れてプロットするのでしょうか?
値段高い…
0473132人目の素数さん
NGNG4.2にはあります。
Onlinehelpで出てくるはずです。
または、
<<Graphics`
?ListContourPlot3D
0474467
NGNG本当にありがとうございます!
ちょっといろいろ試してみます。
0475132人目の素数さん
NGNG整数の組み合わせをMathematica(あるいはC言語でも)で求める方法を教えてください。
わかりにくいので例を挙げますと n=5 のとき
足して5になる1以上の整数の組み合わせは
5, 41, 32, 311, 221, 2111, 11111 であり
並べ方が何通りあるかはそれぞれ 1, 2, 2, 3, 3, 4, 1
で最大値は 2111 の場合で 4 に、
n=6の場合は 321 と 2211 の場合で最大値は 6 になります。
一般に、数字の個数(311なら3個、11111なら5個)がm個、1がk_1個、2がk_2個、…nがk_n個の
場合、並べ方はm!/(k_1!・k_2!・・・k_n!)になります。
0476mathmania ◆uvIGneQQBs
NGNG最大値をどうやって計算するかは分かるだろう。
あとは、k_1,…,k_nの与え方だが、
これはk_n,k_{n-1},…,k_2,k_1の順に再帰的に与えればいいのではないか?
n=5のときを例に挙げると、
まず、k_5=1ととり、1*k_1+2*k_2+3*k_3+4*k_4=0になるk_1,k_2,k_3,k_4の組合わせは0,0,0,0しかない。
次にk_5=0ととるとき、1*k_1+2*k_2+3*k_3+4*k_4=5となるk_1,k_2,k_3,k_4を選ぶことを考える。(a)
(a)の中でk_4=1ととり、1*k_1+2*k_2+3*k_3=1となるようにk_1,k_2,k_3を選ぶようにする。(k_1=0,k_2=k_3=0しかない。)
(a)の中で、今度はk_4=0ととり、1*k_1+2*k_2+3*k_3=5となるようにk_1,k_2,k_3を選ぶ。(b)
(b)の中で、k_3=1ととると、(k_2,k_1)=(1,0)と(k_2,k_1)=(0,2)となる。
(b)の中で、k_3=0ととると、k_2=2,1,0の3通りにわかれる。
k_2=2ととるとき、k_1=1となり、k_2=1ととるとき、k_1=3となり、k_2=0ととると、k_1=5となる。
この文では分かりにくいかもしれないが、とにかくやってみてくれ。
0478132人目の素数さん
NGNG0479132人目の素数さん
NGNGどうぞ。
<< DiscreteMath`Combinatorica`
<< Statistics`DataManipulation`
Max @@ ((Length[#]!)/(Times @@ (#[[1]]! &) /@ Frequencies[#]) &) /@
Partitions[5]
0480132人目の素数さん
NGNGMathematica Ver.5の情報はどこにあるんですか?
何が変わるのでしようか
おしえてね!
0481132人目の素数さん
NGNGますます出来るMATHEMATICA-標準偏-
http://www.catkk.co.jp/mathcd/index.html
どうでしょうか?
0482132人目の素数さん
NGNGhttp://www.wolfram.com
0483475
NGNGよくわからないのですが、Partitions[5]の 5 を n に変えれば
足してnになる1以上の整数の組み合わせの並べ方が最大に
なる整数の組み合わせが求められるんでしょうか?
0484483
NGNG0485132人目の素数さん
NGNGf[n_Integer] := Max @@ ((Length[#]!)/(Times @@ (#[[1]]! &) /@ Frequencies[#]) &) /@
Partitions[n]
ってこと?
もしかして、数学っぽいnについての式を欲しがってるんですか?
それならそれは数学の問題。
プログラムで求めることはできません。
Cでなんて論外。
0486479 == 485
NGNGSee f in >>485.
0487475
NGNGありがとうございます。手元にMathematicaがないので
少し勉強して、学校ので試してみたいと思います。
数学的に(nを使って)解くことが出来たらそれが一番いいのですが、
それはここで聞くことではないので他のスレで聞いてみます。
0488132人目の素数さん
NGNG0489132人目の素数さん
NGNGうわーん!
Ver.4.2の情報しかないじゃないか。
しかも日本語だー
0490132人目の素数さん
NGNGどこかに English ってあるからそこから英語ページへ。
トップにあるよ。
まあ大規模行列と数値計算の速度改良が主ですね。
試行錯誤でアルゴリズム作るときは、全作業時間において
コンパイル系とためはるつもりなのかな
なお日本では日本語版のみしか売れない。
誰だよな日本語ヘルプキット強制バンドル計画したやつは。
0491132人目の素数さん
NGNGに五版の概要がありますね。
英語版でいいから新しいやつを動かしてみたいねえ。
ほんと。
0492132人目の素数さん
NGNGhttp://nuts.free-city.net/index.html
0493488
NGNG0494132人目の素数さん
NGNGサポートに連絡しろ。
0495132人目の素数さん
NGNGわかったやってみる
�dくす
0496475
NGNGMax @@ ((Length[#]!)/(Times @@ (#[[1]]! &) /@ Frequencies[#]) &) /@
Partitions[5] を実行したところ
Part::"partd": "パート指定5[[1]]の長さはオブジェクトの深さを超えています."
1/5[[1]]!
となったのですが、直すべきところがわからないので教えてください。
0497132人目の素数さん
NGNGちゃんと上の二行を入力してください。
# そのエラーはPartitions[5]が評価されていないため。
0498132人目の素数さん
NGNGあるんです。それで、尤度関数を作って、偏微分してFindRootつかって求めようした
んですが、出来ないんです。
そこで、正規分布使って、普通に正規分布を推定してみようって思って、同じような
方法を使ったんですが、これでもうまくいきません。エラーとしては
{{初期値の尤度}},{{初期値の尤度}}は、{a,b}={1,2}では長さ2のリストになって
いません
というような感じです。最大尤度法をやってるプログラムのサンプルどっかないかなあ
って探したんですが、見つからないし・・・・。泣きそうなんですけど、どなたかお助け
ください。
0499132人目の素数さん
NGNGその説明で他人がなにかわかると思うか?
> んですが、出来ないんです。
ふーん出来ないんだ。(どこがどう出来ないのか全くわからん)
> {{初期値の尤度}},{{初期値の尤度}}は、{a,b}={1,2}では長さ2のリストになって
文法間違いだな。 (syntax errorなんだからソース見ないとどうしようもない)
> って探したんですが、見つからないし・・・・。泣きそうなんですけど、どなたかお助け
まぁ冷静になれ。
0500132人目の素数さん
NGNGわかりました。
0501498
NGNGですかね・・・
正規分布を推定する場合、乱数を出して、その後、尤度関数を出せたとして
K1[a_,b_]=D[L[a,b],a]
K2[a_,b_]=D[L[a,b],b]
として、
FindRoot[{K1=0,K2=0},{a,-1},{b,2}]
としてるんですけど。。この部分では、間違いがないとは思ってるんですが
尤度関数が間違ってるのかな・・・・。はあー泣きそう。。。
0502132人目の素数さん
NGNG☆見て見て!!
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
0503132人目の素数さん
NGNGMathematicaの基礎からやりなおしってかんじ。
とりあえずダメなところは指摘しとくが、
マニュアルか教科書(上でも挙がってる)読み直せ。
> K1[a_,b_]=D[L[a,b],a]
= と := の違いが良くわかってるのなら何もいわないが。
> FindRoot[{K1=0,K2=0},{a,-1},{b,2}]
K1 = 0 は K1 という変数を 0にする。
書くなら {K1[a, b] == 0, K2[a,b] == 0} 。
0504498
NGNGFindRoot[{K1[a,b]=0,K2[a,b]=0},{a,-1},{b,2}]
としてます。。。。。
サンプルプログラム載ってるサイトってないですかねえ・・・・。。。
0506498
NGNG確か:=は、なんか固定するみたいな意味だった気が・・・・
0507498
NGNG==ですね・・・すみません、それは、やってます・・・・。
0509498
NGNG>>498に書いたようなエラーメッセージが出ます。
FindRootの文法は、合ってると思うんですが。。。
0510503
NGNG498を読んだところでは第一パラグラフと第二パラグラフは
別の手段を試してるようにしか読めない(FindRootで失敗したから別の手段)。
どの関数でエラーが出力されたかもわからない。
エラーがあなたの言語に翻訳されているがそれが適切かどうかわからない。
すでに書いたがsyntax errorはソースをみないと何もわからない。
技術的なことを質問する方法をしらない、
シンタックスエラーが自分で解決できない、
レベルだったらソース張るべきだよ。
変にプライドがあるのかそういう「初心者」は多いけどね。
情報を出さずに、自分のやってることは間違ってない!、みたいな。
たんに誰かが作ったライブラリが欲しいのなら、
まず、googleなりwolframのサイトなりを検索し、
もっと適切な質問のしかたをすべき。
おれは今日はもう寝ます。
0512132人目の素数さん
NGNGp1=Table[ Random[ndist2],{100}];
L[a_,b_] = Product[(1/(Sqrt[2*π]*a))*Exp[(-({p1[[i]] - b}^2/(2 *a^2)))],{i,1,100}]
K1[a_,b_]=D[L[a,b],a]
K2[a_,b_]=D[L[a,b],b]
FindRoot[{R1[a,b]==0,R2[a,b]==0},{a,{1,2}},{b,{-2,4}}]
ソースは、これです。
>>511
あーそれは、どうすれば、解消できますかね。リストで返さずに関数として認識
してもらわないとつらいっすね・・・。
0513498
NGNGFindRoot[{K1[a,b]==0,K2[a,b]==0},{a,{1,2}},{b,{-2,4}}]
です。
0514132人目の素数さん
NGNG誰か偏微分係数の出し方を教えてください。
ちなみにMathematika 4.1を使用しています。
ヘルプの使い方がわからなくて・・・
0515514
NGNG失礼。
0516503
NGNGソースはコピペしてそのまま張れ。
タイプミスもあるしな。
πってPiだよな?
<<Statistics`NormalDistribution`
してるんだよな?
原因はp1のまえにある'{'だ。'{'はリスト構築子。
L[a_,b_] = Product[(1/(Sqrt[2*π]*a))*Exp[(-({p1[[i]] - b}^2/(2 *a^2)))],{i,1,100}]
↓におきかえろ。
L[a_,b_] = Product[(1/(Sqrt[2*π]*a))*Exp[(-((p1[[i]] - b)^2/(2 *a^2)))],{i,1,100}]
0517132人目の素数さん
NGNG社会学系だとmatlabやmathematicaより使われていますが…
0518498
NGNGありがとうございました。それで正規分布の推定は、できました。ただ、本当に
求めたいのは、
L[a1_, a2_, b1_, b2_, b3_] = Sum[y1[[i]]*Log[F[a1 - (b1*
x1[[i]] + b2*x2[[i]] + b3* x3[[i]])]] +
y2[[i]]*
Log[F[a2 - (b1*x1[[i]] + b2*x2[[i]] + b3*x3[[i]])] - F[
a1 - (b1*x1[[i]] + b2*x2[[i]] +
b3*x3[[i]])]] +
y3[[i]]*Log[
1 - F[a2 - (b1*x1[[i]] + b2*x2[[i]] + b3*x3[[i]])]], {i, 1,
100}];
という結構複雑なもので、これも{を(にしてみたんですが、やはりリストで返してる
みたいです。Sumの扱い方が悪いんでしょうか・・・・
てか、見にくくてすみません。
0519132人目の素数さん
NGNGa1,a2,b1,b2,b3,F,y1,... のどれかにリストが入ってんだろ…
同じことを何度も書くが、部分だけ張るなよ…
プログラミング自体初めてなのかも知れないが、レベル低すぎる。
一冊Mathematicaの本読め。
0520498
NGNG<<Statistics`ContinuousDistributions`
ndist=NormalDistribution[0,1];
x1=Table[ Random[ndist],{100}];
x2=Table[ Random[ndist],{100}];
x3=Table[ Random[ndist],{100}];
y=Table[2*x1[[i]]+3*x2[[i]]-x3[[i]],{i,100}];
y1=Table[If[y[[i]]<=-5,1,0],{i,100}];
y2=Table[If[-5<y[[i]]<=5,1,0],{i,100}];
y3=Table[If[5<y[[i]],1,0],{i,100}];
0521498
NGNGL[a1_,a2_,b1_,b2_,b3_]=Sum[y1[[i]]*Log[F[a1-(
b1*x1[[i]]+b2*x2[[i]]+b3*
x3[[i]])]]+
y2[[i]]*Log[F[a2-(b1*x1[[i]]+b2*x2[[i]]+b3*x3[[i]])]-
F[a1-(b1*x1[[i]]+b2*x2[[i]]+
b3*x3[[i]])]]+y3[[i]]*Log[1-
F[a2-(b1*x1[[i]]+b2*x2[[i]]+b3*x3[[i]])]],{i,1,100}];
K1[a1_,a2_,b1_,b2_,b3_]=D[L[a1,a2,b1,b2,b3],a1];
K2[a1_,a2_,b1_,b2_,b3_]=D[L[a1,a2,b1,b2,b3],a2];
K3[a1_,a2_,b1_,b2_,b3_]=D[L[a1,a2,b1,b2,b3],b1];
K4[a1_,a2_,b1_,b2_,b3_]=D[L[a1,a2,b1,b2,b3],b2];
K5[a1_,a2_,b1_,b2_,b3_]=D[L[a1,a2,b1,b2,b3],b3];
FindRoot[
{K1[a1,a2,b1,b2,b3]\[Equal]0,
K2[a1,a2,b1,b2,b3]\[Equal]0,
K3[a1,a2,b1,b2,b3]\[Equal]0,
K4[a1,a2,b1,b2,b3]\[Equal]0,
K5[a1,a2,b1,b2,b3]\[Equal]0},
{a1,0},{a2,1},{b1,1},{b2,3},{b3,1}
]
0522503
NGNGF[x_]の定義を良く読め。
それからMathematicaでプログラミングするときは
出力を確認しながらやれ。
F[x_] の行をセミコロン無しで打つか、
F[x]とか試しに打ってみながらやってれば間違えないだろ?
あとは自分でやれ。
0523132人目の素数さん
NGNGひとつだけを使いたいのですが、
たとえばt = %[[-1]], t = Last[%]などとしても、
{x ->0.234hogehoge}と t に入ってしまいます。
この x->を取り除くにはどうすればいいのでしょうか?
0524523
NGNGでできました。トンクス
0525132人目の素数さん
NGNGえー、 Sum[<<>>,{i,1,100}] ってあるけど
数値やるなら NSum じゃ駄目なん?
どうせFindRoot なんだし
0526132人目の素数さん
NGNGマニュアルで調べてみたんですが見つからなくて・・・・
0527132人目の素数さん
NGNG0528132人目の素数さん
NGNG0529山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0530132人目の素数さん
NGNG0531132人目の素数さん
NGNG0532132人目の素数さん
NGNGこれなら3,800円か。安いな。
0533132人目の素数さん
NGNGx=k/10
y=k+1
For[k=1,k<11,k++,
r=x+y]
みたいに繰り返し計算をさせる場合に、このrは、毎回更新されてしまうんで
その結果を格納してリストの形にしたいとするとどーすればいいですか?
勿論、これぐらい単純だとTable使えばいいんですが、やりたいのはもっと
ややこしいんで、結果をリストにする格納する方法を教えてください。
よろしくお願いします。
0534132人目の素数さん
NGNG単純であろうがなかろうがTableでいいはずだ。
どうしてもというなら
l ={}
For[k=1,k<11,k++,r=x+y;l = Prepend[r,l]]
等。
しかしmathematicaではFor文を使う必要はない(その上
遅いので使うべきでもない)ので再考することを勧める。
0535132人目の素数さん
NGNG0536132人目の素数さん
NGNG{234,{a -> 3,b -> 2}}
みたいな感じだと思うんですが、これをいっぱい出して、a,bの平均値を出すには
どうすればいいでしょうか?
0537132人目の素数さん
NGNG漠然としすぎ。
こういうことか?
<< Statistics`DescriptiveStatistics`
data = {x, y} /. (#[[2]] &) /@
Flatten[Table[
FindMinimum[Sin[x + y], {x, i}, {y, j}], {i, 0, 3}, {j, 0, 3}],
1];
Mean /@ Transpose @ data
0538132人目の素数さん
NGNGs/546/537
0539537=538
NGNG0540536
NGNGたとえば、
FindMinimum[f[a,b],{a,1},{b,2}]
とした場合、{最小値,{a -> 0.89898},{b->0.1}]
みたいにした場合、a->の部分を消すのはどうすればいいですか?
0541536
NGNGかなあと・・・無理なんですかねえ。。。
0542132人目の素数さん
NGNG▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
開店セール1枚 500円より→→→http://www.dvd-exp.com
アダルトDVDが激安販売→→→http://www.dvd-exp.com
アダルトDVDの価格はなーんと1枚900円→→→http://www.dvd-exp.com
最短でご注文いただいた翌日にお届け!→→→http://www.dvd-exp.com
セルビデオ店の人気商品が24時間お買い物が出来ます。
見やすい画面・注文簡単・時間をかけてゆっくり選んでください!
http://www.dvd-exp.com←へGO!
DVDエクスプレス
0543132人目の素数さん
NGNG簡単に消せるように"->"つきで出力されている。
s = {a -> 1, b -> 2}
{a,b} /. s
0544132人目の素数さん
NGNGs[[1]] や s[[2]] とかで取り出しても良いんじゃない?
0545132人目の素数さん
NGNG543で解決してます。”a->”みたいなのを取り除きたいってのが541の質問だろ。
ってか、房は黙ってろ(w
■ このスレッドは過去ログ倉庫に格納されています