Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,73 @@
|
|||
// Rosetta Code problem: https://rosettacode.org/wiki/Numerical_integration
|
||||
// by Jjuanhdez, 06/2022
|
||||
|
||||
print "function range steps leftrect midrect rightrect trap simpson "
|
||||
frmt$ = "%1.10f"
|
||||
print "f(x) = x^3 0 - 1 100 ";
|
||||
Integrate(0.0, 1.0, 1, 100)
|
||||
print "f(x) = 1/x 1 - 100 1000 ";
|
||||
Integrate(1.0, 100.0, 2, 1000)
|
||||
frmt$ = "%8.3f"
|
||||
print "f(x) = x 0 - 5000 5000000 ";
|
||||
Integrate(0.0, 5000.0, 3, 5000000)
|
||||
print "f(x) = x 0 - 6000 6000000 ";
|
||||
Integrate(0.0, 6000.0, 3, 6000000)
|
||||
end
|
||||
|
||||
sub Func(FN, X) //Return F(X) for function number FN
|
||||
switch FN
|
||||
case 1
|
||||
return X ^ 3
|
||||
case 2
|
||||
return 1.0 / X
|
||||
case 3
|
||||
return X
|
||||
default
|
||||
return 0.0
|
||||
end switch
|
||||
end sub
|
||||
|
||||
sub Integrate(A, B, FN, N) //Display area under curve for function FN
|
||||
// A, B, FN limits A, B, and number of slices N
|
||||
|
||||
DX = (B-A)/N
|
||||
X = A
|
||||
Area = 0.0 //rectangular left
|
||||
for i = 1 to N
|
||||
Area = Area + Func(FN,X)*DX
|
||||
X = X + DX
|
||||
next i
|
||||
print str$(Area, frmt$);
|
||||
X = A
|
||||
Area = 0.0 //rectangular right
|
||||
for i = 1 to N
|
||||
X = X + DX
|
||||
Area = Area + Func(FN,X)*DX
|
||||
next i
|
||||
print " ";
|
||||
print str$(Area, frmt$);
|
||||
X = A + DX / 2.0
|
||||
Area = 0.0 //rectangular mid point
|
||||
for i = 1 to N
|
||||
Area = Area + Func(FN,X)*DX
|
||||
X = X + DX
|
||||
next i
|
||||
print " ";
|
||||
print str$(Area, frmt$);
|
||||
X = A
|
||||
Area = 0.0 //trapezium
|
||||
for i = 1 to N
|
||||
Area = Area + (Func(FN,X)+Func(FN,X + DX))/2.0*DX
|
||||
X = X + DX
|
||||
next i
|
||||
print " ";
|
||||
print str$(Area, frmt$);
|
||||
X = A
|
||||
Area = 0.0 //Simpson's rule
|
||||
for i = 1 to N
|
||||
Area = Area + DX/6.0*(Func(FN,X) + 4.0*Func(FN,(X+X + DX)/2.0) + Func(FN,X + DX))
|
||||
X = X + DX
|
||||
next i
|
||||
print " ";
|
||||
print str$(Area, frmt$)
|
||||
end sub
|
||||
Loading…
Add table
Add a link
Reference in a new issue