IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Вычисление определнных интегралов, Помогите плиз, не знаю метод =((
sintanial
сообщение 14.03.2008 20:49
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Мартын

Репутация: -  1  +


Численное интегрирование
Спасибо огромнейшее за то что выложили так много способов вычисления определенных интегралов, но всё же в универе задали вычислить интеграл методом правых прямоугольников, а здесь я нашел только центральных прямоугольников, и просто метод прямоугольников =). Я просто болел когда была эта лекция и поэтому не знаю чем отличается метод прямоугольников от метода правых прямоугольников и левых прямоугольников =), а интеграл завтра сдавать( поэтому лекцию взять не успею =(( ). Прошу помощи, за ранее огромное спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 14.03.2008 21:19
Сообщение #2


Гость






Поиск по словам +правых +прямоуг* выводит на эту тему:
Интегрирование методом ... прямоугольников ... Был тут?
 К началу страницы 
+ Ответить 
sintanial
сообщение 14.03.2008 21:30
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Мартын

Репутация: -  1  +


там где ты мне дал, используются дополнительно модули, а мне модули нельзя использовать =) !, так что увы но это не подходит. Самое хорошее где было написанно это метод центрального прямоугольника =)

З.ы. Я так понял что методы правого левого и центрального тличаются только в цикле for , тоесть
Центральный
For i:=1 to n-1 do
Левый
for i:=0 to n-1 do
Правый
for i:=1 to n do

Но я не знаю прав я или нет =) , поправте если ошибаюсь =)

Сообщение отредактировано: sintanial - 14.03.2008 21:39
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 14.03.2008 21:41
Сообщение #4


Гость






Выдрать функцию из модуля - никак нельзя? Не обязательно же все время делать только Copy/Paste, подумать тоже иногда полезно.
 К началу страницы 
+ Ответить 
Michael_Rybak
сообщение 14.03.2008 21:46
Сообщение #5


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


Цитата
Не обязательно же все время делать только Copy/Paste, подумать тоже иногда полезно.


Тем более, что в результате таки получится тот же Copy/Paste, только в профиль smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
sintanial
сообщение 14.03.2008 21:47
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Мартын

Репутация: -  1  +


вольво ну извени, просто я на лекции не был, и я даже не знаю о чем идет речь и как вычислять интеграл =), поэтому и плаваю в коде =)

Добавлено через 18 мин.
Эммм потехоньку начал разбираться =)

Сообщение отредактировано: sintanial - 14.03.2008 21:55
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
sintanial
сообщение 14.03.2008 22:44
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Мартын

Репутация: -  1  +


Фсё разобрался

ВОТ ТОЖЕ САМОЕ ТОЛЬКО БЕЗ МОДУЛЕЙ( правый прямоугольник ) . Вдруг кому понадобится так же как мне без модулей =)


function IntF(x:real):real;
var y:real;
begin
y:=sqrt(1+2*x);{ Вписываем функцию которую нужно вычислить !!!!}
intf:=y;
end;


var
//S - площадь на предыдущей итерации,
//step - Толщина прямоугольника
//gran - ïпередвигаемая от a до b граница
//n - число прямоугольников, удваивается на каждой итерации
S, step, gran,eps,a,b,z,x,l,f,result:real;
n: integer;
begin
read(a,b,eps);
z:=IntF(b);
//Сначало приближение одного прямоугольника
step := b - a;
Result :=z * step;
n := 1;
repeat
S := Result;
n := n * 2;
step := (b - a) / n;
Gran := b;
Result := 0;
//Вычисление площади новых прямоугольников
while a < gran do
begin
l:=IntF(gran);
Result := Result +l * step;
gran := gran - step;
end;
until abs(S - Result) <= eps;
f:=Result;
writeln(f);
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Джери
сообщение 15.01.2010 23:17
Сообщение #8


Гость






у мня метод левых прямоугольников и вот что я пробнул набрать
-------------
Program integ;
uses crt;
var
a,b,eps,k,sum,sum1:real;
n:integer;
function f(x:real):real;
begin
f:=x/cos(x);
if x=pi/2+pi*k then
writeln('wrong');
end;

function calc(n:real):real;
var
h,sqr,x:real;
begin
h:=abs(b-a)/n;
x:=a;
sqr:=0;
while x<b do
begin
x:=x+h;
sqr:=sqr+f(x);

end;
sqr:=abs(sqr*h);
calc:=sqr;
end;

begin
TextColor(2);
writeln('Zadanie f(x)=x/cos(x)');
write('Vvedite levuiu granitsu a='); {left_border}
readln(a);
write('Vvedite pravuiu granitsu b='); {right_border}
readln(b);
write('Vvedite tochnost eps='); {tochnost}
readln(eps);
sum:=0;

if {(a=pi/2+pi*k) or} (a=b) then
writeln('error')
else
begin
n:=1;
sum1:=calc(n);
repeat
sum:=sum1;
n:=n*2;
sum1:=calc(n);
until abs(sum-sum1)<=eps;

writeln(' Result= ' ,sum1);
writeln(' n= ',n);
end;

readln;
end.

---------
но оно как я понял:
1 работает ток в определенных значениях раз;
2 не учитываетса то что в значении х=pi/2+pi*k(real) функция y=x/cos(x) проскакивает ( например х=0 0/cos0=0)
Проблема в том что я не наю как исправить ни 1 ни 2 проблему wacko.gif

Сообщение отредактировано: Lapp - 16.01.2010 0:16
 К началу страницы 
+ Ответить 
Гость
сообщение 15.01.2010 23:18
Сообщение #9


Гость






{(a=pi/2+pi*k) or} написал потому что не наю куда его всунуть потому и закоментил
 К началу страницы 
+ Ответить 
Джери
сообщение 15.01.2010 23:19
Сообщение #10


Гость






2 верхних сообщения написал я просто забыл во 2ом написать имя
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.06.2025 21:21
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"