Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > интеграл


Автор: dellfa 18.3.2010, 02:20
b)программу вычисления суммы всех членов ряда, абсолютная велина которых больше заданной величены  (буква э перевернутая). Для первой программы выполнить трассировку n=3.
При составлении  программ следует реализовать наиболее эффективный алгоритм вычисления очередного члена ряда, используя, например рекуррентные формулы, раздельнные вычисления числителя и знаменателя.
Сам пример вот: k/sqr(k)+2*k+1.


3. Задана функция. Требуется найти определенный интеграл от каждой функции в предлах [a,b].Для решения задачи использовать численный метод вычисления интеграла-метод прямоугольников.Пределы [a,b] и количество интервалов должны вводиться в начале программы. 
 Сам пример x в 3-й степени * на е в степени 2х


{ Вычисляет приближенное значение }
{ интеграла функции F методом прямоугольников }
{ /b }
{ | f(x) dx;интервал разбивается на n частей }
{ /a }

var
n,i,e : integer;
a,b,shag,sum,itog : real;

{======================================}
{Введите сюда нужную функцию}
function F(x:real):real;
begin
F:=x*x*exp(ln(e)*x*2);;
end;
{======================================}

BEGIN
write('Начало интегрирования a = '); readln(a);
write('Конец интегрирования b = '); readln(b);
write('Количество разбиений интервала n = '); readln(n);

shag:=(b-a)/n;
sum:=0;
for i:=1 to n-1 do
sum := sum + F(shag*i+a);
sum := sum + (F(a)+F(b))/2;

itog:=(b-a)/n * sum;
writeLn('Интеграл = ', itog:0:5)
END.


воть так ? тока ощибка выходит деление на ноль незя

Автор: Sanaff 18.3.2010, 23:33
На какой строчке ошибку выводит?
Распишите концовку так

itog:=shag * sum;
writeLn('Интеграл = ', itog);
END.

Автор: Курсант 19.3.2010, 00:55
Непонятно где инициализация локальной переменной e в функции F(x:real)...

В общем то натуральный логарифм от нуля или от отрицательного числа не определен насолько я понимаю... Возможно, если функция вычисления натурального логарифма реализована с делением, то на уровне процессора возможно прерывание по делению на ноль...

Все остальное вроде правильно, хотя n это не число разбиений, а число интервалов... Т.к. одно разбиение порождает два интервала, два разбиения порождают три интервала, и так далее... Но это все оформление, не суть важно...

Заодно не подскажете функция exp что делает? Забыл...

Автор: dellfa 19.3.2010, 07:59
Функция Exp берет целое или с плавающей точкой число и возводит в степень e



воть а со второй тже ни кто ненает?

Автор: mr.Anderson 19.3.2010, 14:57

M
mr.Anderson
Модератор: в начале названия темы, связанной с математическим анализом, приписывайте [Матан] (в вашем случае название должно было быть вида [Матан] Интеграл).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)