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

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

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

 
 Ответить  Открыть новую тему 
> вычисление суммы членов бесконечного числового ряда, верно ли я все сделал? необходим взгляд опытного программиста
dim0n
сообщение 11.06.2011 14:33
Сообщение #1


Новичок
*

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

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


Собственно сама задача:
Составить программу вычисления суммы членов бесконечного числового ряда с погрешностью Е=10^-4. Определить количество членов ряда,сравнить полученное значение суммы со значением функции y=Ln(x),x=1.5.

формула суммы ряда фото: Прикрепленное изображение
мое творение:
 
Program primer;
{Ln(x)}
var
a:real; {n-й член ряда}
b:real; {ошибка}
n:integer; {число итераций}
s:real; {сумма ряда}
x:real; {аргумент}
begin
write('x=');
readln(x);
write('точность e=');
readln(e);
s:=0;
n:=1;
a:=x; {0й член}
while abs(a)>e do begin
s:=s+a;
n:=n+1;
a:=(x-1)*n*n/(n*x*n*n);
end;
writeln('сумма ряда=',s:6:5);
writeln('точность=',e:6:5);
writeln('число членов=',n);
writeln('Ln(',x:6:5,')=',Ln(x):6:5);
writeln('расхождение=',abs(Ln(x)-s):6:5);
readln;
end.



гуру гляньте пожалуйста, правильно ли я мыслю?

Сообщение отредактировано: dim0n - 11.06.2011 15:35
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
IUnknown
сообщение 11.06.2011 14:42
Сообщение #2


a.k.a. volvo877
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской

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


Формулу в порядок приведи, хотелось бы видеть, с правильной ли ты формулой работаешь вообще... Кстати, твоя программа компилироваться не будет - переменная E не описана... И еще: E - это не ошибка, а точность. Ошибка вычисляется по другому...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
dim0n
сообщение 11.06.2011 15:36
Сообщение #3


Новичок
*

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

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


исправил... wub.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
IUnknown
сообщение 11.06.2011 16:02
Сообщение #4


a.k.a. volvo877
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской

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


В таком случае (раз ты выбрал эту формулу), я бы сделал так:

    s:=0;
n:=1;
a:=1;
while abs(a)>e do begin
a:=a * (x-1) / x;
s:=s+a/n;
n:=n+1;
end;
Сравни, за сколько итераций находится решение у тебя и за сколько - в моем варианте...

А вообще тут напрашивается использование repeat/until. Сделал действие, посчитал член последовательности, тут же сравнил его с погрешностью. Если не надо считать дальше - вышел, не начиная следующую итерацию цикла. Вот так я делал: http://volvo71.narod.ru/faq_folder/math.htm#taylor_ln
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
dim0n
сообщение 11.06.2011 16:27
Сообщение #5


Новичок
*

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

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



А можете написать полностью программу от начала,до конца? Я просто не могу понять что и куда писать? Буду очень благодарен
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
IUnknown
сообщение 11.06.2011 16:39
Сообщение #6


a.k.a. volvo877
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской

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


Зачем от начала до конца? Вот основа:
    write('x='); readln(x);
write('e='); readln(e);
s:=0;
n:=1;
a:=1;
repeat
a := a * (x-1) / x;
s := s + a/n;
n := n+1;
until a / n < e;
, дальше выводи что тебе нужно... Сумма посчитана, номер члена, который меньше погрешности - тоже.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
dim0n
сообщение 11.06.2011 17:07
Сообщение #7


Новичок
*

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

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


блин,всё равно въехать не могу:-( я не знаю как сама задача решается и поэтому обратился на этот форум. Мне просто нужен код программы от program до end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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