function funx(x)
y = x*x*x*math.sin(3.14*x)+math.cos(x)
return y
end
GOLDEN=0.618
x1y = 0.0
x2y = 0.0
ax = 0.0
bx = 0.0
m=1
am=-1
bm=1
bx = GOLDEN*(bm-am)
ax = (1-GOLDEN)*(bm-am)
x2 = am+bx
x1 = am+ax
x1y = funx(x1)
x2y = funx(x2)
n = 1
while n<51 do
if(x1y<x2y) then
bm = x2
am = am
x2 = x1
x1 = am+(1-GOLDEN)*(bm-am)
x2y = x1y
x1y = funx(x1)
else
am = x1
bm = bm
x1 = x2
x2 = am+GOLDEN*(bm-am)
x1y = x2y
x2y = funx(x2)
end
if(ax<0.4E-8) then
break
end
n=n+1
end
print("funmin",funx(x1),funx(x2))