擅长:python、mysql、java
<p>分配有多个问题:</p>
<pre><code>christoffels[i][j] = x[i] * x[j]
</code></pre>
<p>右边是<code>symbols</code>,左边是NumPy floats数组单元格</p>
<p>因此Python很难将<code>symbols</code>转换为浮点</p>
<pre><code>TypeError: can't convert expression to float
</code></pre>
<p>让我们通过将矩阵定义为<a href="https://docs.sympy.org/latest/modules/matrices/matrices.html" rel="nofollow noreferrer">^{<cd3>} matrix</a>来修复它:</p>
<pre><code>from sympy import *
import numpy as np
coor = symbols('x y')
x = [coor[0] ** 2, coor[1]]
# Create sympy array
christoffels = zeros(2,2)
for i in range(2):
for j in range(2):
# Now assignment works
# NOTE: In sympy location denoted as [i, j] and not [i][j]
christoffels[i, j] = x[i] * x[j]
# Matrix([[x**4, x**2*y], [x**2*y, y**2]])
print(christoffels)
</code></pre>