реклама на сайте
подробности

 
 
> Арифметика высокой точности в ALGLIB, как ее использовать?
MSP430F
сообщение Dec 10 2013, 09:06
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 20-05-13
Пользователь №: 76 911



Всем доброго времени суток. Надеюсь, что мой вопрос не останется без ответа.
Использую функцию rmatrixsolvels из пакета alglib. Подключил просто - закинул в папку с проектом все хедеры и сишники alglib. Из 13 файлов пришлось подключить 6 для вызова лишь одной функции. exe подрос заметно в размерах, время компиляции увеличилось заметно, ну да ладно, главное цель достигнута. Решается система линейных уравнений с прямоугольной матрицей - число уравнений превышает число неизвестных. Минимизируется невязка. Но чувствую, не хватает точности. В alglib есть возможность работы с арифметикой высокой точности http://alglib.sources.ru/equations/linear.php Но как ее подключить ? Что-то я не соображу... Так все запутано в этом alglib. Использую компилятор MinGW-W64. Буду признателен за любые подсказки. sm.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
thermit
сообщение Dec 12 2013, 09:18
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Ошибки здесь нет. Исходная матрица лежит в памяти постолбцово (1-я строка состоит из единиц). Во всяком случае я так считал. Для работы алгоритмов матрица должна лежать в памяти построчно. for(j=0;j<21;j++) aa[i][j]=aorig[i][j]=a[j][i]; Это и есть такое преобразование (транспонирование).

Сообщение отредактировал thermit - Dec 12 2013, 09:19
Go to the top of the page
 
+Quote Post
MSP430F
сообщение Dec 12 2013, 10:18
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 20-05-13
Пользователь №: 76 911



Цитата(thermit @ Dec 12 2013, 13:18) *
Ошибки здесь нет. Исходная матрица лежит в памяти постолбцово (1-я строка состоит из единиц). Во всяком случае я так считал. Для работы алгоритмов матрица должна лежать в памяти построчно. for(j=0;j<21;j++) aa[i][j]=aorig[i][j]=a[j][i]; Это и есть такое преобразование (транспонирование).


Если считать, что первый индекс - строка, а второй - столбец, то первая строка как раз и не состоит из 1.0, а равна
{1.000000, 1.229402, 1.229566, 1.230016, 1.229648, 1.229771, 1.229975, 1.229361, 1.229525, 1.229648, 1.229484, 1.229238, 1.229156, 1.228992, 1.228214, 1.227518, 1.227928, 1.227108, 1.227231, 1.226453, 1.226576},
как она и проинициализирована. Зачем же здесь тогда транспонирование ?

Можете проверить:

i = 0;
for(j=0; j<21; j++) printf("a = %f\n", a[i][j]);

Сообщение отредактировал MSP430F - Dec 12 2013, 10:21
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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   ЦитатаMSP430F: И где же взять код этих адгоритмов ...   Dec 10 2013, 19:03
|- - MSP430F   Цитата(thermit @ Dec 10 2013, 23:03) Можн...   Dec 11 2013, 07:51
- - 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
- - _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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 22:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01393 секунд с 7
ELECTRONIX ©2004-2016