Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сравнение суммы ряда с функцией 
:(
    Опции темы
Wlad
Дата 5.3.2004, 02:05 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Помогите пожалуйста – не могу никак справиться с написанием проги на Паскале для этого задания - где-то ошибка. Данные такие: отрезок [0.1,0.8] разбивается на 20 равных интервалов. В каждой из образующихся при таком разбиении n+1 точек подсчитать сумму ряда
S=k*(k+2)*x^k с точностью 0.01. Сравнить полученную сумму ряда со значениями функции f(x)=x*(3-x)/((1-x)^3) в соответствующих точках.
При правильном вычислении суммы ряда значения в колонках S и f должны быть приблизительно равны.
А вот то , что мне удалось состряпать:

║program rad{Нахождение суммы ряда};
║ Uses Crt;
║ var
║ x,a,t,b,h,y,s:real;
║ k,n:integer;
║ begin
║ Clrscr;
║ a:=0.1; b:=0.8; x:=a; n:=20; s:=0; h:=(b-a)/(n);
&#9553; while x<=b do
&#9553; begin
&#9553; k:=1;
&#9553; while k<n do
&#9553; begin
&#9553; t:=k*(k+2)*(exp(k*ln(x))); s:=s+t; k:=k+1;
&#9553; end;
&#9553; y:=x*(3-x)/(exp(3*ln(1-x)));
&#9553; writeln(x:7:2,s:9:2,y:11:2);
&#9553; x:=x+h;
&#9553; end;
&#9553; Readkey;
&#9553;end.

А результаты такие:
0.10__ 0.40__ 0.40
0.14__ 1.00__ 0.60
0.17__ 1.84__ 0.84
0.21__ 2.98__ 1.14
0.24__ 4.49__ 1.51
0.28__ 6.45__ 1.97
0.31__ 8.99__ 2.54
0.34__ 12.25__ 3.26
0.38__ 16.43__ 4.18
0.41__ 21.79__ 5.36
0.45__ 28.68__ 6.90
0.48__ 37.61__ 8.93
0.52__ 49.27__ 11.66
0.55__ 64.66__ 15.40
0.59__ 85.26__ 20.63
0.62__ 113.29__ 28.15
0.66__ 152.20__ 39.29
0.69__ 207.42__ 56.46
0.73__ 287.71__ 84.19
0.76__ 407.40__ 131.75
0.80__ 590.27__ 220.00
Первый и третий столбцы (x,y) получаются вроде правильными (считал на калькуляторе), а вот S (второй столбец) считает неправильно. Помогите!!!!!

Заранее премного благодарен!!!!!!!!!!!!!

Это сообщение отредактировал kwns - 4.03.04 5:09
  Вверх
remax
Дата 5.3.2004, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент
**


Профиль
Группа: Участник Клуба
Сообщений: 686
Регистрация: 7.4.2002
Где: Украина, Харьков

Репутация: 1
Всего: 5



Почему не правильно?


А результаты такие:
0.10__ 0.40+0 = 0.40
0.14__ 0.40+0.60 = 1.00
0.17__ 1.00+0.84 = 1.84
0.21__ 1.14+1.84 = 2.98
.............
вплоть до 0.55 там начинается отличие во втором знаке. А почему - да потому, что вы выводите только два разряда и не видете какие округления получаете! Поставте 8 разрядов и увидете погрешность только в последнем знаке, т.е. примерно 0.00000001-0.00000002!



--------------------
Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0501 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.