Форум программистов, компьютерный форум CyberForum.ru

Большая погрешность в вычислении длины кривой - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Заполнить матрицу по спирали http://www.cyberforum.ru/cpp/thread1854258.html
Заполнить матрицу, от центра по спирали: вниз - влево - вверх - вправо. Размерность матрицы должна вводиться при выполнении программы.
Visual C++ Получение данных из Edit в MFC Доброе время суток. Был создан Edit CEdit* i11 = new CEdit; i11->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER, CRect(10, 10, 60, 35), this, 1); Как после ввода получить значение и записать в переменную? или привязать переменную к данной форме? Очень нужн помощь. Заранее благодарю. http://www.cyberforum.ru/cpp/thread1854133.html
C++ Написать программу, которая должна включать функции - C++
Задача Написать программу, которая должна включать функции для: - Ввод и вывод данных массива структур, - Выборки информации по критерию; - Сведения выводить в отсортированном виде по заданному поля. Продажа программных продуктов Название Фирма - производитель стоимость
C++ Найти число пи
Найти сумму ряда
C++ Как перевести матрицу в трёхдиагональную? http://www.cyberforum.ru/cpp/thread1852672.html
Ребята, кто-то может помочь в реализации алгоритма для програмки. Необходимо реализовать алгоритм во внутрь программы, который переводит любую матрицу в трёх диагональную!! Голова уже запуталась. А надо срочно // metod.cpp : Defines the entry point for the console application. //metod progonki< dlja dannogo metoda raspologaetsja cto dannaja matrica sistemi trexdiagonaljna,...
C++ Обработка изображение стандартами С++ Добрый день, нужно обработать изображение средствами С++ без сторонних библиотек: Разработка методов пороговой фильтрации Разработка методов геометрической фильтрации и распознание объекта на изображении кадры из веб камеры я получил средствами qt QCamera формат bmp. можно ли средствами С++ обработать изображение? и как это сделать в какую сторону копать подскажите пожалуйста подробнее

Показать сообщение отдельно
almalexia1997
0 / 0 / 0
Регистрация: 15.09.2014
Сообщений: 16
20.11.2016, 13:00  [ТС]     Большая погрешность в вычислении длины кривой
Цитата Сообщение от vxg Посмотреть сообщение
почему?
не знаю даже. видимо все дело в функции считающей производную. я кстати нашел ошибку у себя в функции интеграла:
надо исправить ее на это:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double Integral(double a, double b, double n, vector<double>x, vector<double>abs_y) {
    double A1, A2;
    if (a > -a){ A1 = b; A2 = a; }
    else{ A1 = a; A2 = b; }
    double I = 0, t0 = -sqrt(3.0 / 5.0), t1 = 0.0, t2 = sqrt(3.0 / 5.0), h = A2 / n, x0, x1, x2; int i = 0;
    while (i<n) {
        x0 = (h + 2 * i*h) / 2.0 + h*t0 / 2.0;
        x1 = (h + 2 * i*h) / 2.0 + h*t1 / 2.0;
        x2 = (h + 2 * i*h) / 2.0 + h*t2 / 2.0;
        I += h*(5 * (sqrt(1 + dL(x0, n, x, abs_y)*dL(x0, n, x, abs_y))) + 8 * (sqrt(1 + dL(x1, n, x, abs_y)*dL(x1, n, x, abs_y))) + 5 * (sqrt(1 + dL(x2, n, x, abs_y)*dL(x2, n, x, abs_y)))) / 18.0;
        i++;
    }
    return I;
}
в квадратичной формуле Гаусса немного ошибся и два раза сосчитал в точке x1.
теперь погрешность стала нормальная, только понять не могу еще одно:
Результат интеграла я умножаю на два чтобы получить длину всего контура эллипса но в итоге я получаю длину только одной верхней полуоси так и мне приходится еще раз умножать на 2 чтобы получить длину всего уже контура.
Почему так получается никто не знает? Может у меня в математике плохо и я что-то не понимаю.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru