Citat:
p.s. ajd može i u drugim programskim jezicima rješenje ili bar naznake rješenja!
Bravo decko, vidim poznajes mnoge programske jezike, jedino ti je malo matematika problem, ali da se to resiti. Evo ti funkcije za resavanje integrala trapezoidnom metodom. Stvarnu funkciju prosledi kao parametar i vozi sve sljaka!
Code:
--calc_func : declared in main module as function
--rv : round to value actualy may be nill too
function Trapezoid_Method(calc_func,rv)
print("\nTrapezoid method");
print("I=h/2*[f(a)+f(b)+2*[f(x1)+...f(xn-1)]]");
local prevI=0;
local curentI=0;
local n=startn;
local hofset=0;
local iteration=0;
local doneornot=0;
while doneornot~=1 do
iteration=iteration+1;
curentI=0;
hofset=(endval-startval)/n;--calculate the h
local i=startval+hofset;
--begin sumarize the midle placed values
while i<endval do
curentI=curentI+calc_func(i);
i=i+hofset;
end --of for
--do it by formula
curentI=roundval(hofset/2*(curentI*2+calc_func(startval)+calc_func(endval)),rv);
print("Curent iteration: "..iteration," I: "..curentI);
--we not checking first iteration because we havn't previous
if iteration~=1 then
if err>abs(curentI-prevI) then --actualy it is called epsilon
doneornot=1;
end
end
prevI=curentI;
if doneornot==0 then
n=n*2;--make it bigger by two
end
end --of while
return curentI,iteration,n,hofset;
end
;) izvini paskal kompajler mi trenutno nije instaliran....
idb
P.S. koliko imas otvorenih naloga na ES?