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

質問編集履歴

2

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

2020/09/16 14:08

投稿

S.K12
S.K12

スコア16

title CHANGED
File without changes
body CHANGED
@@ -5,12 +5,13 @@
5
5
 
6
6
  ### 発生している問題・エラーメッセージ
7
7
  ```
8
+ ---------------------------------------------------------------------------
8
9
  ValueError Traceback (most recent call last)
9
- <ipython-input-15-61455b019f50> in <module>
10
+ <ipython-input-10-60a3432b3cf4> in <module>
10
- 79 Y.append(np.dot(np.dot(np.dot(x.T,C.T),C),x))
11
+ 80 Z = Z+100
11
- 80
12
+ 81
12
- ---> 81 plt.plot(X, Y)
13
+ ---> 82 plt.plot(X, Y)
13
- 82 plt.show()
14
+ 83 plt.show()
14
15
 
15
16
  ~\anaconda3\lib\site-packages\matplotlib\pyplot.py in plot(scalex, scaley, data, *args, **kwargs)
16
17
  2759 @docstring.copy(Axes.plot)
@@ -40,7 +41,7 @@
40
41
  346 f"shapes {x.shape} and {y.shape}")
41
42
  347 if x.ndim == 1:
42
43
 
43
- ValueError: x and y can be no greater than 2-D, but have shapes (1, 1, 2) and (1, 1, 1)
44
+ ValueError: x and y can be no greater than 2-D, but have shapes (1000, 1, 1) and (1000, 1, 1)
44
45
  ```
45
46
 
46
47
  ### 該当のソースコード
@@ -116,16 +117,17 @@
116
117
  [19.85761403,0.278703355,0.00293372,0],
117
118
  [22.00289643,0.293371952,0.00293372,0]])
118
119
 
119
-
120
120
  X = []
121
121
  Y = []
122
122
  Z = 10
123
+ while Z <= 100000 :
123
- G = np.dot(A.T,A)+Z*np.dot(C.T,C)
124
+ G = np.dot(A.T,A)+Z*np.dot(C.T,C)
124
- H = np.dot(A.T,y)
125
+ H = np.dot(A.T,y)
125
- x = np.dot(np.linalg.inv(G),H)
126
+ x = np.dot(np.linalg.inv(G),H)
126
- 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))
127
+ 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))
127
- Y.append(np.dot(np.dot(np.dot(x.T,C.T),C),x))
128
+ Y.append(np.dot(np.dot(np.dot(x.T,C.T),C),x))
128
-
129
+ Z = Z+100
130
+
129
131
  plt.plot(X, Y)
130
132
  plt.show()
131
133
  ```

1

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

2020/09/16 14:08

投稿

S.K12
S.K12

スコア16

title CHANGED
File without changes
body CHANGED
@@ -5,15 +5,42 @@
5
5
 
6
6
  ### 発生している問題・エラーメッセージ
7
7
  ```
8
- TypeError Traceback (most recent call last)
8
+ ValueError Traceback (most recent call last)
9
- <ipython-input-12-4d7d407d102d> in <module>
9
+ <ipython-input-15-61455b019f50> in <module>
10
- 77 x = np.dot(np.linalg.inv(G),H)
11
- 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))
12
- ---> 79 Y.append(np.dot(np.dot(x.T,C.T),C),x)
10
+ 79 Y.append(np.dot(np.dot(np.dot(x.T,C.T),C),x))
13
11
  80
14
- 81 plt.plot(X, Y)
12
+ ---> 81 plt.plot(X, Y)
13
+ 82 plt.show()
15
14
 
15
+ ~\anaconda3\lib\site-packages\matplotlib\pyplot.py in plot(scalex, scaley, data, *args, **kwargs)
16
+ 2759 @docstring.copy(Axes.plot)
16
- TypeError: append() takes exactly one argument (2 given)
17
+ 2760 def plot(*args, scalex=True, scaley=True, data=None, **kwargs):
18
+ -> 2761 return gca().plot(
19
+ 2762 *args, scalex=scalex, scaley=scaley, **({"data": data} if data
20
+ 2763 is not None else {}), **kwargs)
21
+
22
+ ~\anaconda3\lib\site-packages\matplotlib\axes\_axes.py in plot(self, scalex, scaley, data, *args, **kwargs)
23
+ 1645 """
24
+ 1646 kwargs = cbook.normalize_kwargs(kwargs, mlines.Line2D)
25
+ -> 1647 lines = [*self._get_lines(*args, data=data, **kwargs)]
26
+ 1648 for line in lines:
27
+ 1649 self.add_line(line)
28
+
29
+ ~\anaconda3\lib\site-packages\matplotlib\axes\_base.py in __call__(self, *args, **kwargs)
30
+ 214 this += args[0],
31
+ 215 args = args[1:]
32
+ --> 216 yield from self._plot_args(this, kwargs)
33
+ 217
34
+ 218 def get_next_color(self):
35
+
36
+ ~\anaconda3\lib\site-packages\matplotlib\axes\_base.py in _plot_args(self, tup, kwargs)
37
+ 343 f"have shapes {x.shape} and {y.shape}")
38
+ 344 if x.ndim > 2 or y.ndim > 2:
39
+ --> 345 raise ValueError(f"x and y can be no greater than 2-D, but have "
40
+ 346 f"shapes {x.shape} and {y.shape}")
41
+ 347 if x.ndim == 1:
42
+
43
+ ValueError: x and y can be no greater than 2-D, but have shapes (1, 1, 2) and (1, 1, 1)
17
44
  ```
18
45
 
19
46
  ### 該当のソースコード
@@ -95,22 +122,18 @@
95
122
  Z = 10
96
123
  G = np.dot(A.T,A)+Z*np.dot(C.T,C)
97
124
  H = np.dot(A.T,y)
98
- x = np.dot(np.linalg.inv(G),H)
125
+ x = np.dot(np.linalg.inv(G),H)
99
126
  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))
100
- Y.append(np.dot(np.dot(x.T,C.T),C),x)
127
+ Y.append(np.dot(np.dot(np.dot(x.T,C.T),C),x))
101
128
 
102
129
  plt.plot(X, Y)
103
130
  plt.show()
104
131
  ```
105
132
 
106
133
  ### 試したことなど
107
- plt.plot(X, Y)
108
- plt.show()
109
- を外して、
110
- print(X)
111
- を入れてみたところ
112
- 配列の中が計算された値になっておらず
113
- 式の場合、append()では上手く配列データを格納できい事は把握出来たのですが、
134
+ matlabで同様計算をした場合問題くプロット出来たのですが、
135
+ pythonで同じ計算を行うとこのようになってしまいまい、
114
- その対処法がわからず困っています。
136
+ どこ間違っているのかわからず困っています。
137
+
115
138
  ### 補足情報(FW/ツールのバージョンなど)
116
139
  使用環境:windows64bit, Anaconda