Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2010, 01:11   #1
CodeExpert
Заблокирован
 
Регистрация: 30.10.2009
Сообщений: 468
Радость Ошибка при вычислении..

Доброе утро уже, уважаемые форумчане, помогите найти ошибку:
Задание: Дано вещественное число а, вычислить arctg(a) используя степенной ряд arctg x= x-x^3/3+x^5/5-x^7/7+x^9/9...
входное значение 5 результат - 1.373400766945
но у меня не получается...
Мой код:
Код:
program laba7;
uses Crt; //подключаем модуль дополнительный
    
{искусственная функция вычисления арктангенса}
function arct(a:real):real;
const e=0.0001;
var i:integer; //счетчик
    sum,s:real; //сумма и последующий член
    sch:integer; //контроллер
begin
sum:=0; //первоначальное значение
sch:=1;
i:=1; //начальное значение счетчика
repeat
 s :=(exp(ln(a)*i))/i;
 if sch mod 2 = 0 then sum:=sum-s else begin sum:=sum+s;end;
 i:=i+2;
 sch:=sch+1;
until abs( ((exp(ln(a)*(i+1)))/(i+1)) - ((exp(ln(a)*i))/i))<=e;
Writeln(s);
Writeln(sum);
arct:=sum;
end;

var ax:real; //входное значение
    res:real; //результат
begin
Writeln('Введите исходное значение!');
Readln(ax); 
Writeln('Вычисление с помощью станд.функции');
res:=arctan(ax);
Writeln('Результат = ',res);
Writeln('Вычисление с помощью искусств.функции');
res:=arct(ax);
Writeln('Результат = ',res);
readln;
end.
помогите пожалуйста исправить...!)
CodeExpert вне форума Ответить с цитированием
Старый 17.02.2010, 01:21   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Кто так степени накапливать учил????
Carbon вне форума Ответить с цитированием
Старый 17.02.2010, 01:33   #3
CodeExpert
Заблокирован
 
Регистрация: 30.10.2009
Сообщений: 468
По умолчанию

Не знаю, нас так учили в институте, помогите исправить пожалуйст..
CodeExpert вне форума Ответить с цитированием
Старый 17.02.2010, 06:04   #4
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Код:
uses crt;
var dx,x,e,y,t:real;
i:integer;
begin
clrscr;
write('x=');readln(x);
write('e=');readln(e);
dx:=x;
y:=0;
i:=0;
t:=1/(2*i+1);
while abs(dx*t)>=e do
    begin
       y:=y+dx*t;
       inc(i);
       dx:=-dx*x*x;
       t:=1/(2*i+1);
    end;
writeln('Rezultat razlozenia=',y:0:5);
writeln('Rezultat vychislenia=',arctan(x):0:5);
writeln('Chislo iteracij=',i);
readln
end.
2CodeExpert ник не жмет?

Последний раз редактировалось Google2010; 17.02.2010 в 19:04.
Google2010 вне форума Ответить с цитированием
Старый 17.02.2010, 14:37   #5
CodeExpert
Заблокирован
 
Регистрация: 30.10.2009
Сообщений: 468
По умолчанию

прога виснет, а при e=0.0001 выдает переполнение вещественного типа..(
CodeExpert вне форума Ответить с цитированием
Старый 17.02.2010, 15:32   #6
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Потому что при х=5 данная точность никогда достигнута не будет.
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 17.02.2010, 16:07   #7
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

It-man +1024
Цитата:
никогда достигнута не будет.
потому что числитель увеличивается в 5 раз, а знаменатель только на 2
Google2010 вне форума Ответить с цитированием
Старый 17.02.2010, 17:24   #8
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Область сходимости ряда: [ -1; 1 ]
Carbon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при сохранении БД Xeon332 Помощь студентам 2 05.01.2010 17:00
Ошибка при компиляции haste39 Общие вопросы C/C++ 4 13.11.2009 00:24
ошибка в вычислении wowka Помощь студентам 4 21.07.2008 15:51
Ошибка при компилации Kocapb Общие вопросы C/C++ 3 25.11.2007 18:07
Ошибка при фильтрации! Markus БД в Delphi 0 05.05.2007 17:28