|
Арифметика высокой точности в ALGLIB, как ее использовать? |
|
|
|
Dec 10 2013, 09:06
|
Частый гость
 
Группа: Участник
Сообщений: 85
Регистрация: 20-05-13
Пользователь №: 76 911

|
Всем доброго времени суток. Надеюсь, что мой вопрос не останется без ответа. Использую функцию rmatrixsolvels из пакета alglib. Подключил просто - закинул в папку с проектом все хедеры и сишники alglib. Из 13 файлов пришлось подключить 6 для вызова лишь одной функции. exe подрос заметно в размерах, время компиляции увеличилось заметно, ну да ладно, главное цель достигнута. Решается система линейных уравнений с прямоугольной матрицей - число уравнений превышает число неизвестных. Минимизируется невязка. Но чувствую, не хватает точности. В alglib есть возможность работы с арифметикой высокой точности http://alglib.sources.ru/equations/linear.php Но как ее подключить ? Что-то я не соображу... Так все запутано в этом alglib. Использую компилятор MinGW-W64. Буду признателен за любые подсказки.
|
|
|
|
|
 |
Ответов
|
Dec 10 2013, 19:03
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата MSP430F: И где же взять код этих адгоритмов для прямоугольной матрицы, не подскажите? Для квадратной алгоритм вращений у меня есть, он очень неплох. А вот для прямоугольной... Можно легко модифицировать для прямоугольной. Если исходники есть. ps Могу нарисовать за умеренную плату, гы...
|
|
|
|
|
Dec 11 2013, 07:51
|
Частый гость
 
Группа: Участник
Сообщений: 85
Регистрация: 20-05-13
Пользователь №: 76 911

|
Цитата(thermit @ Dec 10 2013, 23:03)  Можно легко модифицировать для прямоугольной. Если исходники есть. Вот гляньте этот файл. Эта функция дает ошибку 2.7*10-8 на тех же исходных данных. Она не оригинальна, чуть модифицирована отсюда Мной добавлено создание копии матрицы в теле функции, а создание массива результатов убрано. Также введена проверка деления на 0.
Сообщение отредактировал MSP430F - Dec 11 2013, 07:54
|
|
|
|
Сообщений в этой теме
MSP430F Арифметика высокой точности в ALGLIB, как ее использовать? Dec 10 2013, 09:06 thermit ЦитатаMSP430F:
Но чувствую, не хватает точности.
... Dec 10 2013, 10:26 MSP430F Цитата(thermit @ Dec 10 2013, 14:26) Каки... Dec 10 2013, 12:32  Xenia Цитата(MSP430F @ Dec 10 2013, 16:32) Я пр... Dec 10 2013, 12:47   MSP430F Цитата(Xenia @ Dec 10 2013, 16:47) Если у... Dec 10 2013, 14:33 TSerg Проверьте с использованием мат.пакетов Матлаб, Мат... Dec 10 2013, 11:49 thermit ЦитатаMSP430F:
Я проверил максимальную ошибку в вы... Dec 10 2013, 13:47 thermit 1. Плохо обусловленная задача. Число обусловленнос... Dec 10 2013, 15:31 Xenia Цитата(thermit @ Dec 10 2013, 19:31) Боюс... Dec 10 2013, 16:27 MSP430F Цитата(thermit @ Dec 10 2013, 19:31) Вам ... Dec 10 2013, 16:44 thermit Честно говоря, лень ковыряться с чужими исходникам... Dec 11 2013, 11:00 MSP430F Цитата(thermit @ Dec 11 2013, 15:00) Чест... Dec 11 2013, 13:01  thermit Цитата(MSP430F @ Dec 11 2013, 16:01) Это ... Dec 11 2013, 14:20   TSerg Цитата(thermit @ Dec 11 2013, 18:20) стар... Dec 11 2013, 19:42   MSP430F Цитата(thermit @ Dec 11 2013, 18:20)
Я ... Dec 12 2013, 09:01 _pv Кодvoid GaussSolve(double * A, double * Y, int... Dec 11 2013, 11:48 thermit Цитата_pv:
обычный Гаусс на этих данных даёт ошибк... Dec 11 2013, 12:07 _pv 5*10^-10
если то же самое в чём радость по сравнен... Dec 11 2013, 13:29 thermit Ошибки здесь нет. Исходная матрица лежит в памяти ... Dec 12 2013, 09:18 MSP430F Цитата(thermit @ Dec 12 2013, 13:18) Ошиб... Dec 12 2013, 10:18 _pv тогда простой Гаусс даст ошибку в 10^-12.
а для пр... Dec 12 2013, 10:28 thermit ЦитатаMSP430F:
Зачем же здесь тогда транспонирова... Dec 12 2013, 10:56 MSP430F Цитата(thermit @ Dec 12 2013, 14:56) Для ... Dec 12 2013, 12:03 thermit ЦитатаMSP430F:
Нет, Вы не правы. В моих данных все... Dec 12 2013, 12:15 MSP430F Цитата(thermit @ Dec 12 2013, 16:15) Это ... Dec 12 2013, 14:42 thermit ЦитатаMSP430F:
Правда, пришлось немного попотеть, ... Dec 12 2013, 14:49 Xenia Цитата(thermit @ Dec 12 2013, 18:49) Заче... Dec 12 2013, 15:08
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|