Как заполнить матрицу в маткаде
Перейти к содержимому

Как заполнить матрицу в маткаде

  • автор:

Как заполнить матрицу значениями в MathCAD Prime 4.0?

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

  • Вопрос задан более трёх лет назад
  • 726 просмотров

Комментировать

Решения вопроса 0

Ответы на вопрос 0

Ваш ответ на вопрос

Войдите, чтобы написать ответ

word

  • Word
  • +1 ещё

Как скопировать формулу из Mathcad Prime в Word и обратно?

  • 1 подписчик
  • 13 окт. 2023
  • 132 просмотра

Лабораторная работа №2 Матричные вычисления в MathCad. Решение уравнений и систем линейных уравнений.

  1. Задать две матрицы: A(3,3)иB(3,3);
  2. Для заданных матриц выполнить действия:
    1. Транспонировать матрицу A;
    2. Вычислить обратную матрицу матрице B;
    3. Умножить A*B;
    4. Вычислить определитель матрицы А

Краткие теоретические сведения:Действия над матрицамиСоздание матрицы или вектора.

  1. Указать имя матрицы;
  2. Набрать “=”;
  3. Выбрать на панели «Матрицы» функцию «Создание матрицы»;
  4. Указать размер матрицы;
  5. Заполнить ячейки значениями;

Определение обратной матрицы.

  1. Создать матрицу;
  2. Набрать имя созданной матрицы и выбрать на панели «Матрицы» функцию «Инверсия»
  3. Набрать “=”;

Вычисление определителя матрицы.

  1. Создать матрицу;
  2. В новой строке набрать имя матрицы и выбрать функцию «Вычисление определителя» панели «Матрицы»;
  3. Набрать “=”

Пример выполнения лабораторной работы:Задание: 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

Трехмерный график с помощью CreateMesh в Mathcad

График здесь — обычная поверхность (Surface Plot).

06.03.2014, 12:18 [25257 просмотров]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *