Я довольно новичок в математике в python, используя NumPy, и я не могу запустить этот код, я пытался найти решение для моей конкретной проблемы c, но не могу ничего найти это может помочь мне.
Код:
list_Of_XY_Points = {}
def Xmean():
x = 0
for i in list_Of_XY_Points.keys():
x = x + i
return x/len(list_Of_XY_Points)
def Ymean():
y = 0
for i in list_Of_XY_Points.keys():
y = y + list_Of_XY_Points[i]
return y / len(list_Of_XY_Points)
def XYmean():
xy = 0
for i in list_Of_XY_Points.keys():
xy = xy + (i * list_Of_XY_Points[i])
return xy / len(list_Of_XY_Points)
def XSQRmean():
xSQR = 0
for i in list_Of_XY_Points.keys():
xSQR = xSQR + (i**2)
return xSQR / len(list_Of_XY_Points)
def M():
return (Xmean()*Ymean()-XYmean())/(Xmean()**2-XSQRmean())
list_Of_XY_Points[1] = 2
list_Of_XY_Points[2] = 1
list_Of_XY_Points[4] = 3
import numpy as np
from scipy.optimize import fsolve
def func(z):
x = z[0]
y = z[1]
m = z[2]
f = Xmean()*Ymean()-XYmean()/Xmean()**2-XSQRmean()
return f
Я получаю ошибку:
in func
y = z[1]
IndexError: index 1 is out of bounds for axis 0 with size 1
Xmean()
Ymean()
XYmean()
XSQRmean()
- это определения, которые все возвращают значение с плавающей запятой.
Код, который вызывает удовольствие c
zGuess = np.array([1])
z = fsolve(func,zGuess)
print(z)
! ОБНОВЛЕНИЕ !: для будущих посетителей мое решение было решено следующим образом: я заменил:
def func(z):
x = z[0]
y = z[1]
m = z[2]
f = Xmean()*Ymean()-XYmean()/Xmean()**2-XSQRmean()
return f
zGuess = np.array([1])
z = fsolve(func,zGuess)
print(z)
на:
from sympy import *
from fractions import Fraction
x = Fraction(str(simplify(Xmean()*Ymean()-XYmean())/(Xmean()**2-XSQRmean()))).limit_denominator(1000)
print(x)