Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.10;
Скачать: [xml.tar.bz2];

Вниз

Определитель   Найти похожие ветки 

 
Magic   (2002-09-27 17:32) [0]

Не могу понять, почему?!
Написал алгоритм определения детерминанта матрицы:
const
A: array [1..3,1..3] of real =
((11,8,-1),
(-1,-3,2),
( 3, 2,3));
var
i,j,n,v: integer;
m,q,w,e: real;
begin
n:=1;
for i:=1 to 2 do
begin
for j:=i+1 to 3 do
begin
m:=A[i,n]/A[j,n];
for v:=n to 3 do
begin
q:=-1*A[j,v]*m;
w:=A[i,v];
e:=q+w;
A[j,v]:=A[i,v]+(-1)*A[j,v]*m;
end
end;
n:=n+1
end
end.
Если элемент A[1,1] заменить на 13, то ни чего не выходит. В других случаях работает нормально. Переменные q, w и e я ввел просто для того, чтобы наблюдать шаги вычисления. Этот алгоритм я проверял и на простом паскале: то же самое. Не пойму в чем проблема.


 
pasha_golub   (2002-09-27 20:11) [1]


> m:=A[i,n]/A[j,n];

А почему поделить? В детерминанте только умножение и вычитание!!!


 
Magic   (2002-10-01 11:45) [2]

Потому что это LU-разложение (метод Гаусса). Ошибка только в том, что нужно запоминать все множители m, чтобы поделить на него получившийся определитель... В общем, это математика.
Но проблема не в этом. Я не пойму, почему + работает не правильно? Попробуй сам.


 
han_malign   (2002-10-01 12:06) [3]

поробуй заменить циклы на while, потому как я не раз напарывался на то, что оптимизатор самовольно меняет параметры for местами и идет от большего к меньшему(а инкремент n у тебя делается руками и от оптимизатора не зависит).


 
Kopetr   (2002-10-01 12:09) [4]

А в алгоритме ошибки нет? Что-то я не вижу ни L, ни U.
(Для матрицы А вычисляется разложение вида А = L*U, где L, U - треугольные матрицы, матрица L имеет единичные диагональные элементы....)


 
Magic   (2002-10-01 12:51) [5]

Хорошо, согласен, Kopetr. Матриц нет. Но это точно метод Гаусса для решения систем уравннений. Хотя, в общем, это не имеет значения. Просто мне нужно привести матрицу к треугольному виду.



Страницы: 1 вся ветка

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

Наверх





Память: 0.45 MB
Время: 0.007 c
1-31792
Nitrox
2002-10-01 23:34
2002.10.10
Как скопировать целый каталог с подкаталогами...


1-31729
diMAN
2002-09-27 18:16
2002.10.10
Свой обработчик для кнопки


6-31922
Mon@rchP
2002-08-04 12:12
2002.10.10
работа с SMTP через WinSock


1-31779
Anar
2002-10-01 20:02
2002.10.10
Или я пишу эту программу или Borland отводит меня в психбольницу.


7-32033
YDV
2002-08-01 07:03
2002.10.10
Есть прога, которая может зависнуть, как можно узнать повисла ...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский