すみません。。
前回の質問も込みで、3,4日以上かけて考えたのですが、x,y平面上をランダムウォークしたときの、それぞれの位置に依存した確率をz軸として3次元plotしたく、苦戦しています。。
(*私が質問しているのは、大学の課題ではないです。独学でやっております)
python
1import random 2import matplotlib.pyplot as plt 3import numpy as np 4from mpl_toolkits.mplot3d import Axes3D 5import sympy as sym 6from sympy import* 7 8N=0 9P=1 10def random_walk_2d(N): #関数を定義します 11 x , y = 0, 0 12 step_x, step_y= [x],[y] 13 for i in range(N): #今回は100に設定したから、iは100の範囲 14 x += random.choice([1, -1]) #xに-1,1のどれかを足す 15 P *=sym.Rational(1,4) 16 y += random.choice([1, -1]) 17 P *=sym.Rationla(1.4) 18 step_x.append(x) #足したxをstep_xに格納する 19 step_y.append(y) 20 return [step_x, step_y, P]#Nステップ終わったら値を返す 21###定義終わり 22#怪しい 23#定義した関数を使う 24walk = random_walk_2d(1000) 25#print(walk) 26plt.plot(walk[0], walk[1], P)#xとyのそれぞれのwalk 27plt.axis([-100,100,-100,100]) 28plt.xlabel("x") 29plt.ylabel("y") 30plt.zlabel("probilty") 31plt.show()
設定】
原点スタートで、1回のステップでx=1 or -1 かつ y= 1 or -1 を移動していきます。
つまり、確率1/4でどれかに移動してくのですが、この確率を(x,y)の関数としなければ、3次元プロットができないということなのでしょうか?
確率をどのように、x,yと絡めるのかわからず、正直、コードはぐちゃぐちゃです。
ご教授の方、よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー