![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Решение СЛАУ методом Гаусса
Motion © (2005-05-02 18:28:00)Рассчитывая полином по МНК, получил СЛАУ, которое необходимо решить за Гауссом(для произвольной матрицы). Объясните, для начала как решить математически, а потом как это реализовать с помощью Delphi
Motion (2005-05-02 21:29:00) [1]На сегодня, я так понимаю, разговора больше не получится. Ладно, тогда зо завтра. Завтра утром буду здесь где-то в 9-00. Попытаюсь пока на бумаге решить.
Motion (2005-05-02 21:08:00) [2]Не знаю как дальше
Motion (2005-05-02 21:07:00) [3]Удалено модератором
Примечание: Нарушение пункта 10
begin...end (2005-05-02 21:02:00) [4]> Motion © (02.05.05 20:56) [65]
Не спешите.
> 0 3 -6 -3 -30
> 0 6 0 10 84
> 0 -3.5 13 -10.5 41
> 5 -4 -3 -2 -61
А четвёртую строку почему обидели? С ней поступаем так же, как и со второй и третьей.
Motion (2005-05-02 21:01:00) [5]Далее первую умножаю на 4 а последнюю на 3 и плюсую
Получаю:
0 3 -6 -3 -30
0 6 0 10 84
0 0 18 -42 18
15 0 -33 -18 -303
Motion (2005-05-02 20:56:00) [6]0 3 -6 -3 -30
0 6 0 10 84
0 -3.5 13 -10.5 41
5 -4 -3 -2 -61
Чтобы обнулить -3.5 я умножаю 3-ю строку на 3, 1-ю на 3.5 и плюсую. В итоге получаю -
0 3 -6 -3 -30
0 6 0 10 84
0 0 18 -42 18
5 -4 -3 -2 -61
begin...end (2005-05-02 20:51:00) [7]> Motion © (02.05.05 20:50) [63]
Пока -- да.
Motion (2005-05-02 20:50:00) [8]То есть постоянно нужно оперировать с 1-ой строкой?
Motion (2005-05-02 20:48:00) [9]Момент
begin...end (2005-05-02 20:43:00) [10]> Motion © (02.05.05 20:38) [59]
Из всех строк, кроме первой, нужно вычесть первую строку, умноженную на... ну Вы знаете, какие числа.
После этого во всех строках, кроме первой, коэффициенты перед A станут равными нулю.
А первая строка останется такой же, какой и была.
Делаем...
Motion (2005-05-02 20:39:00) [11]А дальше нужно обнулить ещё 5 элементов...а как?
Motion (2005-05-02 20:38:00) [12]Пока получил такое -
0 3 -6 -3 -30
0 6 0 10 84
0 -3.5 13 -10.5 41
5 -4 -3 -2 -61
Motion (2005-05-02 20:32:00) [13]Понял....решаю вторую систему...
Antonn (2005-05-02 20:25:00) [14]
> Первую строку мы умножали на число, чтобы в первом
> столбце числа первой и второй строки совпали.
что бы их разность равнялась нулю, таким образом, мы "убиваем" одну переменную.
begin...end (2005-05-02 20:24:00) [15]> Motion © (02.05.05 20:21) [55]
Это и есть алгоритм. Правда, пока что не всего решения, а только приведения к треугольному виду. Но и это уже очень неплохо.
Теперь даю обещанный примерчик:
4a + 9b + 2c + 7d = 122
2a + 3b + 4c + 5d = 76
2a - 3b + 4c - 5d = -8
5a - 4b - 3c - 2d = -61
Motion (2005-05-02 20:21:00) [16]Это и есть алгоритм?
Motion (2005-05-02 20:19:00) [17]И вычтем из 3-ей строки первую
Motion (2005-05-02 20:17:00) [18]А потом первую строку мы умножаем на число, чтобы у нас совпали числа первого и второго столбца первой и третей строки.
Motion (2005-05-02 20:12:00) [19]1. Из второй строки вычитаем первую, умноженую на 2
2. Из третей строки отнимаем первую умноженую на 6.5
Первую строку мы умножали на число, чтобы в первом столбце числа первой и второй строки совпали.
begin...end (2005-05-02 20:09:00) [20]> Motion © (02.05.05 20:06) [50]
Только вместо "..." должны быть конкретные числа. А ещё лучше будет, если Вы сообразите, почему мы умножали строки именно на такие числа.