June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
41
Task/Numerical-integration/Stata/numerical-integration.stata
Normal file
41
Task/Numerical-integration/Stata/numerical-integration.stata
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
mata
|
||||
function integrate(f,a,b,n,u,v) {
|
||||
s = 0
|
||||
h = (b-a)/n
|
||||
m = length(u)
|
||||
for (i=0; i<n; i++) {
|
||||
x = a+i*h
|
||||
for (j=1; j<=m; j++) s = s+v[j]*(*f)(x+h*u[j])
|
||||
}
|
||||
return(s*h)
|
||||
}
|
||||
|
||||
function log_(x) {
|
||||
return(log(x))
|
||||
}
|
||||
|
||||
function id(x) {
|
||||
return(x)
|
||||
}
|
||||
|
||||
function cube(x) {
|
||||
return(x*x*x)
|
||||
}
|
||||
|
||||
function inv(x) {
|
||||
return(1/x)
|
||||
}
|
||||
|
||||
function test(f,a,b,n) {
|
||||
return(integrate(f,a,b,n,(0,1),(1,0)),
|
||||
integrate(f,a,b,n,(0,1),(0,1)),
|
||||
integrate(f,a,b,n,(0.5),(1)),
|
||||
integrate(f,a,b,n,(0,1),(0.5,0.5)),
|
||||
integrate(f,a,b,n,(0,1/2,1),(1/6,4/6,1/6)))
|
||||
}
|
||||
|
||||
test(&cube(),0,1,100)
|
||||
test(&inv(),1,100,1000)
|
||||
test(&id(),0,5000,5000000)
|
||||
test(&id(),0,6000,6000000)
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue