|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.12.2008, 18:29 | #1 |
Пользователь
Регистрация: 24.10.2008
Сообщений: 16
|
Задача на вычисление суммы ряда, Pascal
Здравствуйте.
Вообщем не получается разобраться с условием задачи на вычисление значения суммы ряда с определённой точностью. В смысле, не могу понять чего от меня хотят в этой задаче... Вот она: "Вычислить сумму ряда s(x) с точностью e=10^-3: s(x)=-(1+x)^2+(1+x)^4/2-(1+x)^6/3+(-1)^n*(1+x)^2n/n" В каком смысле надо понимать здесь значение слов "с точностью e"?) Вот мои размышления по задаче=): program _; var s,x,n,e,y,z,t:real; begin writeln ('vvedite x:'); readln(x); n:=1; e:=0.001; s:=0; y:=(1+x);z:=y*y;t:=-1; while s<e do begin s:=t*(y*y/n)+s;y:=y*z;n:=n+1;t:=t*t; end; writeln('summa = ', s:1:3); end. Но в итоге получаются подозрительные ответы... |
06.12.2008, 19:31 | #2 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Тосность в данном случае это когда разность между очередной вычисленной суммой и предыдущей будет меньше заданной величины.
while abs(si-s)>=e do begin s:=si; ........ si:=si+...... end; |
06.12.2008, 21:43 | #3 |
Пользователь
Регистрация: 24.10.2008
Сообщений: 16
|
не могли бы вы скинуть кусок правильного кода?! А то чего-то у меня начали получаться одни нули...
program _; var s,x,n,e,y,z,t,o,si:real; begin writeln ('vvedite x:'); readln(x); n:=1; e:=0.001; si:=0; y:=(1+x); z:=y*y; t:=-1; o:=y*y; while abs(si-s)>=e do begin s:=si; si:=t*(z/n)+si; z:=z*o; n:=n+1; t:=t*t; end; writeln('summa = ', s:1:3); end. |
06.12.2008, 22:08 | #4 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
В условии задачи не хватает сведений об х. Дело в том, что при положительных х функция расходится, т.е. значения поочередно полозительные и отрицательные, стремящиеся в разные стороны. Вероятно Вы что-то упустили в условии, типа х<0.
|
06.12.2008, 22:19 | #5 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Вот написал, но работает при x=[-2,0].
Код:
|
06.12.2008, 22:21 | #6 |
Пользователь
Регистрация: 24.10.2008
Сообщений: 16
|
Ну не знаю... В условии задачи ничего не говорится о том каким должно быть значение х. Хотя запуская программу из поста #3, ноль постянно получается в результате, независимо от положительного или отрицательного х...((
|
06.12.2008, 22:23 | #7 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
А Вы ее в Экселе прогоните при х=-3 и при х=1 и сами посмотрите, чего зря сомневаться.
|
07.12.2008, 16:13 | #8 |
Пользователь
Регистрация: 24.10.2008
Сообщений: 16
|
честно говоря, в экселе не силен...(( можете в двух словах объяснить как этот "прогон" можно реализовать?
|
07.12.2008, 17:58 | #9 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Сделай на бумаге с калькулятором, раз такой отсталый. Возьми например х=2 и считай при n=1,2,3,4,5... и увидишь что ряд расходится в разные стороны и условие никогда не будет выполнено.
|
07.12.2008, 19:05 | #10 |
Пользователь
Регистрация: 24.10.2008
Сообщений: 16
|
Ну ладно... спасибо!)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Табулирование функции и суммы функционального ряда | forumu | Помощь студентам | 20 | 10.12.2010 18:18 |
Расчитывание суммы бесконечного ряда до определённого значения | SLec | Помощь студентам | 3 | 17.11.2008 22:18 |
вычисления суммы ряда | kJlaCuk | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 17.09.2008 23:24 |