Julia函数结果会在每次输入shift时更改

Julia函数结果会在每次输入shift时更改,julia,integration,Julia,Integration,我试图在Julia中创建一个梯形函数数值方法。我已经编写了代码,但我需要按shift enter键两次才能得到所需的结果 f(x)=(x+(2/x)^2 a=1 b=0 s=0.5*(f(a)+f(b)) n = 1 h=(b-a)/n for i = 1 : n-1 s = s + f(a+(i*h)) end I = h*s 谢谢您的帮助。此代码无效。另外,您应该将逻辑封装在函数中,否则它将无法正常工作(除非您在Jupyter笔记本中,我猜您正在使用它)。问题是变量s在全局范围内,如

我试图在Julia中创建一个梯形函数数值方法。我已经编写了代码,但我需要按shift enter键两次才能得到所需的结果

f(x)=(x+(2/x)^2

a=1
b=0
s=0.5*(f(a)+f(b))
n = 1
h=(b-a)/n

for i = 1 : n-1
s = s + f(a+(i*h))
end

I = h*s

谢谢您的帮助。

此代码无效。另外,您应该将逻辑封装在函数中,否则它将无法正常工作(除非您在Jupyter笔记本中,我猜您正在使用它)。问题是变量
s
在全局范围内,如果您从REPL或作为脚本运行代码,它在循环内将不可见

以下是正确的代码:

function I(f, a, b, n)
    s=0.5*(f(a)+f(b))
    h=(b-a)/n
    for i = 1 : n-1
        s = s + f(a+(i*h))
    end
    h*s
end
以及如何使用它:

julia> f(x)=x^4
f (generic function with 1 method)

julia> a=0
0

julia> b=1
1

julia> n=100
100

julia> I(f, a, b, n)
0.20003333300000006