質問編集履歴
2
1回目の修正時にZを10~100000まで100ずつ増加させる旨のコードを削除してしまっていた為、修正しました。
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-1
|
19
|
+
<ipython-input-10-60a3432b3cf4> in <module>
|
18
|
-
|
20
|
+
|
19
|
-
|
21
|
+
80 Z = Z+100
|
20
|
-
|
22
|
+
|
21
|
-
8
|
23
|
+
81
|
22
|
-
|
24
|
+
|
23
|
-
---> 8
|
25
|
+
---> 82 plt.plot(X, Y)
|
24
|
-
|
26
|
+
|
25
|
-
8
|
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,
|
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
文法にミスがあり、そちらを修正したところエラーメッセージも変わったので修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,23 +12,77 @@
|
|
12
12
|
|
13
13
|
```
|
14
14
|
|
15
|
-
|
15
|
+
ValueError Traceback (most recent call last)
|
16
|
-
|
16
|
+
|
17
|
-
<ipython-input-1
|
17
|
+
<ipython-input-15-61455b019f50> in <module>
|
18
|
-
|
19
|
-
|
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
|
-
|
19
|
+
79 Y.append(np.dot(np.dot(np.dot(x.T,C.T),C),x))
|
24
20
|
|
25
21
|
80
|
26
22
|
|
27
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
267
|
+
matlabで同様の計算をした場合問題なくプロット出来たのですが、
|
268
|
+
|
226
|
-
|
269
|
+
pythonで同じ計算を行うとこのようになってしまいまい、
|
270
|
+
|
227
|
-
|
271
|
+
どこが間違っているのかわからず困っています。
|
272
|
+
|
273
|
+
|
228
274
|
|
229
275
|
### 補足情報(FW/ツールのバージョンなど)
|
230
276
|
|