Страница 2 из 3
Добавлено: 15 окт 2004, 07:29
evgeny_d
Это как получить ответ деления 1 на 3. Точный ответ - 0.(3) (теоретически). А какой ответ можно получить на ЭВМ?
А если подобная ошибка от итерации к итерации будет накапливаться, что в результате получится?
Добавлено: 15 окт 2004, 07:34
evgeny_d
Добавить к этому случай, когда определитель близок к нулю и получится добротная погрешность %)
Добавлено: 15 окт 2004, 12:27
AiK
В методе Гаусса не итераций. Это точный метод.
Добавлено: 15 окт 2004, 12:51
evgeny_d
Мне бы такю уверенность

Ок. Точный так точный.
3 1 -> 3 1
1 1 0 2/3 - > точный метод Гаусса дает ответ 2
Если мы для работы с рациональными числами используем специальный тип.
Если мы пользуемся обычным инструментарием (float, double etc), то возникает погрешность от деления на 3. Метод Гауса
накапливает эту погрешность от шага к шагу.
НО! В принципе он точный.
Добавлено: 15 окт 2004, 12:52
DeeJayC
Раз пошла такая пьянка, то определители ОЧЕНЬ больних матриц надо считать
Монте-Карло и не выпендриваться....
Добавлено: 15 окт 2004, 13:32
evgeny_d
DeeJayC писал(а):Раз пошла такая пьянка, то определители ОЧЕНЬ больних матриц надо считать
Монте-Карло и не выпендриваться....
Угадать ?
А если серьезно, то как ето? Чего-то никогда не встречал алгоритма подсчета определителя методом Монте-Карло....

ops:
Добавлено: 15 окт 2004, 13:42
AiK
evgeny_d, гы. Что тебе мешает сделать такой переход:
3 1 0 -2
1 1 1 1
Добавлено: 15 окт 2004, 16:22
evgeny_d
Ничего. :lol:
Re: Определитель матрицы
Добавлено: 27 май 2009, 10:57
oke
Геннадий писал(а):Здравствуйте!

Написал на 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;
Определитель матрицы
Добавлено: 11 сен 2009, 01:10
retaig
Вот задачка для продвинутых
Задача:
Даны числа множество 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
- знак умножения гы гы
Кидать отлаженный текст проги мне в личку…
если хотите сказать что то неприятное или дельное всё в личку…