Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Вычисление интеграла

Автор: Гость 16.04.2007 3:32

нужно вычислить интеграл ф-ции (x/2+5)*cos(x/2) в интервале от а до b...
вот кусочек проги, есть вопрос,я записала его как комментарии в программе.

Procedure Integral(xn,xk:real; var S:real;f1:RealFunctionType);
const n=1000;
var x,dx:real;
begin
dx:=(xk-xn)/n;
x:=xn;
S:=0;
while x<xk do
begin
S:=S+(f1(x)+f1(x+dx))/2*dx; <=== {здесь должно быть может S:=S+(f1(x/2)+f1(x/2+dx))/2*dx;???}
x:=x+dx;
end;
end;

{$F+}
Function MyFunc(x:real):real;
begin
MyFunc:=(x/2+5)*cos(x/2)
end;
{$F-}



М
Выбирай правильные теги, пожалуйста. Lapp


Автор: Lapp 16.04.2007 9:47

Цитата(Гость @ 16.04.2007 0:32) *
должно быть может S:=S+(f1(x/2)+f1(x/2+dx))/2*dx;???}
Почему бы это? Деление на 2 у тебя уже вполне разумно включено в саму функцию:
Цитата(Гость @ 16.04.2007 0:32) *

MyFunc:=(x/2+5)*cos(x/2)
Зачем делить еще раз?..Или ты что-то другое имела в виду? может, то деление пополам, что стоит в вычислении среднего?..
Короче, ничего не надо такого, все нормально.

Автор: Гость 16.04.2007 20:40

Хорошо,теги буду выбирать правильно,извиняюсь!
Ну если так правильно,то хорошо,я просто подумала, что может там нужно делить на 2, так как в самой функции стоит x/2...