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

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

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

 
 Ответить  Открыть новую тему 
> Найти массив сумм с точностью до e
Миа
сообщение 28.12.2010 14:30
Сообщение #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 
 К началу страницы 
+ Ответить 
Lapp
сообщение 28.12.2010 16:21
Сообщение #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 
 К началу страницы 
+ Ответить 
Миа
сообщение 28.12.2010 17:08
Сообщение #3





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

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


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

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

 



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