Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.14;
Скачать: [xml.tar.bz2];




Вниз

Большие числа с плавающей точкой 


POMAH   (2002-02-27 13:04) [0]

Требуется библиотека, содержащая реализацию и процедуры работы с сабжем Задача - решение систем уравнений больших порядков -> стандартных типов уже не хватает. Рассмотрю любые предложения :-)
Заранее спасиба.



Виктор Щербаков   (2002-02-27 13:12) [1]

А какие методы используешь для решения систем?



POMAH   (2002-02-27 13:19) [2]

Матричный.



Alx2   (2002-02-27 13:22) [3]

Так, наверное, нормировать систему можно, чтобы числа большими не были?



POMAH   (2002-02-27 13:28) [4]

Нужна большая точность(порядка 10 знаков после запятой), которая пропадает, например, в процессе нахождения обратной матрицы



Виктор Щербаков   (2002-02-27 13:40) [5]

Хорошо, а как ты обратную матрицу находишь?
Вычисляешь ли для этого определитель?



POMAH   (2002-02-27 13:51) [6]

:-) Да. Причём всё работает нормально, пока размер мантиссы числа <= ABS(порядка экспонеты). Проверято на маткаде и екселе. Маткад считает правильно, а у моей процедуры и у екселя результат одинаковый(неверный). Юзал extended - с даблом ещё хуже :-(



Виктор Щербаков   (2002-02-27 14:05) [7]

Для решения систем линейных уравнений не обязательно вычислять определитель матрицы системы. Попробуй порешать методом Гаусса с выбором ведущего элемента.



POMAH   (2002-02-27 14:12) [8]

Да, я как раз об этом думаю. Но всётаки вопрс по прежнему открыт. В данный момент нужен также интерфейс маткада(хоть через него сделать чтоли).



Виктор Щербаков   (2002-02-27 14:20) [9]

На самом деле метод Гаусса тоже неидеален. У полученного с его помощью решения может быть плохая точность если матрица плохо обусловлена. Т.е. незначительные изменения элементов матрицы (неизбежные в машинных вачислениях) приводят к неприемлемым отклонениям решения. Лучше использовать метод регуляризации Тихонова или SVD.

О проблеме точности возникающей при решении систем линейных уравнений и методах её решения подробно написано в

Форсайт Дж., Малькольм М., Моулер Е. Машинные методы математических вычислений. М.: Мир, 1980.



pasha_golub   (2002-02-27 14:22) [10]

Домножь числа так, чтобы не было дробных и используй longint, после этого переведи обратно.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.02 c
1-43101           Poirot                2002-02-28 07:43  2002.03.14  
Как в компонент ввести свойство типа Int4


14-43154          fliz                  2002-01-30 13:10  2002.03.14  
2 Merlin : заметил ОЧЕПЯТКУ на этой странице (причем давно...)


3-42939           Саша                  2002-02-06 11:47  2002.03.14  
Как записать значение в BLOB поле


1-43028           kirill2000            2002-02-25 15:09  2002.03.14  
Desktop Resolution


4-43219           Burmistroff           2002-01-11 23:31  2002.03.14  
SuspendThread