Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.84] |
|
Сообщ.
#1
,
|
|
|
ВЫЧИСЛЕНИЕ ОПРЕДЕЛЕННЫХ ИНТЕГРАЛОВ
Пусть задан интеграл S. картинка Значение интеграла численно равно значению площади криволинейной траппеции, ограниченной кривой y=f(x) (непрерывная функция) и прямыми x=a и x=b. Решение картинка Разделим отрезок [a;b] на n равных частей с точками X0=a, X1, X2 ... Xn=b. Шаг интегрирования (приращение) dx = (b-a)/n. Вычислим значение функции в каждой точке деления Y0=F(X0), Y1=F(X1), .. Yn=F(Xn). Метод прямоугольников картинка Заменим каждую полоску криволинейной трапеции прямоугольником с высотой, равной значению функции на левом конце промежутка. (На рисунке красным цветом показаны дополнительные построения). Площадь криволинейной фигуры заменится площадью сумм прямоугольников и будет равна S = Y0*h+Y1*h+..+Yn-1*h = ((b-a)/n)*(Y0+Y1+...Yn-1). картинка Если же каждую полоску криволинейной трапеции заменим прямоугольником с высотой, равной значению функции на правом конце промежутка, то формула вычисления площади получит вид S = Y1*h+Y2*h+..+Yn*h = ((b-a)/n)*(Y1+Y2+...Yn). Метод трапеций картинка Если каждую полоску криволинейной трапеции заменить обычной трапецией, то площадь фигуры будет равна сумме площадей трапеций: S = h*((Y0+Yn)/2 +Y1+Y2+...+Yn) Метод Симпсона картинка Для вычисления этим методом необходимо, чтобы число частей было четным. Через каждые три точки (Xi;Yi), (Xi+1;Yi+1), (Xi+2;Yi+2) проведем пораболу и заменим соответствующий кусок криволинейной трапеции на параболическую трапецию. Получим формулу: S = ((b-a)/(3*n))*(Y0+Yn+4*(Y1+Y3+...Yn-1)+2*(Y2+Y4+..Yn)). uses crt; {Функция, площадь которой нужно вычислить} function f(x: real): real; begin f := x*x+3; end; var a,b,dx,x,y,y1,y2: real; n: integer; begin clrscr; {Вводим промежуток} write ('Введите a:'); readln (a); write ('Введите b:'); readln (b); {Вводим количество частей} write ('Введите n:'); readln (n); {Определяем шаг интегрирования} dx := (b-a)/n; {Вычисление по формуле левых прямоугольников} y := 0; x := a; {x = a = X0} while x < b do begin {x < Xn} y := y + f(x); x := x + dx; {x = X0, X1, X2 ... Xn-1} end; y := y * dx; writeln ('Площадь по формуле левых прямоугольников: ', y: 10: 3); {Вычисления по формуле правых многоугольников} y := 0; x := a + dx; {x = X1} while x <= b do begin {x <= Xn} y := y + f(x); x := x + dx; {x = X1, X2, X3 ... Xn} end; y := y * dx; writeln ('Площадь по формуле правых прямоугольников: ', y:10:3); {Вычисление по формуле трапеций} y := 0; x := a + dx; {x = X1} while x < b do begin {x < Xn} y := y + f(x); x := x + dx; {x = X1, X2, X3 ... Xn-1} end; y := (y + (f(a)+f(b))/2) * dx; writeln ('Площадь по формуле трапеций: ', y:10:3); {Вычисление по методу Симпсона} y1 := 0; x := a + dx; {x = X1} while x < b - dx do begin {x < Xn} y1 := y1 + f(x); x := x + 2*dx; {x = X1, X3, X5 ... Xn-1} end; y2 := 0; x := a + 2*dx; {x = X2} while x < b - 2*dx do begin {x < Xn-1} y2 := y2 + f(x); x := x + 2*dx; {x = X2, X4, X6 ... Xn-2} end; y := ((b-a)/(3*n)) * (f(a)+f(b) + 4*y1 + 2*y2); writeln ('Площадь по формуле Симпсона: ', y:10:3); readkey; end. Как картинку запостить? Эта тема была разделена из темы "Неотёсанные топики" |
Сообщ.
#2
,
|
|
|
Все очень неплохо, но нужно подробнее описать каждый метод.
|
Сообщ.
#3
,
|
|
|
Romtek, мож описание вырезать из статейки "ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ" и вместо этой выложить? Этот пост - он ведь очень урезанная версия статьи, правда код немного другой.
|
Сообщ.
#4
,
|
|
|
Цитата T[]X!N @ Нет, не вместо. Но дополнить оттуда можно. мож описание вырезать из статейки "ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ" и вместо этой выложить? |
Сообщ.
#5
,
|
|
|
{ Вычисление интеграла методом средних прямоугольников } var n : integer; s: real; function f(x:real):real; begin f:=1-0.25*sin(x)*sin(x); end; procedure rect (a,b:real; n:integer; var s:real); var i : integer; h,x: real; begin h:=(b-a)/n; x:=a+h/2; s:=0.0; for i:=1 to n do begin s:=s+f(x); x:=x+h; end; s:=s*h; end; begin rect (0,pi/2,40, s); write('Интеграл = ',s:16:4); end. { Ответ: } { Интеграл = 1.3744 } |
Сообщ.
#6
,
|
|
|
Картинки к статье нужны? Т.е. как графически выглядят методы с левосторонними/правосторонними прямоугольниками?
|
Сообщ.
#7
,
|
|
|
Конечно!
А у тебя есть ссылки на них, или они у тебя на компьютере? |
Сообщ.
#8
,
|
|
|
Вот пробная иллюстрация с прямоугольниками. Если надо - укажи какую функцию выбрать, в каком интервале должен находится x и на сколько частей разбивать - я сделаю еще графики.
Прикреплённый файлpack.rar (15.35 Кбайт, скачиваний: 520) |
Сообщ.
#9
,
|
|
|
mikv
Лучше middlebox и вычислять по точности eps. Главный упор не на теорию (лучше дать ссылки на теорию), а на реализацию вычисления. |
Сообщ.
#10
,
|
|
|
лучше всего прибегать к методу средних прямоугольников. У него порядок аппроксимации h2. В методах же левых и правых прямоугольников за счет нарушения симметрии наблюдается порядок аппроксимации h. Кроме того, метод трапеций имеет оценку погрешности порядка h2(b-a)*M2/12, в то же время, у метода прямоугольников оценка погрешности имеет вид: h2(b-a)*M2/24. То есть погрешность в методе трапеций у нас в два раза больше, чем в методе срединных прямоугольников (если у нас задана сетка с шагом h).
Наверное, стоило бы описать автоматический выбор шага интегрирования. |