Консультация № 184877
20.12.2011, 19:07
170.00 руб.
0 8 1
Задача по вычислительной математике. (лабораторная работа)
Решение необходимо реализовать в среде MathCAD 14
В соответствии с методичкой (в прикрепленном файле)
Есть частично готовое решение (в прикрепленном файле) (при желании можно воспользоваться) (присутствуют ошибки)
Необходимо решить 5-й вариант.
В методичке приведены примеры (даны исходные данные - матрицы A, B и ответы которые должны получаться). Проверьте чтоб программы выдавала такие же ответы с этими исходными данными.
В MathCAD необходимо дать комментарий к каждой строчке.
Внимание в методичке возможны ошибки!

Ссылка на файл https://rfpro.ru/upload/7059

Обсуждение

давно
Профессионал
304622
583
21.12.2011, 15:32
общий
В данном вами файле я пока нашёл такие ошибки:

1) Написано Ci,i:= -Ci,j/Ci,i
Должно быть CAi,i:= -Ci,j/Ci,i

2) Функция Zd не вычисляется из-за своей второй части (там где стоят команды break). К этому моменту рассчёт уже проделан и в последовательности приближений xt ищётся шаг, на котором выполняется требование на точность [$949$]. Там неправильно происходит обращение в матрице xt. Попозже смогу разобраться точнее. (Если интересен результат, то весь это блок от "for i..." до "c" можно удалить, оставив только xt.)
Неизвестный
21.12.2011, 17:41
общий
Адресаты:
Решение нужно 22.12.2011 (во второй половине дня). Сделайте пожалуйста. Нужно просто чтоб все корректно работало.
давно
Профессионал
304622
583
21.12.2011, 19:14
общий
Кажется нашёл: там вместо функции "модуль" поставлен матричный определитель. У них обозначения похожие. Сейчас попробую передалать файл.
давно
Профессионал
304622
583
21.12.2011, 19:47
общий
22.12.2011, 12:05
это ответ
Здравствуйте, Евгений!

Итак, я ваш файл переделал:
Файл
Как я уже написал, понадобилось исправить опечатки:
1) CA вместо C
2) Функцию модуль вместо определителя.

Написал комментарии. Не получается русских шрифт -- так что написал транслитом.

Не подставил вашего 5-го варианта. Сделайте сами: программа работает нормально -- проблем не будет.
5
Неизвестный
21.12.2011, 22:45
общий
Адресаты:
Zd(20,0.0001,CA,Db,"otvet") не работает. Пишет эта матрица должна быть квадратной.

В методичке на стр 15 в пункте проверка правильности работы написано
Gauss(A,B) = (4, -2, 7) (столбец)
а программа выдает
Gauss(A,B) = (1, -1, 2) (столбец)
В методичке ошибка?
давно
Профессионал
304622
583
22.12.2011, 11:54
общий
Извините, пожалуйста. Технические неполадки: была отправлена несохранённая версия файла. Вот правильная: Файл.
Сейчас напишу администратору, чтобы исправил ответ.

В методичке на стр 15 в пункте проверка правильности работы написано
Gauss(A,B) = (4, -2, 7) (столбец)
а программа выдает
Gauss(A,B) = (1, -1, 2) (столбец)
В методичке ошибка?


Да, конечно, ошибка. Посмотрите повнимательней: (4, -2, 7) -- это исходный вектор b.
Неизвестный
22.12.2011, 19:16
общий
Спасибо. все работает. Только если подставить мой вариант то пишет деление на ноль =). наверно в методичке ошибка.
давно
Профессионал
304622
583
23.12.2011, 16:25
общий
Только если подставить мой вариант то пишет деление на ноль =). наверно в методичке ошибка.


Действительно есть такое. Это не ошибка -- это особенность реализации алгоритма. Вам предложен метод Гаусса в самой простой форме, которая не срабатывает в некоторых отдельных случаях (в частности, в вашем №5). Решение у системы есть -- (1, 0, -1). Но по ходу преобразований на диагонали возникает нулевое значение. Это можно обойти перестановкой столбцов -- соответственно это должно быть предусмотрено в алгоритме. В вашей методичке об этом не сказано, значит не предполагалось, что вы стоклнётесь с этой проблемой. В общем, вам попались неудачно подобранные исходные данные.
Форма ответа