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

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

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

> Найти массив сумм с точностью до e
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Женский

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


Не могу справиться с задачей, так как не понимаю условия. В методичке был пример решения данной задачи, я попыталась по примеру составить программу, но мало того что выдает ошибку, так еще и понятие "с точностью до е" меня сбивает с толку (я его просто не понимаю).

Найти массив сумм S элементов ряда для каждого значения заданной последовательности Х (с использованием оператора for). Каждую сумму искать с точностью до e.
S=x^3/3-x^5/15+...+((-1)^(n+1))*(x^(2n+1))/(4n^2-1)
x=0.1...1.3, hx=0.3, e=10e-3

Вот текст, который я попыталась составить:
PROGRAM Lab_7_2;
USES
Crt;
CONST
m = 5; {Количество Х}
xn = 0.1; {Начальное знеачение Х}
xk = 1.3; {Конечное значение Х}
hx = 0.3; {Шаг по Х}
eps = 1e-3; {Коэффициент точности}
VAR
s : array [1..m] of real; {Массив сумм}
q : real; {Коэффициент рекурентности}
i : integer; {Счетчик элементов ряда}
x : real; {Текущий Х}
k : integer; {Счетчик Х}
BEGIN
ClrScr;
x:=xn; {Начальный Х}
k:=1;
WHILE x<=xk+eps DO
Begin
i:=0;
REPEAT {Цикл поиска k-ой суммы}
q:=exp((2*i+1)*ln(x))/((4*sqr(i))-1);
if odd(i)=false then q:=-q;
s[k]:=s[k]+q;
i:=i+1;
UNTIL abs(q)<eps; {Условие точности}
Writeln('k = ',k,' x = ',x:3:1,' S = ',s[k]:6:4);
k:=k+1;
x:=x+hx; {Переход на следующий Х}
Readln;
End;
END.


Помогите составить правильную программу...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Миа @ 28.12.2010 14:30) *
Не могу справиться с задачей, так как не понимаю условия.
...
Помогите составить правильную программу...
Миа, ты все прекрасно поняла и сделала. Твоя программа, мне кажется, работает нормально. Ты только единственное сделала плохо: не задала конкретный вопрос, поэтому пришлось запускать, разбираться и т.п., вместо чтоб сразу сказать все.

Правильно я понимаю, что тебя беспокоит ошибка, вылетающая на пятом (последнем) проходе? Так вот, эта ошибка - не программная, это просто обычное расхождение ряда. Обрати внимание: сначала шли значения x<1 - при них ряд сходится. Потом было одно x=1 - ряд все равно сходится. поскольку в знаменателе стоит О(n2). Но при x>1 у этого ряда нет никакого шанса на сходимость.. Иными словами, модуль суммы стремится к бесконечности. Поэтому программа просто переполняется.

То, что тебя напугало - точность - это совершенно нормальное понятие для ряда. Ты еще не проходила ряды, наверное? Так вот, когда будешь проходить, тогда узнаешь, что точность знакопеременного ряда (а у тебя именно знакопеременный) оценивается последним слагаемым его конечной суммы. Так что все Okay )).

Как быть в таком случае, я точно тебе не скажу (может, про это тоже есть в методичке). Например, можно при вылезании суммы за какое-нить большое число обрывать расчет и выдавать сообщение: "при x=.. ряд расходится"

1. Еще пара советов, если ты не против.. Не нужно тут применять экспоненты и логарифмы - нужно просто домножать каждый раз на x2. А если домножать на -x2, то решится вопрос и со сменой знака.
2. Сними галку в опции "use Tab characters" в опциях своего TP (или BP, что там у тебя)
Успехов тебе ))


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 2
Пол: Женский

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


Спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 8.09.2025 15:19
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name