Как заполнить матрицу значениями в MathCAD Prime 4.0?
Есть матрица 7х7, каждый элемент матрицы вычисляется по формуле f(i, j) := i + j.
Как в MathCAD Prime 4.0 можно программно заполнить матрицу по заданной формуле?
- Вопрос задан более трёх лет назад
- 726 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Word
- +1 ещё
Как скопировать формулу из Mathcad Prime в Word и обратно?
- 1 подписчик
- 13 окт. 2023
- 132 просмотра
Лабораторная работа №2 Матричные вычисления в MathCad. Решение уравнений и систем линейных уравнений.
- Задать две матрицы: A(3,3)иB(3,3);
- Для заданных матриц выполнить действия:
- Транспонировать матрицу A;
- Вычислить обратную матрицу матрице B;
- Умножить A*B;
- Вычислить определитель матрицы А
Краткие теоретические сведения:Действия над матрицамиСоздание матрицы или вектора.
- Указать имя матрицы;
- Набрать “=”;
- Выбрать на панели «Матрицы» функцию «Создание матрицы»;
- Указать размер матрицы;
- Заполнить ячейки значениями;
Определение обратной матрицы.
- Создать матрицу;
- Набрать имя созданной матрицы и выбрать на панели «Матрицы» функцию «Инверсия»
- Набрать “=”;
Вычисление определителя матрицы.
- Создать матрицу;
- В новой строке набрать имя матрицы и выбрать функцию «Вычисление определителя» панели «Матрицы»;
- Набрать “=”
Пример выполнения лабораторной работы:Задание: I. Действия над матрицами:
Транспонировать матрицу A;
Вычислить обратную матрицу матрице B;
Умножить A*B;
Варианты заданий
II. Решение систем линейных уравнений.
1 способ. Решение системы уравнений с использованием функцииFind(). В этом случае следует придерживаться следующего алгоритма: 1) Записать ключевое слово Given 2) Составить систему уравнений (для записи знака равенства использовать [Ctrl+=]); 2) Записать функцию Find() Этот способ позволяет выполнять решение систем в символьном виде. 2 способ. Решение системы с использованием функцииlsolve(,). Алгоритм решения: 1) Создать главную матрицу системы; 2) Создать вектор правых частей; 3) Записать функцию lsolve(, ); Этот способ позволяет выполнять решение систем только в числовом формате. Пример выполнения лабораторной работы: Задание: Решить систему линейных алгебраических уравнений:
Решение систем стандартными средствам MathCad; Применение функции Find(..):
Применение функции lsolve(..):
Варианты заданий:
| 1. | ![]() |
2. | ![]() |
| 3. | ![]() |
4. | ![]() |
| 5. | ![]() |
6. | ![]() |
| 7. | ![]() |
8. | ![]() |
| 9. | ![]() |
10. | ![]() |
| 11. | ![]() |
12. | ![]() |
| 13. | ![]() |
14. | ![]() |
III. Решение уравнений n-го порядка.
Для нахождения корней выражения, имеющего вид vnx n + . + v2x 2 + v1x + v0 используется функциюpolyroots.Алгоритм решения: 1)Написать уравнение 2)Установит курсор на переменной в выражении и выбрать команду Символы Коэффициенты полинома 3) Выбрать команду Правка Вырезать 5)Напечатать := и выбрать команду Правка Вставить 6) Записать функцию polyroots( ); Пример выполнения лабораторной работы: Задание: Решить уравнение:
Варианты заданий:
| № варианта | g(x) | № варианта | g(x) |
| x 4 — 2x 3 +x 2 — 12x+ 20 | 8 | x 4 +x 3 — 17x 2 — 45x— 100 | |
| x 4 + 6x 3 +x 2 — 4x— 60 | x 4 — 5x 3 +x 2 — 15x+ 50 | ||
| x 4 — 14x 2 — 40x— 75 | x 4 — 4x 3 — 2x 2 — 20x+ 25 | ||
| x 4 —x 3 +x 2 — 11x+ 10 | x 4 + 5x 3 + 7x 2 + 7x— 20 | ||
| x 4 —x 3 — 29x 2 — 71x-140 | x 4 — 7x 3 + 7x 2 — 5x+ 100 | ||
| x 4 + 7x 3 + 9x 2 + 13x— 30 | x 4 + 10x 3 +36x 2 +70x+ 75 | ||
| x 4 + 3x 3 — 23x 2 — 55x— 150 | x 4 + 9x 3 + 31x 2 + 59x+ 60 |
7.4.1. Автоматическая генерация матриц MathCAD 12 руководство
Самым наглядным способом создания матрицы или вектора является применение первой кнопки панели инструментов Matrix (Матрицы). Однако в большинстве случаев, в частности, при программировании сложных проектов, удобнее бывает создавать массивы с помощью встроенных функций.
Создание матриц на основе некоторой функции
Наиболее удобный прием автоматизации создания матриц заключается в предварительном определении функции f (i, j), аргументом которой должны быть индексы элементов матрицы:
- matrix (м, N, f) — создание матрицы размера MхN , каждый i,j элемент которой есть f (i, j) (листинг 7.20):
- M — количество строк матрицы;
- N — количество столбцов матрицы;
- f(i,j) —функция.
Листинг 7.20. Создание матрицы на основе функции пользователя
Создание матриц для построения 3D графиков
Для создания матриц имеются еще две специфические функции, применяемые, в основном, для быстрого и эффектного представления каких-либо зависимостей в виде трехмерных графиков (типа поверхности или пространственной кривой). Все их аргументы, кроме первого (имени функции), необязательны. Рассмотрим первую из этих встроенных функций.
- CreateSpace(F( или fI, f2, f3 ) , t0,t1,tgrid,fmap ) — создание вложен ного массива, представляющего х-, у- и z-координаты параметрической пространственной кривой, заданной функцией F :
- F(t) — векторная функция из трех элементов, заданная параметрически относительно единственного аргумента t;
- f1(t) ,f2 (t), f3 (t) — скалярные функции;
- t0 — нижний предел t (по умолчанию -5);
- t1 — верхний предел t (по умолчанию 5);
- tgrid — число точек сетки по переменной t (по умолчанию 20);
- fmap — векторная функция от трех аргументов, задающая преобразование координат.
Пример использования функции CreateSpace показан на рис. 7.2. Заметьте, для построения графика кривой не потребовалось никакого дополнительного кода, кроме определения параметрической зависимости в вектор-функции F !
Рис. 7.2. Использование функции CreateSpace для построения графика трехмерной кривой
Функция создания матрицы для графика трехмерной поверхности устроена совершенно аналогично, за тем исключением, что для определения поверхности требуется не одна, а две переменных. Пример ее использования иллюстрирует рис. 7.3.
- CreateMesh(F ( или g , или f1,f2,f3),s0,s1,t0,t1,sgrid,tgrid, fmap ) — создание вложенного массива, представляющего х-, у- и z-координаты параметрической поверхности, заданной функцией F :
- F(s,t) — векторная функция из трех элементов, заданная параметрически относительно двух аргументов s и t;
- g (s, t) — скалярная функция;
- f1(s,t) ,f2 (s,t) ,f3(s,t) — скалярные функции;
- s0, t0 — нижние пределы аргументов s, t (по умолчанию -5);
- s1,t1 — верхние пределы аргументов s,t (по умолчанию 5);
- sgrid , tgrid — число точек сетки по переменным s и t (по умолчанию 20);
- fmap — векторная функция из трех элементов от трех аргументов, задающая преобразование координат.
Рис. 7.3. Использование функции CreateMesh для построения графика трехмерной поверхности
Результатом обеих рассмотренных функций CreateMesh и CreateSpace является соответствующий вложенный массив, служащий в Mathcad для представления тензора. Каждая матрица из числа трех вложенных матриц, образующих вложенный массив данных, определяет х-, у- и z -координаты точек поверхности или кривой.
Создание диагональных матриц
В Mathcad легко создать матрицы, имеющие определенное простое строение, с помощью одной из встроенных функций. Примеры использования этих функций приведены в листинге 7.21:
- identity (N) — единичная матрица размера NxN ;
- diag(v) — диагональная матрица, на диагонали которой находятся элементы вектора v:
Как заполнить матрицу в маткаде
БлогNot. MathCAD: матрица для 3D-графика
MathCAD: матрица для 3D-графика
В ряде версий MathCAD единственный объект, который можно отобразить на трёхмерном графике — матрица, строки и столбцы которой должны содержать значения f(x,y) . Типовой вопрос начинающих — есть ли какой-то общий алгоритм формирования такой матрицы для построения 3D-графика функции f(x,y) в заданных пределах и с заданным шагом?
Такой алгоритм очень прост. Рассмотрим случай, когда шаг и пределы по осям 0x и 0y одинаковы, разные границы для значений x и y легко сделать по аналогии.
Сначала проделаем всю работу «вручную».
В любом случае, сначала следует определить границы изменения аргументов a , b и саму функцию, обозначим её z(x,y) :
Границы изменения аргументов x,y и функция z(x,y)
Теперь можно действовать по одному из 2 алгоритмов.
Во-первых, мы можем определить желаемое число узлов сетки N по каждой из осей, а исходя из него вычислить шаг по аргументам h и заполнить матрицу значений функции:
Построение матрицы для 3D-графика в MathCAD: задать количество узлов сетки и рассчитать шаг по аргументам
Во-вторых, можно исходить из шага и по нему вычислить число узлов. Проблема этого способа в том, что выбранный нами шаг по аргументу может не составить целое количество интервалов сетки (например, шаг h=0.1 для интервала [0,π] ). Поэтому будем округлять вычисленное значение N вверх с помощью стандартной функции ceil . Возможно, мы рискуем при этом «прихватить» лишнюю область определения функции:
Построение матрицы для 3D-графика в MathCAD: задать шаг по аргументам и рассчитать количество узлов сетки
Обратите также внимание, что для построения 3D-графика в любой относительно новой версии MathCAD можно и не формировать матрицу, просто впишите в поле ввода графической области название функции без аргументов. Правда, пределы изменения аргументов и шаг в этом случае будет выбирать сам MathCAD:
Построение 3D-графика в MathCAD без формирования матрицы
Если нужен график не функции двух переменных, а просто неких табличных данных, сформируйте матрицу «вручную», например, введите с клавиатуры A:= (знак := вводится нажатием двоеточия на клавиатуре), нажмите комбинацию клавиш Ctrl+M (вставка матрицы), задайте количество строк и столбцов матрицы, заполните пустые элементы матрицы данными.
Если быстрее прочитать матрицу из файла, поможет код вида
A:=READPRN("data.txt")
READPRN пишется именно так, большими буквами!
Документ должен быть сохранён, и в той же папке создан текстовый файл с именем data.txt (для этого примера, можно и любое другое имя файла), содержащий разбитые по строкам элементы матрицы, скажем, такие:
1 2 3 4 5 6 7 8 9
Узелок на память
MathCAD 15 в сборке Portable (и не только в ней) может отображать трёхмерные графики неправильно (видна только пустая рамка, хотя всё построено верно). В таком случае просто делаем двойной щелчок по графику, переходим в свойствах на вкладку Общие, отключаем опцию Показать границу. и всё работает!
Баг встречался и под Windows 7, и под XP.
Второй вариант исправления — установить в настройках Windows цветность 16 бит вместо 32, проверено, помогло на современных широких мониторах.
Ну и напоследок приятный сюрприз. Нашу работу можно автоматизировать с помощью готовой функции Mathcad (только версия 15 или линейка версий Prime):
A:=CreateMesh(f,-1,1,-2,2,30,40)
Здесь f — заданная в документе функция 2 переменных, а матрица A создаётся по сетке значений x от -1 до 1 включительно с 30 узлами, значения y меняются от -2 до 2 включительно и создаётся 40 узлов сетки (количество интервалов будет на единицу меньше). Кроме того, в этом случае Mathcad может подписать оси графика не индексами узловых точек а нормальными значениями x и y:

Трехмерный график с помощью CreateMesh в Mathcad
График здесь — обычная поверхность (Surface Plot).
06.03.2014, 12:18 [25257 просмотров]



























