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

質問編集履歴

1

回答がいただけないため,より詳細に書き直しました

2019/07/29 02:31

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- numpyを用いらないで転置行列の内積を求める方法および行列の内積の内積の求め方の計算方法が分からな
1
+ numpyを使ないで転置行列の内積を求める方法および行列の内積の内積の求め方の計算方法につ
body CHANGED
@@ -1,9 +1,12 @@
1
- ### numpyを使用しないで共役勾配法の実装を試みていますが途中の式の計算がうまくでき
1
+ ### numpyを使用しないで共役勾配法の実装を試みていますが途中の式の計算がうまくできず困ってる.
2
2
 
3
- ここに質問の内容を詳しく書いてください。
3
+
4
4
  numpyを使用しないで共役勾配法の解を算出するプログラムを作っています.
5
- 途中の a = float( np.dot(r0.T,r0) / np.dot(np.dot(p.T, A),p) )という計算をnpを使わないで計算したい.
5
+ 途中の a = float( np.dot(r0.T,r0) / np.dot(np.dot(p.T, A),p) )という計算をnpを使わないで計算したいのですがうまく変えずに困っております
6
+ 自分なりに内包表記やzipを使用して試行錯誤はしたのですが,通りません.
7
+ アドバイスいただけたら幸いです.
6
8
 
9
+ また,みにくいソースかもしれませんがご容赦ください.
7
10
  ### 発生している問題・エラーメッセージ
8
11
 
9
12
  ```
@@ -92,11 +95,11 @@
92
95
 
93
96
 
94
97
  for i in range(k < k+1):
95
- d1 = dot(list(map(list,zip(*r0))),r0)
98
+ **d1 = dot(list(map(list,zip(*r0))),r0)
96
99
  print(d1)
97
100
  d2 = dot(dot(list(map(list,zip(*p))),A),p)
98
101
  print(d2)
99
- a = [e3 / e4 for e3,e4 in zip(d1,d2)]
102
+ a = [e3 / e4 for e3,e4 in zip(d1,d2)]**
100
103
  #a = dot(r0.T,r0) / dot(dot(p.T, A),p)
101
104
  x = x + p*a
102
105
  r1 = r0 - dot(A*a, p)
@@ -115,15 +118,10 @@
115
118
 
116
119
  ### 試したこと
117
120
  a = float( np.dot(r0.T,r0) / np.dot(np.dot(p.T, A),p) )という計算はnumpyを使用しているため下記のようにzipとリスト内包表記を使用したものに変更してみたがエラーは解決できませんでした.
121
+ **でくくってあるところの下のコメントa = dot(r0.T,r0) / dot(dot(p.T, A),p)というよな計算を実装したいです.
118
122
  助言いただけたら幸いです.
119
123
 
120
- d1 = dot(list(map(list,zip(*r0))),r0)
121
- print(d1)
122
- d2 = dot(dot(list(map(list,zip(*p))),A),p)
123
- print(d2)
124
- a = [e3 / e4 for e3,e4 in zip(d1,d2)]
125
-
126
124
  ### 補足情報(FW/ツールのバージョンなど)
127
125
  Python version 3.5.6
128
126
  jupyter notebook 使用
129
- numpy sympyは使用しないで内積の計算を行いたいで
127
+ numpy sympyは使用しないで内積の計算を行いたいためnp.は使用きません