〓 Mathematica 七 〓 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
_....._{{ 〃
, - ' ,..、、.ヾ{{フ'⌒`ヽ、
/ ,:', -‐‐` ´ '´⌒ヽ ヾ:、
. ,' ,'´ ,ィ ,ィ ,' , `ヽ', ',-<
,' .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/
〓 Mathematica 2 〓
http://science3.2ch.net/test/read.cgi/math/1078534285/
〓 Mathematica 3 〓
http://science6.2ch.net/test/read.cgi/math/1121413040/
〓 Mathematica 四 〓
http://kamome.2ch.net/test/read.cgi/math/1197270001/ (鯖飛びでログ消滅)
http://mimizun.com/log/2ch/math/1197270001/
〓 Mathematica 5 〓
http://kamome.2ch.net/test/read.cgi/math/1285859504/
〓 Mathematica 伍 〓 (実質6)
http://wc2014.2ch.net/test/read.cgi/math/1320969748/ 例えば、
Subscript[x, 1]
を変数として使いたいのですが、
別のところで、
x = 3
などとやるとエラーが出ます。
どうすればいいでしょうか? 私の環境では問題なく使えますが、、。
例えば
Subscript[x, 1]=123
とすれば
Subscript[x, 1]
は123を返してきます。
しかし、ただのxで参照したら別の変数でしょう? あ、
f[a]=321
とすれば
f[a]
は321を返すんだから説明になってなかったですね。
でも
x_1(ここでは表現が難しい、、)は123を返してきます。 なぜ以下の関数は引数のリストの要素の和を計算するのでしょうか?
sumList[lis_]:=First[lis//.{x_, y___} -> x + {y}] >>750
sumListの右辺で最初にx+{y}が計算されて{x+y}となるみたいだ。
yはSequenceが入る。
例えば
x+Sequence[a,b,c]は
x+a+b+c
となるようだからlistの要素の総和になる。 3 + {Sequence[1, 2]}
を計算すると、
{4, 5}
になりました。 >>751
>sumListの右辺で最初にx+{y}が計算されて{x+y}となるみたいだ。
これはなぜなのでしょうか? {x,y,z,w}//.{x_, y___} -> x + {y}]
.....{x+y+{z,w}}---> x+y+z+w >>753
https://reference.wolfram.com/language/ref/Rule.html
によればRule“->”の右辺は即事に評価すると書いてあるから、
x+{y}はx,yに代入される前に評価されて{x+y}になり
そのあと代入されて、計算が続くということだろう。 Poor man's Mathematica used on Raspberry Pi FindEquationalProof
いつの間にか定理の自動証明ができるレベルになってたんですね
群の証明なんかが自動的にできてて驚いた 金持ちの数学者>>>>>>>>>。。。。。>>>貧乏人の数学者>>>>>2chの数学者 なんか久しぶりに数学勉強したくなってきた。
高校1年生の2次関数勉強中。サポートよろ! http://tvcap.info/2019/2/5/n2i9190205-2243560390.jpg
http://tvcap.info/2019/2/5/n2i9190205-2244010380.jpg
http://tvcap.info/2019/2/5/n2i9190205-2244040827.jpg
http://tvcap.info/2019/2/5/n2i9190205-2244240232.jpg
http://tvcap.info/2019/2/5/n2i9190205-2244110703.jpg
http://tvcap.info/2019/2/5/n2i9190205-2244390628.jpg
http://tvcap.info/2019/2/5/n2i9190205-2244540005.jpg
http://tvcap.info/2019/2/5/n2i9190205-2245000222.jpg
http://tvcap.info/2019/2/5/n2i9190205-2245040254.jpg
http://tvcap.info/2019/2/5/n2i9190205-2245180265.jpg
http://tvcap.info/2019/2/5/n2i9190205-2245250755.jpg
http://tvcap.info/2019/2/5/n2i9190205-2245300342.jpg 【超悪質!盗聴盗撮・つきまとい嫌がらせ犯罪者の実名と住所を公開】
@井口・千明(東京都葛飾区青戸6−23−16)
※盗聴盗撮・嫌がらせつきまとい犯罪者のリーダー的存在/犯罪組織の一員で様々な犯罪行為に手を染めている
低学歴で醜いほどの学歴コンプレックスの塊/超変態で食糞愛好家である/醜悪で不気味な顔つきが特徴的である
A宇野壽倫(東京都葛飾区青戸6−23−21ハイツニュー青戸202)
※色黒で醜く太っている醜悪黒豚宇野壽倫/低学歴で人間性が醜いだけでなく今後の人生でもう二度と女とセックスをすることができないほど容姿が醜悪である
B色川高志(東京都葛飾区青戸6−23−21ハイツニュー青戸103)
※色川高志はyoutubeの視聴回数を勝手に短時間に何百何千時には何万回と増やしたり高評価・低評価の数字を一人でいくつも増やしたり減らしたりなどの
youtubeの正常な運営を脅かし信頼性を損なわせるような犯罪的業務妨害行為を行っています
※色川高志は現在、生活保護を不正に受給している犯罪者です/どんどん警察や役所に通報・密告してやってください
【通報先】
◎葛飾区福祉事務所(西生活課)
〒124−8555
東京都葛飾区立石5−13−1
рO3−3695−1111
C清水(東京都葛飾区青戸6−23−19)
※低学歴脱糞老女:清水婆婆 ☆☆低学歴脱糞老女・清水婆婆は高学歴家系を一方的に憎悪している☆☆
清水婆婆はコンプレックスの塊でとにかく底意地が悪い/醜悪な形相で嫌がらせを楽しんでいるまさに悪魔のような老婆である
D高添・沼田(東京都葛飾区青戸6−26−6)
※犯罪首謀者井口・千明の子分/いつも逆らえずに言いなりになっている金魚のフン/親子孫一族そろって低能
E高橋(東京都葛飾区青戸6−23−23)
※高橋母は夫婦の夜の営み亀甲縛り食い込み緊縛プレイの最中に高橋親父にどさくさに紛れて首を絞められて殺されそうになったことがある
F長木義明(東京都葛飾区青戸6−23−20) ※日曜日になると風俗店に行っている Mathematicaは手続き型ではなく関数型でコードを書いたほうが高速化するらしいけど、並列計算させたいとき
関数型で書けばうまくいきますかね? そうだよ。関数型で書いて最後に //Parallelize を付けるだけで分散処理してくれる。 最後に //Parallelize を付けるだけ
ってのはMathematicaじゃないような気もするけど gridのこと?
自マシンのマルチコアプロセッサー利用なら何もいらない
正規ライセンスあればLightweight Gridも利用できる これはマセマティカがタダになったという理解でいいの? >>777
入力はキャラクタベースのTexでやるってこと? Potential[x_] = 0.5*k*x^2;
Threshold[n_] = 10*n;
If[Potential[x] >= threshold[n],
Force[x_, v_] := -k*x-G*v;];
のように、条件にあった時だけIf文内を実行したいのですが、If文の条件判定がうまく機能していないようです。
条件分に変数のある関数が入っていたらまずいのでしょうか。
下のように、条件文の前で関数の値を置き直せば問題ないのでしょうか。
こうすると動くようになったと思いますが、実際のものは煩雑でして正しく動作しているのか分かりません…。
よろしくお願い致します。
Potential[x_] = 0.5*k*x^2;
Threshold[n_] = 10*n;
Potential_value = Potential[x_];
Threshold_value = Threshold[n_];
If[Potential_value >= Threshold_value,
Force[x_, v_] := -k*x-G*v;]; >>782
>If[Potential[x] >= threshold[n],
>Force[x_, v_] := -k*x-G*v;];
よくわからないけど、If文の条件が実際に評価されるときに(x,nに)値が入ってるんですか?そうでないと関数Fは未定義のままですよね?
それとThresholdはMathematica自身の関数として定義済みでは?
それと、Potential_value =と_valueをつけると変数にセットできないんじゃありませんか?私の使ってるバージョンではできません。 x、nに値は入っています。
初心者でトンチンカンな事を聞いてるみたいですみません。
>それとThresholdはMathematica自身の関数として定義済みでは?
これ、そもそも○○[x_]などと定義するのが間違ってるって事でしょうか?
xに値が入るなら○○[x_]と定義する必要がない、と。
>それと、Potential_value =と_valueをつけると変数にセットできないんじゃありませんか?私の使ってるバージョンではできません
たしかにできないみたいです。
すみません。
x,nをループで回して、
Potential = 0.5*k*x^2;
Threshold = 10*n;
If[Potential >= threshold,
Force[v_] := -k*x-G*v;];
というようにすればいいのですかね。 ループの中で
Force[v_] := -k*x-G*v;
と何度も定義し直すのは何か意図があるのですか?
素直にループの外で
Force[v_]:=If[ 0.5 k x^2>=10 n, -k x-G v ,必要なら何か定義...]
と定義しておくのはダメなのですか? >>784
Mathematicaの入門書を読むことをお勧めします。 条件変えるループの中で定義したいんです
皆さんどうされてるんでしょう
本読み直します ヒントになるかわかりませんが、
関数の引数に関数を与えることもできます。 どこのがっこんだよ
くだらんものをだすな 資源の浪費だ >>792
あ、スマホでは出ないんだな。PCで見てくれ Clear[p,q];
Sum[If[q == p, q, 0], {q, 1, 3}] /. p -> 2
の結果として 2 になること期待したんだけれど,
qが返ってきてしまった…
なして? If[1 == p, q, 0] + If[2 == p, q, 0] + If[3 == p, q, 0] /. p -> 2
だから q だろうね。
Sum[If[q == p, q, 0] /. p -> 2, {q, 1, 3}]
だと2だよ。 If の属性に HoldRest が設定されているからだな。
Sum は Block を使って変数を置き換えていく。Block は変数を置き換えながら内側の式を評価するが、HoldRest のせいで第2引数の q は評価されずにそのまま残る。
第1引数は評価され置き換わるが、If は第1引数が True または False になるまで開かれないから、結果 >>798 の1行目のように展開され、答えは q となる。 0130
ふうL@Fu_L12345654321
学コン1傑いただきました!
とても嬉しいです!
https://pbs.twimg.com/media/D-IuUuqVUAALnAB.jpg
https://twitter.com/Fu_L12345654321/status/1144528199654633477
https://twitter.com/5chan_nel (5ch newer account) >>797
Sum[If[q == p, Evaluate@q, 0], {q, 1, 3}] /. p -> 2
でも2が返るよ。
昔lispやってたので馴染めないんだが、、、。 松坂和夫著『解析入門中』を読んでいます。
周囲の長さが一定 2*s である三角形の面積の最大値を求めよ。
ヘロンの公式より、
S = sqrt(s * (s - x) * (s - y) * (s - z))
φ(x, y, z) = x + y + z - 2*s
(grad φ)(x, y, z) = (1, 1, 1) ≠ (0, 0, 0)
0 < x < y + z = 2*s - x
0 < y < z + x = 2*s - y
0 < z < x + y = 2*s - z
だから、
0 < x < s
0 < y < s
0 < z < s
でなければならない。
φ(x, y, z) = 0
0 < x < s
0 < y < s
0 < z < s
という条件下で、
f(x, y, z) = (s - x) * (s - y) * (s - z)
を最大化する (x, y, z) を求めて、面積 S を計算すればよい。
↓は制約条件を満たす点の集合、いわゆる実行可能領域です。
https://imgur.com/XzhCaP7.jpg https://imgur.com/Fwn3FfO.jpg
↑実行可能領域の正三角形の重心で面積が最大になることが分かりますね。 f が具体的にどんな関数なのかは教えずに、 f が t の関数であることをMathematicaに教えるにはどうすればいいのでしょうか? iとjが添え字で、x[i,j]を総和記号で足し合わせるとき、 j≠iのときは足さないのはどうやって入力するの?
n m
Σ Σ x[i,j]
i=1 j=1
j≠i
みたいなやつ。意味わかります? >>810 レスを有り難うございます。
ただ、それはわかってますが、もうちょっとスマートに書きたいということです。 ラテン語またはギリシア語の「マテーマタ」(古希:Μαθηματα) は「学ばれるべき事ども(Lesson)」という意味である。 対角成分が発散してないなら引くかな
その方が早そうだし
発散するときは
x[i_, j_] := 0 /; i == j;
x[i_, j_] := X[i, j];
Sum[x[i, j], {i, 1, 3}, {j, 1, 3}]
Out=X[1, 2] + X[1, 3] + X[2, 1] + X[2, 3] + X[3, 1] + X[3, 2]
とか? >>813 お返事が遅くなってすみません。有り難うございます。それでうまくいきました。 Wolfram Languageの実践的な解説をしているサイトを教えてください。
Mathematicaの本を見ても基本的なことしか書いていないですよね。 合成関数について質問です。
f[x_, y_] := x^2 + y^3
g[t_] := {t^2, 3*t+1}
とします。
f[g[t]] とはできないですよね?
f[v_] := v[[1]]^2 + v[[2]]^3
g[t_] := {t^2, 3*t+1}
としないといけないんですか? 引数がx,yの2個の場合しか定義してないのに
1個しか与えてないのだから未定義扱いになるのは当然では? Mathematicaの年間ライセンスが三月十四日円周率キャンペーンで安くなってるけど買おうかな? 斎藤正彦著『斎藤正彦線型代数学』を読んでいます。
正規行列はユニタリ行列によって対角化できるという定理が書いてあります。
Wolfram Language 12で、 A = U*D*U^* となる U, D を計算する関数を作りました。
orthogonalizationU[A_] := Module[
{eigenvs, U, DIA},
eigenvs = Eigenvalues[A];
DIA = DiagonalMatrix[eigenvs];
eigenvs = DeleteDuplicates[Eigenvalues[A]];
U = Transpose @ ((Flatten[#, 1])& @ (Orthogonalize /@ (NullSpace /@ ((A - #*IdentityMatrix[Length[A]])& /@ eigenvs))));
{U, DIA}
] 斎藤正彦著『斎藤正彦線型代数学』を読んでいます。
以下の定理が書いてありますが、 A = U*T (T が上三角行列)の場合しか証明されていません。
2.5.17 【定理】
任意の n 次正則行列 A はユニタリ行列 U と、対角成分が正の実数であるような上三角行列(下三角行列でもいい) T の積 U*T (T*U でもいい)として
一意的に表わされる。 他のケースについて書いておきます:
(2)
A^T = U * T (T は上三角行列)
と分解し、両辺の転置を取ると、
A = T^T * U^T (T^T は下三角行列)
(3)
A の列たちをリバースした行列を A' とする。
A' = U * T (T は上三角行列)
と分解する。
T の列たちをリバースした行列を T' とする。
A = U * T' (T' は左上三角行列)
である。
U の列をリバースした行列を U' とする。
T' の行をリバースした行列を T'' とする。
A = U' * T'' (T'' は下三角行列)
である。
(4)
(3)の手順にしたがって、
A^T = U * T (T は下三角行列)
と分解する。
A = T^T * U^T (T^T は上三角行列)
(2)〜(4)のケースの一意性についても
A = U*T (T が上三角行列)のタイプの分解の一意性から自明ですよね。 Wolfram Language 12で、
4つのタイプの分解を行う関数を作りました。
gs[U_, a_] := Append[U, Simplify[normalize[a - Sum[(a.u)*u, {u, U}]]]];
gramschmidt[A_] := Module[{U = {}}, Do[U = gs[U, A[[i]]], {i, 1, Length[A]}]; U];
qrdecom[A_] := Module[{U, T},
U = gramschmidt[A];
T = Table[If[j > k, 0, A[[k]].U[[j]]], {j, 1, Length[A]}, {k, 1, Length[A]}];
{Transpose[U], T}];
qrdecom2[A_] := Module[
{B, U, T},
B = Reverse[A];
U = gramschmidt[B];
T = Table[If[j > k, 0, B[[k]].U[[j]]], {j, 1, Length[B]}, {k, 1, Length[B]}];
{Transpose[Reverse[U]], Reverse[Transpose[Reverse[Transpose[T]]]]}];
qrdecom3[A_] := Module[{B, U, T},
B = Transpose[A];
U = gramschmidt[B];
T = Table[If[j > k, 0, B[[k]].U[[j]]], {j, 1, Length[B]}, {k, 1, Length[B]}];
{Transpose[T], U}];
qrdecom4[A_] := Module[
{B, C, U, T},
B = Transpose[A];
C = Reverse[B];
U = gramschmidt[C];
T = Table[If[j > k, 0, C[[k]].U[[j]]], {j, 1, Length[C]}, {k, 1, Length[C]}];
{Transpose[Reverse[Transpose[Reverse[Transpose[T]]]]], Reverse[U]}]; >>820,821,822,823
こいつは数学の本スレで連投を繰り返している荒らしです
レスしないでください Wolfram Engine+Jupyter notebookしか使ったことないから、本物のMathematicaがどんな感じなのかわからん 正規MathematicaからWolfram Engine呼び出して使えば・・・・・ フロントエンドカーネルと並列処理のローカルカーネルとしては使える
並列処理のリモートカーネルとして使えないものか RpiのMathematicaフロントエンドを高性能のWindowsマシンにインストールしたEngineにリモート接続してフル機能使えるやん Jyupiter notebokk+Wolfram Engineより、Mathematica FE on RPi+Wolfram Engineのほうが遙かに幸せになれる ラズパイのMathematicaって仮想マシンでも動くの? Raspberry Pi Desktop X86を仮想化作業中
ここに入っていればRaspberry Piも要らないね
Mathematica 6のフロントエンドで動けば助かったけど、6.0 FE+12.1 Engineの組み合わせはちょっと無理っぽかった
Macで動いたって言うブログ見たけれど Engineをフロントエンドと並列計算用サブカーネルに使うことは簡単にできる
並列計算用サブカーネルにのみ使って、正規の8カーネル+Engine 8カーネルで16カーネル並列計算できないか
なんとなくやり方はわかったけど、これは後でやってみる やっぱx86版にはMathematicaはないみたいね 5つの8カーネル並列計算プロセスを1台にインストールされたMathematicaフロントエンドで制御して計算する フロントエンド落ちたら全部おじゃんになる
やりすぎたか これはMathematicaタダという理解でいいの? 単一のマシンでなくてもいいなら
無償のラズパイMathematicaフロントエンドか別に使えるバージョン新しめのMathematicaフロントエンドを持っているなら Jyupiter Notebookでもタダで使えてた
でもMathematicaのフロントエンドを使えば高額な有償Mathematicaと同じになっちゃう夢を見た フロントエンドにリモートMathKernelとの通信機能が実装されていれば
Wolfram EngineのMathKernelはMathematicaパッケージのMathKernelと全く同じで、特に機能制限されてない ラズパイってアームだよな
スマホでMathematicaとか未来だ ARM Raspbianをエミュレータで動かすことも可能なのか Raspberianは動いても、エミュ上ではMathematicaは動かないように細工されているらしい ■ このスレッドは過去ログ倉庫に格納されています