Определитель матрицы

Алгоритмы: от сортировки пузырьком до численных методов

Модераторы: C_O_D_E, DeeJayC

evgeny_d
Сообщения: 62
Зарегистрирован: 23 мар 2004, 08:31

15 окт 2004, 07:29

Это как получить ответ деления 1 на 3. Точный ответ - 0.(3) (теоретически). А какой ответ можно получить на ЭВМ?

А если подобная ошибка от итерации к итерации будет накапливаться, что в результате получится?
evgeny_d
Сообщения: 62
Зарегистрирован: 23 мар 2004, 08:31

15 окт 2004, 07:34

Добавить к этому случай, когда определитель близок к нулю и получится добротная погрешность %)
Аватара пользователя
AiK
Сообщения: 2274
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

15 окт 2004, 12:27

В методе Гаусса не итераций. Это точный метод.
Даже самый дурацкий замысел можно воплотить мастерски
evgeny_d
Сообщения: 62
Зарегистрирован: 23 мар 2004, 08:31

15 окт 2004, 12:51

Мне бы такю уверенность :)
Ок. Точный так точный.

3 1 -> 3 1
1 1 0 2/3 - > точный метод Гаусса дает ответ 2

Если мы для работы с рациональными числами используем специальный тип.

Если мы пользуемся обычным инструментарием (float, double etc), то возникает погрешность от деления на 3. Метод Гауса накапливает эту погрешность от шага к шагу.

НО! В принципе он точный.
DeeJayC
Сообщения: 492
Зарегистрирован: 17 фев 2004, 11:26
Откуда: Ленинград (который Город на Неве)
Контактная информация:

15 окт 2004, 12:52

Раз пошла такая пьянка, то определители ОЧЕНЬ больних матриц надо считать
Монте-Карло и не выпендриваться....
"Особое внимание начинающих аквариумистов хотим обратить на то, что рыбки никогда не спят на спинке!" (c)

viel spass, DeeJayC
evgeny_d
Сообщения: 62
Зарегистрирован: 23 мар 2004, 08:31

15 окт 2004, 13:32

DeeJayC писал(а):Раз пошла такая пьянка, то определители ОЧЕНЬ больних матриц надо считать
Монте-Карло и не выпендриваться....
Угадать ? :wink:

А если серьезно, то как ето? Чего-то никогда не встречал алгоритма подсчета определителя методом Монте-Карло.... :o ops:
Аватара пользователя
AiK
Сообщения: 2274
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

15 окт 2004, 13:42

evgeny_d, гы. Что тебе мешает сделать такой переход:

3 1 0 -2
1 1 1 1
Даже самый дурацкий замысел можно воплотить мастерски
evgeny_d
Сообщения: 62
Зарегистрирован: 23 мар 2004, 08:31

15 окт 2004, 16:22

Ничего. :lol:
oke
Сообщения: 5
Зарегистрирован: 18 май 2009, 11:53

27 май 2009, 10:57

Геннадий писал(а):Здравствуйте!
:D
Написал на Delphi 6 расчет определителя квадратнойй матрицы, на матрицу 7x7 уходит 1 секунда, 8x8 - 24 секунды. Это нормально?
Для определителя я получаю n^n сочетаний, а из них выделяю n!
Можно ли по-другому, напрмер, получать сразу все нужные перестановки?
Не мог бы ты скинуть проект?А то я уже несколько дней не могу его сделать,путаюсь в циклах.Вот мой код,первый столбец работает,остальные - нет.
procedure TForm1.Button5Click(Sender: TObject);
var j,k,f:byte;
var p,i,ii:integer;
var d,dd,fl:double;
var st:string[4];
begin
For p:=0 to StringGrid1.ColCount-2 do
begin
dd:=StrToFloat(StringGrid1.Cells[p,p]);
For j:=p+1 to StringGrid1.ColCount-1 do //по строкам
begin
fl:= StrToFloat(StringGrid1.Cells[p,j]);
For i:=p to StringGrid1.ColCount-1 do // по столбцам
begin
d:=StrToFloat(StringGrid1.Cells[i,j])-(StrToFloat(StringGrid1.Cells[i,p])/dd)*fl;
st:=FloatToStr(d);
StringGrid1.Cells[i,j]:=st;
end;
end;
end;
end;
retaig
Сообщения: 7
Зарегистрирован: 08 сен 2009, 21:53

11 сен 2009, 01:10

Вот задачка для продвинутых

Задача:
Даны числа множество 1,2,3,4,5,6,7,8,9 всего 9-ть штук
числа могут быть и другие, это не принципиально

Используя числа из множества забить их в матрицу 3 на 3 и найти те расстановки матрицы в которых определитель детерминант будет максимален

Справка:
Как выглядит матрица 3 на 3:
Ну как массив 3 на 3
a11, a12, a13
a21, a22, a23 = A
a31, a32, a33

aij = i j-ый элемент матрицы

Как считать определитель матрицы A размерностью 3 на 3:
Det A = a11a22a33 a12a23a31 a13a21a32 - a13a22a31 a12a21a33 a11a23a32

Не использовать:
Математическую библиотеку…

Цель задачи:
Найти наиболее быстрый алгоритм скорость я померю и выложу результаты для тех решений, которые выдают все варианты верных ответов

Срок действия задачи:
Пока не будет придуман алгоритм круче моего, и тогда я выложу комментарии, ошибки и код…

Требование:
Программа должна быть написана на VBScript и выполняться программой cscript, никаких наворотов ненужно, всё выводить в консоль…

PS
- знак умножения гы гы
Кидать отлаженный текст проги мне в личку…
если хотите сказать что то неприятное или дельное всё в личку…
Ответить