IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Метод Крамера, программка
Demm
сообщение 3.03.2005 16:23
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 33
Пол: Мужской

Репутация: -  0  +


Есть ли у кого-нибудь реализованная прога на Паскале или С++
По вычислению матриц методом крамера?
(В поиске ничего не нашел)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 3.03.2005 16:40
Сообщение #2


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


В ФАКе лежит материал по нахождению детермината матрицы, это все что нужно, для того, что бы самому сделать метод крамера...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 3.03.2005 17:55
Сообщение #3


Гость






Demm, ну если просто (без ввода данных, и всяких наворотов, только сам алгоритм) - тогда вот так...

Реализация перенесена сюда: FAQ: Решение систем линейных уравнений
 К началу страницы 
+ Ответить 
Demm
сообщение 3.03.2005 21:23
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 33
Пол: Мужской

Репутация: -  0  +


Большое спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Demm
сообщение 12.03.2005 18:44
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 33
Пол: Мужской

Репутация: -  0  +


Эта прога volvo ( я матрицу переправил на другую)
Исходный код

Const
n = 4;

Type
Equation =
Array[1 .. n, 1 .. Succ(n)] Of Double;
matrix =
Array[1 .. n, 1 .. n] Of Double;

Const
a: Equation =
(( 2, 1, -5, 1),
(1, -3, 0, -6),
( 0, 2,-1, 2),
(1,4,-7,6));


Procedure GetMatrix(wout: Integer;
Var m: matrix);
Var i, j: Integer;
Begin
For i := 1 To n Do
For j := 1 To n Do
If j <> wout Then m[i, j] := a[i, j]
Else m[i, j] := a[i, Succ(n)]
End;

Function Det(a: matrix; n: integer): Double;
Var
i, j, k: Integer; d: Double;
Const
Eps = 10E-6;
Begin
For i := 1 To Pred(n) Do
Begin
If Abs(a[i, i]) < Eps Then
Begin
Det := 0.0; Exit
End;

For j := Succ(i) To n Do
Begin
d := a[j, i] / a[i, i];
For k := i To n Do
a[j, k] := a[j, k] - d * a[i, k];
End;
End;
d := 1.0;
For i := 1 To n Do
d := d * a[i, i];
Det := d
End;

Var
i: Integer;
mx: matrix;
Determ: Double;
begin
GetMatrix(Succ(n), mx);
Determ := Det(mx, n);

For i := 1 To n Do
Begin
GetMatrix(i, mx);
WriteLn( 'x(', i, ') = ', (Det(mx, n) / Determ):7:4 )
End
end.

Она работает для матрицы 3 порядка, а почему она не работает для 4 порядка?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 12.03.2005 19:56
Сообщение #6


Гость






Цитата(Demm @ 12.03.05 17:44)
Она работает для матрицы 3 порядка, а почему она не работает для 4 порядка?

Почему же не работает? Она и с матрицей более высоких порядков работает... Просто задавать матрицу нужно правильно, ведь написано:
Код
Type
Equation =
  Array[1 .. n, 1 .. Succ(n)] Of Double; (* Succ здесь что, для красоты? *)
matrix =
  Array[1 .. n, 1 .. n] Of Double;
Const
a: Equation = ...

Значит, матрица A должна быть не 4х4, а 4х5 ... А программа, приведенная в предыдущем посте даже не скомпилируется...
 К началу страницы 
+ Ответить 
Demm
сообщение 12.03.2005 20:45
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 33
Пол: Мужской

Репутация: -  0  +


Да, точно забыл свободные члены вписать :p2:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 2:48
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"