我需要在i=1 to n
之后加(y_i-A-B*x_i)^2
。
A和B是固定常数。 y_i和x_i是两个列表的元素。
我用sum([m-A-B*n for m,n in zip(Tlog_dist,Tlog_Tb)])
尝试过,但我认为然后对所有可能的数字对进行求和,而不仅仅是与i的第一次。
我环顾四周,看到了一些带有for循环和枚举的东西,但因为我是新手并且之前从未使用过循环而卡住了。
答案 0 :(得分:1)
使用numpy
作为矢量化解决方案。
import numpy as np
A = 5
B = 7
y = np.array([1, 2, 3, 4, 5])
x = np.array([6, 7, 8, 9, 10])
# (y_i-A-B*x_i)^2
res = np.sum((y - A - B*x)**2)
可以使用基于列表的解决方案,但不建议这样做。
答案 1 :(得分:0)
def calsum(n,list1,list2,A,B):
returnvalue=0
if n <= len(list1):
for i in range(n):
sumvalue=list2[i]-A-B*list1[i]
power=sumvalue ** 2
returnvalue += power
else:
print "Sum is not posible with given n value"
return returnvalue
list1=[1,2,3,4,5]
list2=[6,7,8,9,10]
if len(list1) == len(list2):
print"Length matched"
# calsum(n,list1,list2,A,B)
result=calsum(5,list1,list2,1,1)
print result
else:
print"Not in same length"