〓 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/
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は動かないように細工されているらしい Jyupiter Notebookをフロントエンド、Wolfram Engineをバックエンドとして開発に使ってもよいとWolframが 許諾しているのなら、Jyupiter NotebookをMathematica Notebookに置き換えても構わないよな? それを許諾しないとは書いてない 結局、ラズパイ買ってきてRasbianの中のMathematicaを色々設定して、高スペックサーバーにインストールしたWolfram Engineを呼び出すのが良いってこと? 良いか悪いかは言わない ネットワーク経由のリモート計算でならロハでもできるというだけ それが無理ならおとなしくローカルでJyupiter Notebook Jyupiter Notebookで機能限定がなくフルスペックの計算ができるのは確認できていた ただJyupiter NotebookとMathematica Notebookの使用感が全く異なっており、ファイル互換性もない なんとかMathematica NotebookをフロントエンドにしてNotebookを統一したいというのが夢のきっかけだった 12.0から12.1にしてみたが違いがわからん 何か変わったか? Raspberry Pi 4B 4GでMathematicaを使ってるけど普通に使える。ベンチマークだと、15年前のPowerMacと同じくらいの性能。少し不満なのはできた3Dグラフィックをマウスで動かすのが遅くてうまくいかないことと、入力補完機能がないことくらい。 それでうまくいくシステムもあろうが、Windowsのリモートカーネルは別の方法で簡単に動く Raspiのmathematicaで1秒を超えるような計算をしたことがほとんどない 3Dグラフィックが遅いのも入力支援機能がないのもフロントエンドの問題だから解決しない rshの代わりにWnRM使ってリモートカーネルを並列計算用のWorkerカーネルとして動かそうとしたけど今一歩うまくいかない 今のところ出来ているのは一つのNotebookフロントエンドから多数のマシンにそれそれ独立したマスターカーネルを立ち上げて、 同じマシンで8 x Workerカーネル動かして計算すること マスターカーネルを一つにして、N個のマシンにWorkerカーネルを分散して、8N Workerカーネルで並列計算してパフォーマンス を見てみたいのだが、うまくいってない つまり、N個のCPUがあるとき N x 8 Wokerカーネルの並列計算は出来ているが 1 x 8N workerカーネルの並列計算が出来てない 今のところSurface Pro7も使ってN=6 Xeon E5-2643v3 (実6コア/仮想12スレッド) x2 Core i7-8700T(実6コア/仮想12スレッド)x2 Core i7-4790K(実4コア/仮想8スレッド)x1 Core i5-1035G4(実4コア/仮想8スレッド)x1 それぞれのコアで8 Workerカーネル動かして並列計算してる >>853 てことは初代iMacよりも性能上なのか 学生はStudent版買うよりこっちのほうがいいな なんかコールバックしてくるポートがおかしいんだよな バグなのかな? Lightweight Grid利用だけど、3台の実マシン(12C/24T+6C/12T+6C/12T)で24カーネル並列計算 もっとコアが欲しい ローカルにあるWolfram Engineのカーネルをリモートカーネルのように起動して起動カーネル数増やすことも出来る Mathematicaの入っているPCでremoteカーネルにローカルのWolfram engineのカーネルを起動するようにハックすれば、 1台のPCで8カーネルの制約を超えた並列計算が可能 32カーネル並列計算 並列カーネルの状態表示が壮観 ローカルカーネルをリモートカーネル的に使うことはできるが、Windowsでlightweight gridなしにリモートカーネルを使うのは 難しい 引数がどうにもうまく渡せない 数学掲示板群 ttp://x0000.net/forum.aspx?id=1 学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net 数学 物理学 化学 生物学 天文学 地理地学 IT 電子 工学 言語学 国語 方言 など PS 連続と離散を統一した! ttp://x0000.net/topic.aspx?id=3709-0 微分幾何学入門 ttp://x0000.net/topic.aspx?id=3694-0 ようやく成功した これでlightweight gridに頼らなくても済みそうだ 環境設定→並列処理→リモートカーネル→カスタム起動コマンドを使用 ・ローカルカーネル x8 ・ローカルにあるWolfram engineのカーネル x8 ・2つの別マシンのカーネル x8x2 を起動して32カーネル クライアント・サーバーともWindows10 Windows10オプションのOpenSSH(クラ・サバ)を使用 要するにもうMathematicaはタダということなのかね? スキルあるIT技術者には弄るオモチャとして開放するよ (フロントエンドや数学的な)サポートはしないけど ってとこじゃない?。 >>875 完全タダは無理じゃない? 自分は正規ライセンスのMathematicaにWolfram Engineを組み合わせてできる範囲の並列分散処理をやってる ラズパイ買えば、含まれる無償MathematicaとWolfram Engineの組み合わせでできることは拡大するが、ラズパイ のコストはかかる また、この方法はバックエンドの処理が重い場合には有効だけれども、複雑なグラフの描画とかフロントエンドの処理 が重い場合にはあまり意味がない フロントをラズパイで Wolfram EngineをPCで ってパターンならラズパイ分の値段だけでいける? >>878 いける それにメリットを感じるかどうかは、やりたいことによる フロントエンド ― マスターカーネル ― スレーブカーネル で、(スレーブカーネルは並列処理のときのみ) フロントエンド をラズパイ上のMathematicaで、 マスターカーネル ― スレーブカーネル をPC上のWolfram Engineで 分散処理することができる また、フロントエンド ― マスターカーネル をラズパイ上のMathematicaで、スレーブカーネルをPC上のWolfram Engineで 分散処理させることもできる 並列処理計算なんてしない人が多いんだろうけど その場合はマスターカーネルをPCに任せるという話になる。マスターカーネルでの処理が重ければ分散処理の意義が出てくる だろう >>873 これ、ParallelTableとかでシームレスに32並列行けるの? >>881 フロントエンド をラズパイ上のMathematicaで、 マスターカーネル―スレーブカーネル をPC上のWolfram Engineで分散処理は、 https://community.wolfram.com/groups/-/m/t/94917 https://support.wolfram.com/ja/12495?src=mathematica http://www3.econ.fukuoka-u.ac.jp/usage/doku.php/windows を基に設定した。これらを理解したうえで設定すればできた。 フロントエンド―マスターカーネル をラズパイ上のMathematicaで、スレーブカーネルをPC上のWolfram Engineで分散処理は、 Windows10のオプション機能であるOpenSSHを使えば実現できる >>883 ありがとうございます。できるかどうか分かりませんが、とりあえず読んでみようと思います。 そのリンクには、カーネルをリスンモードにしてフロントエンドからコネクトする方法と、フロントエンドをリスンモードにしてカーネルから コネクトする方法が書かれているが、自分は前者で実現した。 PC側でカーネルをリスンモードで起動するバッチファイルを作成し、先にカーネルを起動する。フロントエンドのカーネル環境設定 でフロントエンドからPCに接続するようにMLOpenの引数を設定したうえで、マスターカーネルを起動する。 LinkNameは自分で適当にポートを2つ決め打ちして両方で合わせればいい。 やろうと思えば、PC上のカーネルをOpenSSHなどでリモート起動することもできるはず。 ラズパイを仮想マシンで動かせばPCだけで完結できる? ARMのエミュではMathematicaは起動しないように制限かけているらしい 残念 このコードだけ見て何をしているか分かりますか? 解説お願いします seedList = With[{vertices = .1 N[PolyhedronData["Icosahedron"][[1, 1]]]}, Join[Map[{#, 2} &, vertices], Map[{# + {1, 1, 1}, -2} &, vertices]]]; Wolfram Engineの最新版についての案内のメールが来たけど、アップデートしたほうがいいの? Wolfram Engineを最新版にアップデートしたら、Jupyterから使えなくなってしまいました。kernel errorが出ます。どうすればいいですか? anacondaをアンインストールして再インストールしてもだめでした。 jupyter notebookを起動してNEWを押すとWolframがなぜか選択できるようになっています。 どうすればいいですか? jupyter notebookを起動してNEWを押したときにWolfram Engine 12.0とWolfram Engine 12.1の両方が現れます。古い方のWolfram Engine 12.0の表示を消すにはどうすればいいですか? aを正定数として x^2 + y^2 <= a^2の範囲にある円筒面x^2 + z^2 =a^2を表示したい Plot3Dで試してみたが(↓)違う図が表示される なんて書けばいい? a=1 Plot3D[x^2 + z^2 == a^2, {x, -a, a}, {z, -a, a}, RegionFunction -> Function[{x, y, z}, x^2 + y^2 <= a^2], BoxRatios -> Automatic] ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる