关于集成:Julia函数结果会更改每个移位输入

Julia function result changes every shift-enter

我正在尝试在Julia中创建梯形函数数值方法。 我已经编写了代码,但是我需要两次按下shift键才能获得所需的结果。

1
2
3
4
5
6
7
8
9
10
11
12
13
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 Notebook中,我猜您正在使用)。 问题是变量s在全局范围内,如果您从REPL或作为脚本运行代码,则该变量在循环内部不可见。

这是正确的代码:

1
2
3
4
5
6
7
8
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

以及如何使用它:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
julia;gt; f(x)=x^4
f (generic function with 1 method)

julia;gt; a=0
0

julia;gt; b=1
1

julia;gt; n=100
100

julia;gt; I(f, a, b, n)
0.20003333300000006