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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2017, 05:38   #1
Neumnyu paren
 
Регистрация: 07.02.2017
Сообщений: 3
По умолчанию вычислительная ошибка(Си++)

Эквиваленты ли следующие 2 кода для вычисления интегралов?


Код:
double func(double x)
{....}
double I, F, a, b, h;

while (a<b) {
     F=h/2*(func(a)+ func(a+h));
     a=a+h;
     I+=F;
}
и

Код:
double func(double x)
{...}

double I, F, a, b, h, A, B;

A=func(a);
B=func(a+h);

while(a<b) {
       F=h*(A+B)/2;
       A=B;
       a=a+h;
       B=func(a+h);
       I+=F;
}
Меня интересует, может ли во 2-м коде возникнуть какая-либо компьютерная вычислительная ошибка? К примеру из-за округления (потери какого кол-ва значимых цифр).
Neumnyu paren вне форума Ответить с цитированием
Старый 07.02.2017, 10:17   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

При чем тут ошибка ? Конечная точность представления нецелых чисел - неотъемлемое свойство любой вычислительной системы. Если уж и double недостаточно (видимо, речь идет о вычислении траектории полета в соседнюю галактику), то для уменьшения погрешностей вычисления применяют известные приемы, например, суммирование большого числа float данных начинают с самых малых значений.
digitalis вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычислительная ошибка Neumnyu paren Помощь студентам 1 07.02.2017 11:07
Вычислительная геометрия airesjke Помощь студентам 2 31.01.2013 11:14
вычислительная программа скромняшка Паскаль, Turbo Pascal, PascalABC.NET 3 04.05.2012 22:42
Вычислительная геометрия на С Soull Помощь студентам 7 18.05.2010 12:54