質問編集履歴
2
x軸:r0,y軸:gamma,z軸:mの関数として、p[r0,gamma,m]のグラムが表示されない現象を、やや詳しく記載。
test
CHANGED
File without changes
|
test
CHANGED
@@ -35,17 +35,20 @@
|
|
35
35
|
|
36
36
|
### 実現したいこと
|
37
37
|
|
38
|
-
小さな音源から出る音圧(3次元的な広がりを計算した
|
38
|
+
小さな音源から出る音圧(3次元的な広がりを計算ししたものを)
|
39
|
+
p[r0,gamma,m]のグラフとして表示したい。
|
39
40
|
|
40
41
|
### 発生している問題・エラーメッセージ
|
41
42
|
|
42
43
|
|
43
44
|
エラーメッセージ
|
44
45
|
|
46
|
+
最後の命令文:
|
47
|
+
plot3d(x = r0, y = gamma, z = m )
|
48
|
+
の所で、
|
49
|
+
Warning message:
|
45
|
-
|
50
|
+
In xyz.coords(x, y, z, xlab = xlabel, ylab = ylabel, zlab = zlabel, :
|
46
|
-
|
51
|
+
imaginary parts discarded in coercion
|
47
|
-
" }
|
48
|
-
p[r0,gamma,m] = (2*pi*f*rou)i"
|
49
52
|
|
50
53
|
### 該当のソースコード
|
51
54
|
|
@@ -80,8 +83,11 @@
|
|
80
83
|
|
81
84
|
### 試したこと
|
82
85
|
|
86
|
+
希望としては、
|
87
|
+
x軸がr0、y軸がgamma、z軸がにして、
|
88
|
+
p[r0,gamma,m]は、その各点での色の濃さのような
|
83
|
-
|
89
|
+
表現のし方が出来ればいいんだけど、グラフ自体が
|
84
|
-
|
90
|
+
表示されないので、何とも。。。
|
85
91
|
|
86
92
|
### 補足情報(FW/ツールのバージョンなど)
|
87
93
|
|
1
複素数の計算は、iの代わりにcomplexを使い、compileは切り抜けました。ただ、一番、最後のplot3d()でグラフは表示されず
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
複素数の使い方がわからないのと、3次元プロットの方法を確認したい
|
1
|
+
複素数の使い方がわからないのと(これは、iではなく、complex関数を使う事により切り抜けたようです)、3次元プロットの方法(これは、まだグラフが表示されません)を確認したい
|
test
CHANGED
@@ -1,4 +1,35 @@
|
|
1
|
+
```ここに言語を入力
|
2
|
+
library(rgl) # On console
|
1
3
|
|
4
|
+
|
5
|
+
p = array(1:72000, dim=c(20,36,100))
|
6
|
+
|
7
|
+
k = 4187 # phase constant [rad/m] = (2*pi)/lambda =(2*3.14)/(1500/1000000)
|
8
|
+
a = 0.0025 # radius of diaphragm [m]
|
9
|
+
f = 1000000 # frequency [Hz]
|
10
|
+
rou = 1.06 # density
|
11
|
+
|
12
|
+
for (r0 in 1:20) # Deapth [*5 mm]
|
13
|
+
{
|
14
|
+
for (gamma in 1:36)
|
15
|
+
{
|
16
|
+
Jn_z = 0
|
17
|
+
for (m in 1:100)
|
18
|
+
{
|
19
|
+
z = k*a*sin(gamma*10)
|
20
|
+
P_Jn = (((-1)^m)/(factorial(m)*factorial(m+1)))*(z/2)^(2*m+1)
|
21
|
+
Jn_z = Jn_z + P_Jn
|
22
|
+
}
|
23
|
+
Imp<-complex(real=0,imaginary=2*pi*f*rou)
|
24
|
+
Phase<-complex(real=0,imaginary=2*pi*f-k*r0)
|
25
|
+
p[r0,gamma,m] = Imp*(a^2*5*exp(Phase))/(r0*(Jn_z/(k*a*sin(gamma*10)))) # Sound Pressure = ρ*(d(fai)/dt) ω*ρ*((a^2)*Vm*e^j(ωt-kr0))/r0*(J1((k*a*sinγ)/(k*a*sinγ))
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
plot3d(x = r0, y = gamma, z = m ) # この命令で、グラフが表示されない
|
30
|
+
|
31
|
+
|
32
|
+
```
|
2
33
|
|
3
34
|
でも複素数の計算でエラーで、プロットの仕方もこれでいいのかわからない
|
4
35
|
|