# your code goes here
def lagrange(x0, xlist,ylist):
wynik =float(0)
if (len(xlist)!=len(ylist)):
raise BufferError("Rozmiary list wartosci x i y musza byc takie same!")
for i in range(len(xlist)):
licznik=float(1)
mianownik = float(1)
for j in range(len(xlist)):
if (i!=j):
licznik=licznik*(x0-xlist[j])
mianownik=mianownik*(xlist[i]-xlist[j])
wynik=wynik+((licznik/mianownik)*ylist[i])
return wynik
x=[2.0,4.0,5.0,6.0 ]
y=[0.57672, -0.06604, -0.32757, -0.27668]
print ("Lagrange polynomial for point 5.5 is %d" % lagrange(5.5, x, y))
为什么我运行它之后会得到答案0?当重写到c#并使用相同的数据运行时,它会输出答案-0.3539。在我看来,像铸造/舍入错误,但我很难找到它没有调试器。你知道吗
我对python完全陌生,我在windows上使用基本的IdleX来编写代码。你知道吗
问题不在于你的功能,而在于印刷。你知道吗
格式化程序
%d
是一个有符号整数十进制。因此,如果结果是-0.354
,它将四舍五入到0
。你知道吗相反,使用
%f
打印:相关问题 更多 >
编程相关推荐