całkowanie numeryczne
matroz: Witam! Piszę sobie program w VBA do całkowania numerycznego metodą trapezów. Potrafię bez
problemu obliczyć pola każdego z trapezów, lecz nie potrafię tego wewnętrznie zsumować.
Przytaczam kod, który jest wadliwy (końcówka):
Function F(x)
F = x * x
End Function
Sub całka()
Dim x As Single 'liczba podziałów
Dim h As Single 'wysokość trapezu
Dim a As Single 'dolna granica całkowania
Dim b As Single 'górna granica całkowania
Dim pole As Single 'wynik
x = InputBox("liczba podziałów")
a = InputBox("dolna granica całkowania")
b = InputBox("górna granica całkowania")
h = (b − a) / x
ReDim pola(0 To x − 1) As Single
For i = 0 To x − 1
pola(i) = h * (0.5 * F(a + i * h) + 0.5 * F(a + (i + 1) * h))
Next i
pole = 0
For i = 0 To x − 1
pole = 0 + pola(i)
Next i
Cells(1, 1) = pole
End Sub
Ma ktoś pomysł jak to ogarnąć? Ewentualnie abstrachując od tego, może powiecie mi jak zrobić
program który zsumuje n kolejnych liczb naturalnych? wtedy sobie już poradzę. Pozdrawiam!
17 sie 15:07
Kacper: Ja niestety znam tylko C++

poszukaj w internecie jest tego pełno
17 sie 15:30
MQ: Może podaj co ci nie działa?
Poza tym nie wiem, czy x może być indeksem tablicy, skoro jest typu single.
17 sie 16:29
matroz: w internecie oczywiście szukałem i nie znalazłem
nie działa fragment:
"pole = 0
For i = 0 To x − 1
pole = 0 + pola(i)
Next i
Cells(1, 1) = pole"
x może być indeksem tablicy bo to jest tablica dynamiczna (Redim)
17 sie 17:58
MQ: Aaa! Teraz widzę.
Powinno być:
pole=pole+pola(i)
zamiast
pole=0+pola(i)
18 sie 13:12
matroz: zdążyłem ogarnąć, ale wielkie dzięki za pomoc!
18 sie 15:52