![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Нужна программа для вычисления интеграла методом средних прямоугольников и трапеций
|
#2
|
|||
|
|||
![]() Батенька, вам в раздел "Работа".
Вообще-то, такие программы делаются за 1 час на коленке, если функия задана в задании. Если для любой функции, то тоже можно сделать, но это чуть сложнее. Тебе надо разбить отрезок интегрирования на N частей (т.е. получить неуоторый шаг d). Далее циклом от 1 до N складывает площади фигур, построенных на основании d и значения функции в соотв, точках: - ср. прямоугольник: S = d*F(X0 + d*(I+0.5)); - трапеций: S = d*(F(X0 + I*d) + F(X0 + (I+1)*d))/2; F(X) - подитегральная функция X0 - начало отрезка интегрирования d - "ширина" шага I - номер шага (счетчик цикла). |
#3
|
|||
|
|||
![]() вот моя функция ln(x+sqrt(sqr(x)+8)), а как разбить ортезок на н частей?
|
#4
|
|||
|
|||
![]() Код:
const a=1; const b=0; const n=20; var Form1: TForm1; s,d: real; i: integer; implementation {$R *.dfm} function f(x:real):real; begin f:=ln(x+sqrt(sqr(x)+8)); end; procedure TForm1.Button1Click(Sender: TObject); begin d:=(b-a)/n; for i:=0 to n do s:=d*f(0+d*(i+0.5)); label1.Caption:=floattostrf(s,fffixed,9,8); end; procedure TForm1.Button2Click(Sender: TObject); begin d:=(b-a)/n; for i:=0 to n do S:=d*(F(0 + I*d) + F(0 + (I+1)*d))/2; label1.Caption:=floattostrf(s,fffixed,9,8); end; end. вот что я сделал , все работает, ответ -0.03424 Последний раз редактировалось Admin, 18.04.2010 в 13:12. |
#5
|
|||
|
|||
![]() подскажите как график построить пожалуйста
|
#6
|
|||
|
|||
![]() при разных значениях n получаются разные значения интеграла, чем n больше тем значение меншье, как это исправить?
|