質問編集履歴

2

1回目の修正時にZを10~100000まで100ずつ増加させる旨のコードを削除してしまっていた為、修正しました。

2020/09/16 14:08

投稿

S.K12
S.K12

スコア16

test CHANGED
File without changes
test CHANGED
@@ -12,17 +12,19 @@
12
12
 
13
13
  ```
14
14
 
15
+ ---------------------------------------------------------------------------
16
+
15
17
  ValueError Traceback (most recent call last)
16
18
 
17
- <ipython-input-15-61455b019f50> in <module>
19
+ <ipython-input-10-60a3432b3cf4> in <module>
18
-
20
+
19
- 79 Y.append(np.dot(np.dot(np.dot(x.T,C.T),C),x))
21
+ 80 Z = Z+100
20
-
22
+
21
- 80
23
+ 81
22
-
24
+
23
- ---> 81 plt.plot(X, Y)
25
+ ---> 82 plt.plot(X, Y)
24
-
26
+
25
- 82 plt.show()
27
+ 83 plt.show()
26
28
 
27
29
 
28
30
 
@@ -82,7 +84,7 @@
82
84
 
83
85
 
84
86
 
85
- ValueError: x and y can be no greater than 2-D, but have shapes (1, 1, 2) and (1, 1, 1)
87
+ ValueError: x and y can be no greater than 2-D, but have shapes (1000, 1, 1) and (1000, 1, 1)
86
88
 
87
89
  ```
88
90
 
@@ -234,25 +236,27 @@
234
236
 
235
237
 
236
238
 
237
-
238
-
239
239
  X = []
240
240
 
241
241
  Y = []
242
242
 
243
243
  Z = 10
244
244
 
245
+ while Z <= 100000 :
246
+
245
- G = np.dot(A.T,A)+Z*np.dot(C.T,C)
247
+ G = np.dot(A.T,A)+Z*np.dot(C.T,C)
246
-
248
+
247
- H = np.dot(A.T,y)
249
+ H = np.dot(A.T,y)
248
-
250
+
249
- x = np.dot(np.linalg.inv(G),H)
251
+ x = np.dot(np.linalg.inv(G),H)
250
-
252
+
251
- X.append((y.T,y)-np.dot(np.dot(np.dot(2,x.T),A.T),y)+np.dot(np.dot(np.dot(x.T,A.T),A),x))
253
+ X.append(np.dot(y.T,y)-np.dot(np.dot(np.dot(2,x.T),A.T),y)+np.dot(np.dot(np.dot(x.T,A.T),A),x))
252
-
254
+
253
- Y.append(np.dot(np.dot(np.dot(x.T,C.T),C),x))
255
+ Y.append(np.dot(np.dot(np.dot(x.T,C.T),C),x))
256
+
254
-
257
+ Z = Z+100
255
-
258
+
259
+
256
260
 
257
261
  plt.plot(X, Y)
258
262
 

1

文法にミスがあり、そちらを修正したところエラーメッセージも変わったので修正しました。

2020/09/16 14:08

投稿

S.K12
S.K12

スコア16

test CHANGED
File without changes
test CHANGED
@@ -12,23 +12,77 @@
12
12
 
13
13
  ```
14
14
 
15
- TypeError Traceback (most recent call last)
15
+ ValueError Traceback (most recent call last)
16
-
16
+
17
- <ipython-input-12-4d7d407d102d> in <module>
17
+ <ipython-input-15-61455b019f50> in <module>
18
-
19
- 77 x = np.dot(np.linalg.inv(G),H)
18
+
20
-
21
- 78 X.append((y.T,y)-np.dot(np.dot(np.dot(2,x.T),A.T),y)+np.dot(np.dot(np.dot(x.T,A.T),A),x))
22
-
23
- ---> 79 Y.append(np.dot(np.dot(x.T,C.T),C),x)
19
+ 79 Y.append(np.dot(np.dot(np.dot(x.T,C.T),C),x))
24
20
 
25
21
  80
26
22
 
27
- 81 plt.plot(X, Y)
23
+ ---> 81 plt.plot(X, Y)
24
+
28
-
25
+ 82 plt.show()
26
+
27
+
28
+
29
-
29
+ ~\anaconda3\lib\site-packages\matplotlib\pyplot.py in plot(scalex, scaley, data, *args, **kwargs)
30
+
30
-
31
+ 2759 @docstring.copy(Axes.plot)
32
+
31
- TypeError: append() takes exactly one argument (2 given)
33
+ 2760 def plot(*args, scalex=True, scaley=True, data=None, **kwargs):
34
+
35
+ -> 2761 return gca().plot(
36
+
37
+ 2762 *args, scalex=scalex, scaley=scaley, **({"data": data} if data
38
+
39
+ 2763 is not None else {}), **kwargs)
40
+
41
+
42
+
43
+ ~\anaconda3\lib\site-packages\matplotlib\axes\_axes.py in plot(self, scalex, scaley, data, *args, **kwargs)
44
+
45
+ 1645 """
46
+
47
+ 1646 kwargs = cbook.normalize_kwargs(kwargs, mlines.Line2D)
48
+
49
+ -> 1647 lines = [*self._get_lines(*args, data=data, **kwargs)]
50
+
51
+ 1648 for line in lines:
52
+
53
+ 1649 self.add_line(line)
54
+
55
+
56
+
57
+ ~\anaconda3\lib\site-packages\matplotlib\axes\_base.py in __call__(self, *args, **kwargs)
58
+
59
+ 214 this += args[0],
60
+
61
+ 215 args = args[1:]
62
+
63
+ --> 216 yield from self._plot_args(this, kwargs)
64
+
65
+ 217
66
+
67
+ 218 def get_next_color(self):
68
+
69
+
70
+
71
+ ~\anaconda3\lib\site-packages\matplotlib\axes\_base.py in _plot_args(self, tup, kwargs)
72
+
73
+ 343 f"have shapes {x.shape} and {y.shape}")
74
+
75
+ 344 if x.ndim > 2 or y.ndim > 2:
76
+
77
+ --> 345 raise ValueError(f"x and y can be no greater than 2-D, but have "
78
+
79
+ 346 f"shapes {x.shape} and {y.shape}")
80
+
81
+ 347 if x.ndim == 1:
82
+
83
+
84
+
85
+ ValueError: x and y can be no greater than 2-D, but have shapes (1, 1, 2) and (1, 1, 1)
32
86
 
33
87
  ```
34
88
 
@@ -192,11 +246,11 @@
192
246
 
193
247
  H = np.dot(A.T,y)
194
248
 
195
- x = np.dot(np.linalg.inv(G),H)
249
+ x = np.dot(np.linalg.inv(G),H)
196
250
 
197
251
  X.append((y.T,y)-np.dot(np.dot(np.dot(2,x.T),A.T),y)+np.dot(np.dot(np.dot(x.T,A.T),A),x))
198
252
 
199
- Y.append(np.dot(np.dot(x.T,C.T),C),x)
253
+ Y.append(np.dot(np.dot(np.dot(x.T,C.T),C),x))
200
254
 
201
255
 
202
256
 
@@ -210,21 +264,13 @@
210
264
 
211
265
  ### 試したことなど
212
266
 
213
- plt.plot(X, Y)
214
-
215
- plt.show()
216
-
217
- を外して、
218
-
219
- print(X)
220
-
221
- を入れてみたところ
222
-
223
- 配列の中が計算された値になっておらず
224
-
225
- 式の場合、append()では上手配列データを格納できない事は把握出来たのですが、
267
+ matlabで同様計算をした場合問題なプロット出来たのですが、
268
+
226
-
269
+ pythonで同じ計算を行うとこのようになってしまいまい、
270
+
227
- 対処法がわからず困っています。
271
+ どこが間違っているわからず困っています。
272
+
273
+
228
274
 
229
275
  ### 補足情報(FW/ツールのバージョンなど)
230
276