teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記2

2019/09/18 04:00

投稿

namnium1125
namnium1125

スコア2045

answer CHANGED
@@ -41,4 +41,10 @@
41
41
  # print(*res)
42
42
  ```
43
43
 
44
- 今回の場合、 `pip3` を用いて `numpy` をインストールしておくと色々と楽です。
44
+ 今回の場合、 `pip3` を用いて `numpy` をインストールしておくと色々と楽です。
45
+
46
+ ---
47
+
48
+ `numpy.array` ならforで回す必要なかったですね()
49
+
50
+ [kokorin様の書き方](https://teratail.com/questions/212484#reply-312896) がベストだと思います

1

追記

2019/09/18 04:00

投稿

namnium1125
namnium1125

スコア2045

answer CHANGED
@@ -15,4 +15,30 @@
15
15
  # またはリスト内包表記で新しいリストを作成
16
16
  res = [micro*Pmax*((1-(y_c)**2))**(0.5) for y_c in y_c_arr]
17
17
  print(*res)
18
- ```
18
+ ```
19
+
20
+ ---
21
+
22
+ `y` の値については、 `y_c` と `c` の値から逆算できます。とりあえず `c` が入力された値によって判明しているものとするとこう書けばよろしいのではないでしょうか?
23
+
24
+ ```python
25
+ import numpy as np
26
+
27
+ micro = 1
28
+ Pmax = 2
29
+ c = 10 # 入力から求める
30
+
31
+ # y_c_arr = [-1.0,-0.9,-0.8,0.1,0.0,0.1,0.8,0.9,1.0]
32
+ y_c_arr = np.arange(-1.0, 1.0, 0.1)
33
+
34
+ for y_c in y_c_arr:
35
+ q = micro*Pmax*((1-(y_c)**2))**(0.5)
36
+ print("(y/c)={:.1f}のとき, q={:.1f}, y={:.1f}".format(y_c, q, y_c*c))
37
+
38
+ # またはリスト内包表記で新しいリストを作成
39
+ # res = [micro*Pmax*((1-(y_c)**2))**(0.5) for y_c in y_c_arr]
40
+ res = np.array([micro*Pmax*((1-(y_c)**2))**(0.5) for y_c in y_c_arr])
41
+ # print(*res)
42
+ ```
43
+
44
+ 今回の場合、 `pip3` を用いて `numpy` をインストールしておくと色々と楽です。