Консультация № 195099
31.03.2019, 16:18
0.00 руб.
0 4 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Помогите пожалуйста с матрицами MathCad

Cформировать и вывести на экран матрицу А с числом строк m и числом столбцов n,согласно приведенному выражению (m=6 n=5)
Ai,j=0,3sin(i+4j)
Найти матрицы В и В1,которые равны транспонированной матрице А, используя 2 способа:
а)цикл по строкам и столбцам (для В)
б)непосредственное транспонирование (для В1)
Найти матрицы С и С1,которые являются произведением А на В,используя два способа:
а)тройной цикл по формуле перемножения матриц (для С)
Примечание: для формирования конечных значений переменных циклов использовать функции вычисления числа строк и столбцов матриц А и В.
б)непосредственное перемножение (для С1)
Найти опредилитель матрицы D :=C-E, где Е - единичная матрица того же размера сто и С.

Обсуждение

давно
Мастер-Эксперт
259041
7459
03.04.2019, 12:04
общий
Адресаты:
Я уже 2й день вожусь с Вашей задачей. В Вашей методичке из rfpro.ru/question/195073 ничего не описано про "тройной цикл по формуле перемножения матриц" . В интернете все нормальные пользователи используют готовые функции скалярного и векторного произведения матриц и векторов (2й способ). "тройной цикл" (1й способ) по всем индексам - пришлось догадываться интуитивно. Ну и жопу придумали Ваши преподы!
давно
Посетитель
402384
56
03.04.2019, 13:20
общий
Полностью с Вами согласна
давно
Мастер-Эксперт
259041
7459
03.04.2019, 17:08
общий
это ответ
Здравствуйте, Anna!
Формирование матрицы A выполнено в 2х циклах : Сначала внутренний цикл по строкам первого столбца накапливает ячеи сверху вниз (Функция stack собирает вектор-столбец). Затем внешний цикл накапливает матрицу из собранных столбцов (функция augment объединяет столбцы бок о бок). К сожалению, блок программирования Маткада не содержит оператор уничтожения имени переменной (исключение Prime-версия). Поэтому, в каждый цикл пришлось добавить условный оператор if , для первого элемента каждого цикла он выполняет обычное присваивание, без накопления.

Транспонирование матрицы A в B выполнено аналогично в двойном цикле по строкам и столбцам. Только значения ячеек выбраны не из синус-функции , а из ячеек матрицы A .

Произведение матриц А на В можно было выполнить также в двойном цикле. Но Ваши преподаватели затребовали тройной цикл, и я заменил оператор суммирования на 3й внутренний цикл.

Функция identity(n) - создаёт Единичную матрицу n·n (нулевая матрица с единицами по диагонали).



Скриншоты и маткад-файл прилагаю. Для уменьшения объёма выводимой грфической информации я уменьшил кол-во цифр после запятой до 2х. Если мой файл откроется в Вашем Маткаде некорректно (с наложением областей), Вы можете подстроить отображение из меню Формат \ Результат \ вкладка ФорматЧисел \ ЧислоДесятичныхЗнаков либо растащить выделенные области мышкой.
Вопросы, задавайте в мини-форуме.
Прикрепленные файлы:
6904b8d0c8c2b3a239923935fdcb133b23da2472.zip
5
давно
Посетитель
402384
56
04.04.2019, 14:33
общий
спасибо большое
Форма ответа