![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Demm |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 33 Пол: Мужской Репутация: ![]() ![]() ![]() |
Есть ли у кого-нибудь реализованная прога на Паскале или С++
По вычислению матриц методом крамера? (В поиске ничего не нашел) |
Altair |
![]()
Сообщение
#2
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
В ФАКе лежит материал по нахождению детермината матрицы, это все что нужно, для того, что бы самому сделать метод крамера...
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Demm, ну если просто (без ввода данных, и всяких наворотов, только сам алгоритм) - тогда вот так...
Реализация перенесена сюда: FAQ: Решение систем линейных уравнений |
Demm |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 33 Пол: Мужской Репутация: ![]() ![]() ![]() |
Большое спасибо
|
Demm |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 33 Пол: Мужской Репутация: ![]() ![]() ![]() |
Эта прога 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 порядка? |
volvo |
![]()
Сообщение
#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 |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 33 Пол: Мужской Репутация: ![]() ![]() ![]() |
Да, точно забыл свободные члены вписать :p2:
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:48 |