| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > интеграл |
| Автор: 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 | ||
|