擅长:python、mysql、java
<p>看来你可以把它转化成一个(非线性)最小二乘问题。通过这种方式,您必须为每个<code>n</code>变量定义间隔和每个变量的采样点数量,以便构建系数矩阵。在</p>
<p>在本例中,我对所有变量使用相同的点数和相同的间隔:</p>
<pre><code>from scipy.optimize import leastsq
from numpy import exp, linspace, zeros, ones
n = 4
npts = 1000
xs = [linspace(0, 1, npts) for _ in range(n)]
c = ones(n**2)
a = zeros((n*npts, n**2))
def residual(c):
a.fill(0)
for i in range(n):
for j in range(n):
for k in range(npts):
a[i+k*n, i*n+j] = 1/(exp(xs[i][k] - xs[j][k]) + 1)
a[i+k*n, j*n+i] = 1/(exp(xs[j][k] - xs[i][k]) + 1)
return a.dot(c)
popt, pconv = leastsq(residual, x0=c)
print(popt.reshape(n, n))
#[[ -1.24886411 1.07854552 -2.67212118 1.86334625]
# [ -7.43330057 2.0935734 37.85989442 1.37005925]
# [ -3.51761322 -37.49627917 24.90538136 -4.23103535]
# [ 11.93000731 2.52750715 -14.84822686 1.38834225]]
</code></pre>
<hr/>
<p>编辑:关于上面构建的系数矩阵的更多详细信息:</p>
<p><img src="https://i.stack.imgur.com/7H44Y.png" alt="enter image description here"/></p>