質問編集履歴

4

文法の修正

2023/11/10 03:39

投稿

higasi
higasi

スコア3

test CHANGED
File without changes
test CHANGED
@@ -154,7 +154,8 @@
154
154
 
155
155
  ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
156
156
  ```
157
-
157
+ 解決後の後学勉強のため
158
+ np.vectorizeを使ってみる (np.vectorize(A)(v/v_c)だとうまく計算された)(np.vectorize(A(v/v_c))だとエラーになる
158
159
  ```
159
160
  return (np.sqrt(3)*Q**3*B*sin_pa/(m*c**2))*np.vectorize(A(v/v_c))
160
161
  ```

3

文法の修正

2023/11/10 03:36

投稿

higasi
higasi

スコア3

test CHANGED
File without changes
test CHANGED
@@ -155,6 +155,30 @@
155
155
  ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
156
156
  ```
157
157
 
158
+ ```
159
+ return (np.sqrt(3)*Q**3*B*sin_pa/(m*c**2))*np.vectorize(A(v/v_c))
160
+ ```
161
+
162
+ ```
163
+ ---------------------------------------------------------------------------
164
+ TypeError Traceback (most recent call last)
165
+ <ipython-input-56-8cbe0f1e7b70> in <module>
166
+ 57 y=np.zeros(N)
167
+ 58 for l in range(N):
168
+ ---> 59 y[l]=P(v[l])
169
+ 60 def P2(v):
170
+ 61 return P(v)*ndgdb
171
+
172
+ <ipython-input-56-8cbe0f1e7b70> in P(v)
173
+ 54 v_c=3*g**2*Q*B*sin_pa/(2*m*c*(2*np.pi))
174
+ 55 def P(v):
175
+ ---> 56 return (np.sqrt(3)*Q**3*B*sin_pa/(m*c**2))*np.vectorize(A(v/v_c))
176
+ 57 y=np.zeros(N)
177
+ 58 for l in range(N):
178
+
179
+ TypeError: unsupported operand type(s) for *: 'float' and 'vectorize'
180
+ ```
181
+
158
182
 
159
183
 
160
184
  ### 補足情報(FW/ツールのバージョンなど)

2

文法の修正

2023/11/10 03:10

投稿

higasi
higasi

スコア3

test CHANGED
File without changes
test CHANGED
@@ -113,6 +113,49 @@
113
113
  ### 試したこと
114
114
 
115
115
  調べて、模索中
116
+ for文で逐次処理対応させられたら大丈夫かと思ったが同じようにエラーが出てしまう
117
+ ```
118
+ import itertools
119
+ #### j k l ###
120
+
121
+ p=2
122
+ q=3
123
+ N=(15-0)*10
124
+ v=np.logspace(0,15,N)
125
+ s = 0
126
+ for j in range(0,4):
127
+ for k in range(0,4):
128
+ g=10**(0.1*j)
129
+ B=10**(0.1*k)
130
+ ndgdb=(g**(-p))*(B**(-q))*((10**(0.1*(j+1)))-(10**(0.1*j)))*((10**(0.1*(k+1)))-(10**(0.1*k)))
131
+ v_c=3*g**2*Q*B*sin_pa/(2*m*c*(2*np.pi))
132
+ CC=v/v_c
133
+ Z=np.zeros(N)
134
+ for mm in range(N):
135
+ Z[mm]=A(CC[mm])
136
+ np.savetxt("{}/A_C_{}_{}_g^-{}B^-{}_g10^0-4_B10^0-4.txt".format(date,j,k,p,q),A(CC))
137
+ ```
138
+ ```
139
+ ---------------------------------------------------------------------------
140
+ ValueError Traceback (most recent call last)
141
+ <ipython-input-48-4af7f2999ddc> in <module>
142
+ 17 for mm in range(N):
143
+ 18 Z[mm]=A(CC[mm])
144
+ ---> 19 np.savetxt("{}/A_C_{}_{}_g^-{}B^-{}_g10^0-4_B10^0-4.txt".format(date,j,k,p,q),A(CC))
145
+ 20
146
+ 21
147
+
148
+ <ipython-input-36-a26b605d64ec> in A(x)
149
+ 1 def A(x):
150
+ ----> 2 if x <= 5.0*1e-3:
151
+ 3 return G(x)
152
+ 4 elif 5.0*1e-3 < x < 30:
153
+ 5 return F(x)
154
+
155
+ ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
156
+ ```
157
+
158
+
116
159
 
117
160
  ### 補足情報(FW/ツールのバージョンなど)
118
161
 

1

文法の修正

2023/11/10 03:05

投稿

higasi
higasi

スコア3

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,8 @@
4
4
 
5
5
  ### 前提
6
6
 
7
+ x=v/v_c の値で条件によりA(v/v_c)の関数が(F、G、H)変更するようにしたいけど配列をそのまま渡してしまうからany(),all()って聞かれてしまう。
7
- 計算させようとしら、エラーが出てきた
8
+ A(x)=(G,G,G,G,F,F,F,F,F,H,H,H,H)みたく条件で変化する関数作り
8
9
 
9
10
  ### 発生している問題・エラーメッセージ
10
11
 
@@ -115,6 +116,5 @@
115
116
 
116
117
  ### 補足情報(FW/ツールのバージョンなど)
117
118
 
118
- x=v/v_c の値で条件によりA(v/v_c)の関数が(F、G、H)変更するようにしたいけど配列をそのまま渡してしまうからany(),all()って聞かれてしまう。
119
+ windows 11
119
- A(x)=(G,G,G,G,F,F,F,F,F,H,H,H,H)みたく条件で変化する関数を作りたい
120
+ jupyter notebook
120
-