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

 
 
> Арифметика высокой точности в 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
Ответов
_pv
сообщение Dec 11 2013, 11:48
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Код
void GaussSolve(double * A, double * Y, int num){
  //zeroeing left lower part of A[]
  for (int k = 0; k < num - 1; k++){   //diagonal
    for (int j = k + 1; j < num; j++){  //vertical
      double m = A[k + j * num] / A[k + k * num];
      for (int i = k+1; i < num; i++)  A[i + j * num] -= A[i + k * num] * m;  //horizontal
      Y[j] -= Y[k] * m;
    }
  }
  //zeroeing right upper part of A[], Y only.
  for (int k = num - 1; k > 0; k--)
    for (int j = k - 1; j >= 0; j--)
      Y[j] -= Y[k] * A[k + j * num] / A[k + k * num];
  //return answer in Y
  for (int i = 0; i < num; i++) Y[i] /= A[i + i * num];
}


обычный Гаусс на этих данных даёт ошибку 10^-12.
для прямоугольной матрицы при нахождении (A* A)^-1 A* поди не сильно больше наберётся.
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
- - 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


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

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 20:58
Рейтинг@Mail.ru


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