import math
def fun1(x,y):
if x<=(-10):
z=-1
elif x<0:
z=x**2+y**0.5
elif x==0:
z=math.sin(x)+math.cos(y)
elif x<10:
z=2*x+3*y-1
else:
z=((x+y)**2-2*x*y)**0.5
return z
x,y = map(float, input().split(","))
print(":.2f").format(fun1(x,y))
if x<= 10:
return -1
elif -10<x<0:
return x**2+y**0.5
elif x == 0:
return math.sin(x)+cos(y)
elif 0<x<10:
return 2*x + 3 * y - 1
else:
return ((x+y)**2-2*x*y)*0.5
x,y
不知道你这个问题是否已经解决, 如果还没有解决的话: F(x,y) 的训练过程实际上十分简单,如下图所示
输入是训练数据,输出模型的权重,在这里首先将 w初始化为0,一直重复以下操作直到 w不能被更新。对于某一组数据 (xr,y^r),找到使 w⋅ϕ(xr,y)最大的 y˜r,如果得到的 y˜r≠y^r,就执行如上的更新。其实这个更新的原则也很好理解,就是让 w离正确的值越来越近。