高斯牛顿算法和矩阵乘积

时间:2016-04-13 15:55:05

标签: python newtons-method

我试图在python上制作一个高斯牛顿算法,我有一个我不明白的错误:

In [226]: df_test = pd.DataFrame(np.random.randn(5,5), columns=list('ABCDE'))

In [227]: df_test
Out[227]: 
      A         B         C         D         E
0  0.609775  0.205708 -0.015081  2.096414  0.121245
1  1.223234 -1.299398  1.238649  0.216846 -0.789828
2  0.446873  1.734404 -0.675568 -1.203400  0.053905
3  0.286693 -0.080294 -0.115739 -0.195039  0.400201
4  0.519230  1.939370 -0.424466  0.102137 -0.724420

In [228]: df_test.iloc[0,1] = False

In [229]: df_test.iloc[1,1] = '0'

In [230]: df_test.iloc[2,1] = 0

In [231]: df_test.iloc[3,1] = '2'

In [232]: df_test.B == False
Out[232]: 
0     True
1    False
2     True
3    False
4    False
Name: B, dtype: bool

不确定为什么我的matricial产品不起作用...... 任何帮助表示赞赏。这是我的代码:

np.dot(-Jr(x0,n,t).T,r(x0,t,a,n))
ValueError: shapes (2,7) and (1,7) not aligned: 7 (dim 1) != 1 (dim 0)`

谢谢

1 个答案:

答案 0 :(得分:0)

尝试使用

np.dot(-Jr(x0,n,t).T, r(x0,t,a,n).T)

这应解决尺寸问题,并产生形状为(2,1)的矩阵。