回答編集履歴

2

追記2

2019/09/18 04:00

投稿

namnium1125
namnium1125

スコア2045

test CHANGED
@@ -85,3 +85,15 @@
85
85
 
86
86
 
87
87
  今回の場合、 `pip3` を用いて `numpy` をインストールしておくと色々と楽です。
88
+
89
+
90
+
91
+ ---
92
+
93
+
94
+
95
+ `numpy.array` ならforで回す必要なかったですね()
96
+
97
+
98
+
99
+ [kokorin様の書き方](https://teratail.com/questions/212484#reply-312896) がベストだと思います

1

追記

2019/09/18 04:00

投稿

namnium1125
namnium1125

スコア2045

test CHANGED
@@ -33,3 +33,55 @@
33
33
  print(*res)
34
34
 
35
35
  ```
36
+
37
+
38
+
39
+ ---
40
+
41
+
42
+
43
+ `y` の値については、 `y_c` と `c` の値から逆算できます。とりあえず `c` が入力された値によって判明しているものとするとこう書けばよろしいのではないでしょうか?
44
+
45
+
46
+
47
+ ```python
48
+
49
+ import numpy as np
50
+
51
+
52
+
53
+ micro = 1
54
+
55
+ Pmax = 2
56
+
57
+ c = 10 # 入力から求める
58
+
59
+
60
+
61
+ # y_c_arr = [-1.0,-0.9,-0.8,0.1,0.0,0.1,0.8,0.9,1.0]
62
+
63
+ y_c_arr = np.arange(-1.0, 1.0, 0.1)
64
+
65
+
66
+
67
+ for y_c in y_c_arr:
68
+
69
+ q = micro*Pmax*((1-(y_c)**2))**(0.5)
70
+
71
+ print("(y/c)={:.1f}のとき, q={:.1f}, y={:.1f}".format(y_c, q, y_c*c))
72
+
73
+
74
+
75
+ # またはリスト内包表記で新しいリストを作成
76
+
77
+ # res = [micro*Pmax*((1-(y_c)**2))**(0.5) for y_c in y_c_arr]
78
+
79
+ res = np.array([micro*Pmax*((1-(y_c)**2))**(0.5) for y_c in y_c_arr])
80
+
81
+ # print(*res)
82
+
83
+ ```
84
+
85
+
86
+
87
+ 今回の場合、 `pip3` を用いて `numpy` をインストールしておくと色々と楽です。