Как создать массив в mathcad
В Mathcad данные, представленные в виде столбца, получили наименование вектор, а данные, представленные в виде таблицы, получили название матрица. Общее название для вектора и матрицы, аналогично с классической математикой, — массив.
Массив в Mathcad можно задать несколькими способами:
- ввести команду Вставка, Матрица;
- нажать комбинацию клавиш Ctrl + M;
- щелкнуть мышью по кнопке “Вектор или матрица” на панели инструментов “Матрица”.
Для задания размеров массива в диалоговом окне “Вставить Матрицу” указать требуемое количество колонок (столбцов) и строк. Допускается редактирование массива путем добавления или удаления строк и столбцов. Для выполнения операции редактирования массива необходимо поместить курсор рядом с элементом массива, правее которого вставляется (удаляется) колонка или ниже которого вставляется (удаляется) строка. Активизируется диалоговое окно “Вставить Матрицу”, задается количество колонок или строк и выполняется команда “Вставить” или “Удалить”.
При расчетах в Mathcad обычно оперируют именами массивов и дальнейшие операции выполняются над именами массивов. Для обращения к элементу массива используются нижние индексы. По умолчанию индексация элементов массива начинается с 0. Чтобы установить начальную индексацию элементов масссива с 1, необходимо воспользоваться диалоговым окном “Math Options” или изменить значение параметра ORIGIN в тексте задачи. Например:
2 Основы работы в MathCad
Рабочее поле программы представляет из себя безразмерное полотно, состоящее из множества листов, разделенных линиями. Формат листа и размеры полей задаются в меню File►Page Setup. Набирать документ можно перемещаясь с листа на лист вправо или вниз. Но следует помнить, что вычисления в MATHCAD происходят строго слева направо и сверху вниз в рамках всего полотна.
Переменные можно обозначать буквами английского, русского и греческого алфавитов. Имя переменной может состоять из любого количества букв, может содержать цифры (только не первым символом). Прописные и строчные переменные считаются разными (например, Х и х). С помощью горячей клавиши «.» на русском шрифте можно установить текстовый индекс рядом с переменной (например, Ne или R1). Обозначение функций осуществляется как в математике (например, f(x)).
Для задания числового значения или формулы для переменной необходимо после имени переменной набрать знак присваивания «:=». Для вывода значения переменной на экран следует набрать знак «=».
При наборе и редактировании выражений используйте клавиши перемещения курсора и пробел, которые позволят установить уголок редактирования в нужное положение.
Все комментарии выполняются в текстовой области, которая вызывается с помощью меню Insert►Text Region.
Рекомендуется при наборе документа переходить на следующий лист, расположенный внизу, а не справа, во избежание возможных «пересечений» расчетов и формул, и как следствие возникновения ошибок или искажения результатов. Это связано с порядком проведения вычислений в MATHCAD, о чем говорилось выше.
Следует помнить, что и в рамках одного листа нужно соблюдать порядок вычислений. То есть прежде чем считать выражение, строить график и т.п., необходимо задать все величины, необходимые для расчета, или выше или слева от объекта вычислений.
3 Задание и обработка массивов
Массив – это особый вид переменной, представляющий из себя совокупность чисел. Одномерный массив называется вектором, двумерный – матрицей.
3.1 Обозначение массивов и элементов массивов
Массивы можно обозначать аналогично обычным переменным, как это рассматривалось в разделе 2. Элементы массива указываются с индексом (например, A1 или xi,j), который ставится с помощью знака «Xn» с панели Matrix. Следует различать текстовый индекс и индекс элемента массива.
За начало нумерации элементов массива отвечает встроенная переменная ORIGIN, имеющая по умолчанию значение 0. Для изменения значения данной переменной можно воспользоваться командой меню Tools►Worksheet Options или набрать команду в документе (например, ORIGIN:=1).
3.2 Задание массивов
Создать массив в MATHCAD можно тремя способами:
– с помощью шаблона, вызываемого через меню Insert►Matrix. При этом появляется окно, где можно задать количество строк и столбцов будущего массива. Данный способ самый наглядный.
– с помощью дискретной переменной. При этом должна быть известна формула вычисления массива. Например,
МАССИВЫ В ПАКЕТЕ MathCAD
В этой теме будут рассмотрены следующие вопросы: создание массивов, основные операции над массивами и часто используемые функции обработки массивов.
Массивы в пакете MathCAD
При работе с массивами используются такие понятия, как скаляр, вектор и матрица. Одиночное число называется скаляром (в программировании — простая переменная). Общий термин для вектора или матрицы — массив. В одномерном массиве (векторе) положение элемента определяется одним индексом (например, х,-). В двумерном массиве (матрице), который имеет вид прямоугольной таблицы, положение элемента определяется двумя индексами (например, Ду). Первый индекс задает номер строки, а второй — номер столбца, на пересечении которых находится данный элемент. Количество строк и столбцов матрицы определяет размер матрицы. Вектор можно рассматривать как матрицу, содержащую один столбец.
Для работы с векторами и матрицами система MathCAD использует вкладку Матрицы/таблицы строки меню, изображенную на рис. 3.1.

Рис. 3.1. Содержимое вкладки Матрицы/таблицы
Операторы работы с векторами и матрицами выбираются при нажатии на кнопку [ м г] (см. рис. 3.1):
- ?у — оператор векторизации, поэлементно применяет операторы или функции к векторам или матрицам;
- — задание индекса у элемента массива;
М® — выделение столбца матрицы;
— выделение строки матрицы;
Л/ т _ транспонирование вектора или матрицы;
||х|| — вычисление нормы вектора или матрицы;
х — — оператор векторного произведения, вычисляет векторное произведение двух векторов или вектора и матрицы.
Создание массивов
Создание массива с использованием шаблона. Для создания массива необходимо ввести переменную — имя массива, ввести оператор присваивания и нажать кнопку Вставить матрицу [. ]. В появившемся шаблоне выделить мышью требуемую конфигурацию массива (рис. 3.2).
Переход от одного поля шаблона к другому осуществляется с помощью клавиши [Tab] или щелчком мыши непосредственно на нужном поле. Значением элемента матрицы может быть число или выражение. При выводе элементов массива введенные выражения вычисляются.
Для обращения к элементу массива вводится имя массива, нажимается клавиша «левая квадратная скобка» (т.е. « [ » ) или кнопка М., а затем вводятся нужные индексы (или индексные выражения). После ввода индексов нужно выйти из строки нижних индексов, нажав клавишу [—>].

Вставить Вставить ж Операторы с Функции с вектс матрицу таблицу вектсрами/матр и цам и ма’рицам i
Вставить матрицу 2×3
Рис. 3.2. Вставка матрицы 2×3
Создание массива вводом его элементов с клавиатуры. Чтобы вставить и заполнить вектор, надо ввести переменную, затем оператор присваивания и «[» (левую квадратную скобку). Появится 1-элементный массив:

Ввод элементов вектора в него осуществляется последовательно, нажимая клавишу [Tab] после каждого введенного числа, чтобы вставить новую строку.
Чтобы вставить и заполнить матрицу, надо, как показано выше, создать 1-элементный массив. Элементы 1-й строки матрицы вводятся построчно, нажимая клавиши [Shift+Пробел] после каждого числа. Переход на 2-ю строку производится по нажатию клавиши [Shift+Enter] или установкой указателя на последний элемент строки и нажатием клавиши [Tab]. Все последующие элементы заносятся последовательным вводом элемента и нажатием клавиши [Tab].
Замечание 3.1.1. В пакете MathCAD максимальное число индексов у элементов массива не превосходит 2. Однако каждый элемент массива в свою очередь может являться вектором или матрицей. Это позволяет создавать массивы практически любой размерности.
Пример 3.2.1. Используя разные способы вставки векторов, создайте два вектора а и Ь. Вычислите их сумму, скалярное и векторное произведение.
Решение. Конструкции, осуществляющие требуемые вычисления, показаны на рис. 3.3. Для вычисления скалярного произведения двух векторов перемножим их (рис. 3.3 б).
Для получения векторного произведения двух векторов введем оператор умножения между ними, поместим курсор в левую часть области формул и дважды нажмем клавишу [Пробел], чтобы выделить область формул. На вкладке Математика, в разделе Операторы, выберем оператор Векторизация в списке Векторы и матрицы. Введем [=], чтобы вычислить выражение. Векторы будут поэлементно перемножены (рис. 3.3 в).
Работа с массивами
Ранжированная переменная отличается от вектора (одномерного массива) тем, что невозможно использование ее отдельных значений. При необходимости иметь доступ к каждому значению переменной со многими компонентами она должна быть задана в виде одномерного (вектора) и двумерного (матрицы) массива.

Местоположение элемента массива задается одним индексом для вектора и двумя для матрицы. Индексы могут быть только положительными целыми числами. Для ввода индекса используется знак « [ » — прямая открывающая скобка.
Для задания массивов можно либо воспользоваться командой Matrices меню Math, либо нажать комбинацию клавиш Ctrl+V, либо щелкнуть на значке с изображением шаблона матрицы. Любое из этих действий вызывает появление диалогового окна, в котором надо указать количество строк m и столбцов n в массиве. При m=1 получим вектор-столбец, а при n=1 — вектор-строку.
В отношении массивов действуют те же правила присваивания и вывода, что и для обычных переменных. В частности, с помощью оператора присваивания можно создать массив заданного размера и заданного типа без ручного заполнения шаблона (рисунок 2.1.).

Рис. 2.1 Пример создания матриц без использования шаблонов матриц
Для работы с массивами Mathcad содержит ряд операторов и функций. Ниже представлены операторы для работы с векторами и матрицами. В таблице используются следующие обозначения: V — для векторов, M — для матриц, Z — для скалярных величин.
Похожие публикации:
- Где зарегистрирован telegram
- Где находятся файлы telegram
- Для чего предназначена функция root в mathcad
- Как в archicad поменять язык на русский
Массивы
В структуре данных массива можно хранить несколько переменных одного типа. Чтобы объявить массив, следует указать тип его элементов. Если требуется, чтобы массив мог хранить элементы любого типа, можно указать object в качестве его типа. В унифицированной системе типов C# все типы, стандартные и определяемые пользователем, ссылочные типы и типы значений напрямую или косвенно наследуются из Object.
type[] arrayName;
Массив имеет следующие свойства:
- Массив может быть одномерным, многомерным или многомерным.
- Число измерений задается при объявлении переменной массива. Длина каждого измерения устанавливается при создании экземпляра массива. Эти значения нельзя изменить во время существования экземпляра.
- Массив массивов является массивом массивов, и каждый массив элементов имеет значение null по умолчанию.
- Массивы индексируются от нуля: массив с n элементами индексируется от 0 до n-1 .
- Элементы массива могут иметь любой тип, в том числе тип массива.
- Типы массивов — это ссылочные типы, производные от абстрактного базового типа Array. Все массивы реализуют IList и IEnumerable. Для итерации по массиву можно использовать оператор foreach. Одномерные массивы также реализуют IList и IEnumerable .
Элементы массива можно инициализировать в известные значения при создании массива. Начиная с C# 12, все типы коллекций можно инициализировать с помощью выражения Collection. Элементы, которые не инициализированы, имеют значение по умолчанию. Значение по умолчанию — это 0-разрядный шаблон. Все ссылочные типы (включая типы, не допускающие значение NULL), имеют значения null . Все типы значений имеют 0-разрядные шаблоны. Это означает, Nullable.HasValue что свойство имеет false значение, и Nullable.Value свойство не определено. В реализации Value .NET свойство создает исключение.
В следующих примерах создаются одномерные массивы, многомерные массивы и массивы массивов:
// Declare a single-dimensional array of 5 integers. int[] array1 = new int[5]; // Declare and set array element values. int[] array2 = [1, 2, 3, 4, 5, 6]; // Declare a two dimensional array. int[,] multiDimensionalArray1 = new int[2, 3]; // Declare and set array element values. int[,] multiDimensionalArray2 = < < 1, 2, 3 >, < 4, 5, 6 >>; // Declare a jagged array. int[][] jaggedArray = new int[6][]; // Set the values of the first array in the jagged array structure. jaggedArray[0] = [1, 2, 3, 4];
Одномерные массивы
Одномерный массив — это последовательность таких элементов. Доступ к элементу осуществляется через его индекс. Индекс — это порядковое положение в последовательности. Первый элемент в массиве находится в индексе 0 . Для создания одномерного массива используется оператор new и указывается тип элементов массива и число элементов. В следующем примере объявляются и инициализируется одномерные массивы:
int[] array = new int[5]; string[] weekDays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; Console.WriteLine(weekDays[0]); Console.WriteLine(weekDays[1]); Console.WriteLine(weekDays[2]); Console.WriteLine(weekDays[3]); Console.WriteLine(weekDays[4]); Console.WriteLine(weekDays[5]); Console.WriteLine(weekDays[6]); /*Output: Sun Mon Tue Wed Thu Fri Sat */
Первое объявление объявляет неинициализированный массив из пяти целых чисел от array[0] до array[4] . Элементы массива инициализируются до значения по умолчанию для типа элемента. Для целых чисел это 0 . Второе объявление объявляет массив строк и инициализирует все семь значений этого массива. Оператор foreach выполняет итерацию элементов массива weekday и выводит все значения. Для одномерных массивов оператор обрабатывает элементы в увеличении порядка индексов foreach , начиная с индекса 0 и заканчивая индексом Length — 1 .
Передача одномерных массивов в качестве аргументов
Инициализированный одномерный массив можно передать в метод. В следующем примере массив строк инициализируется и передается в качестве аргумента в метод DisplayArray для строк. Этот метод отображает элементы массива. Затем метод ChangeArray размещает элементы массива в обратном порядке, а метод ChangeArrayElements изменяет первые три элемента массива. После возврата каждого метода метод DisplayArray показывает, что передача массива по значению не препятствует изменению элементов массива.
class ArrayExample < static void DisplayArray(string[] arr) =>Console.WriteLine(string.Join(" ", arr)); // Change the array by reversing its elements. static void ChangeArray(string[] arr) => Array.Reverse(arr); static void ChangeArrayElements(string[] arr) < // Change the value of the first three array elements. arr[0] = "Mon"; arr[1] = "Wed"; arr[2] = "Fri"; >static void Main() < // Declare and initialize an array. string[] weekDays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; // Display the array elements. DisplayArray(weekDays); Console.WriteLine(); // Reverse the array. ChangeArray(weekDays); // Display the array again to verify that it stays reversed. Console.WriteLine("Array weekDays after the call to ChangeArray:"); DisplayArray(weekDays); Console.WriteLine(); // Assign new values to individual array elements. ChangeArrayElements(weekDays); // Display the array again to verify that it has changed. Console.WriteLine("Array weekDays after the call to ChangeArrayElements:"); DisplayArray(weekDays); >> // The example displays the following output: // Sun Mon Tue Wed Thu Fri Sat // // Array weekDays after the call to ChangeArray: // Sat Fri Thu Wed Tue Mon Sun // // Array weekDays after the call to ChangeArrayElements: // Mon Wed Fri Wed Tue Mon Sun
Многомерные массивы
Массивы могут иметь несколько измерений. Например, следующие объявления создают четыре массива: два имеют два измерения, два имеют три измерения. Первые два объявления объявляют длину каждого измерения, но не инициализировать значения массива. Во втором двух объявлениях используется инициализатор для задания значений каждого элемента в многомерном массиве.
int[,] array2DDeclaration = new int[4, 2]; int[,,] array3DDeclaration = new int[4, 2, 3]; // Two-dimensional array. int[,] array2DInitialization = < < 1, 2 >, < 3, 4 >, < 5, 6 >, < 7, 8 >>; // Three-dimensional array. int[,,] array3D = new int[,,] < < < 1, 2, 3 >, < 4, 5, 6 >>, < < 7, 8, 9 >, < 10, 11, 12 >> >; // Accessing array elements. System.Console.WriteLine(array2DInitialization[0, 0]); System.Console.WriteLine(array2DInitialization[0, 1]); System.Console.WriteLine(array2DInitialization[1, 0]); System.Console.WriteLine(array2DInitialization[1, 1]); System.Console.WriteLine(array2DInitialization[3, 0]); System.Console.WriteLine(array2DInitialization[3, 1]); // Output: // 1 // 2 // 3 // 4 // 7 // 8 System.Console.WriteLine(array3D[1, 0, 1]); System.Console.WriteLine(array3D[1, 1, 2]); // Output: // 8 // 12 // Getting the total count of elements or the length of a given dimension. var allLength = array3D.Length; var total = 1; for (int i = 0; i < array3D.Rank; i++) < total *= array3D.GetLength(i); >System.Console.WriteLine($" equals "); // Output: // 12 equals 12
Для многомерных массивов элементы пересекаются таким образом, что индексы самого правого измерения увеличиваются сначала, а затем следующее левое измерение и т. д. до самого левого индекса. В следующем примере перечисляется как 2D, так и трехмерный массив:
int[,] numbers2D = < < 9, 99 >, < 3, 33 >, < 5, 55 >>; foreach (int i in numbers2D) < System.Console.Write($""); > // Output: 9 99 3 33 5 55 int[,,] array3D = new int[,,] < < < 1, 2, 3 >, < 4, 5, 6 >>, < < 7, 8, 9 >, < 10, 11, 12 >> >; foreach (int i in array3D) < System.Console.Write($""); > // Output: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
В массиве 2D можно считать левый индекс строкой и правым индексом в качестве столбца .
Однако с многомерными массивами, используя вложенный цикл, вы можете более контролировать порядок обработки элементов массива:
int[,,] array3D = new int[,,] < < < 1, 2, 3 >, < 4, 5, 6 >>, < < 7, 8, 9 >, < 10, 11, 12 >> >; for (int i = 0; i < array3D.GetLength(0); i++) < for (int j = 0; j < array3D.GetLength(1); j++) < for (int k = 0; k < array3D.GetLength(2); k++) < System.Console.Write($""); > System.Console.WriteLine(); > System.Console.WriteLine(); > // Output (including blank lines): // 1 2 3 // 4 5 6 // // 7 8 9 // 10 11 12 //
Передача многомерных массивов в качестве аргументов
Инициализированный многомерный массив можно передать в метод так же, как и одномерный массив. В следующем коде показано разделяемое объявление метода печати, который принимает в качестве аргумента двухмерный массив. Новый массив можно инициализировать и передать за один шаг, как показано в следующем примере. В следующем примере инициализируется двухмерный массив целых чисел, который передается в метод Print2DArray . Этот метод отображает элементы массива.
static void Print2DArray(int[,] arr) < // Display the array elements. for (int i = 0; i < arr.GetLength(0); i++) < for (int j = 0; j < arr.GetLength(1); j++) < System.Console.WriteLine("Element(,)=", i, j, arr[i, j]); > > > static void ExampleUsage() < // Pass the array as an argument. Print2DArray(new int[,] < < 1, 2 >, < 3, 4 >, < 5, 6 >, < 7, 8 >>); > /* Output: Element(0,0)=1 Element(0,1)=2 Element(1,0)=3 Element(1,1)=4 Element(2,0)=5 Element(2,1)=6 Element(3,0)=7 Element(3,1)=8 */
Массивы массивов
Массив массивов — это массив, элементы которого являются массивами и могут быть различных размеров. Многообразный массив иногда называется массивом массивов. Его элементы являются ссылочными типами и инициализированы в null . В следующих примерах показано, как объявлять и инициализировать массивы массивов, а также получать доступ к ним. Первый пример объявляется jaggedArray в одной инструкции. Каждый содержащийся массив создается в последующих инструкциях. Второй пример jaggedArray2 объявлен и инициализирован в одной инструкции. Массивы массивов и многомерные массивы можно смешивать. Последним примером jaggedArray3 является объявление и инициализация одномерного массива, содержащего три двухмерных элемента массива разных размеров.
int[][] jaggedArray = new int[3][]; jaggedArray[0] = [1, 3, 5, 7, 9]; jaggedArray[1] = [0, 2, 4, 6]; jaggedArray[2] = [11, 22]; int[][] jaggedArray2 = [ [1, 3, 5, 7, 9], [0, 2, 4, 6], [11, 22] ]; // Assign 77 to the second element ([1]) of the first array ([0]): jaggedArray2[0][1] = 77; // Assign 88 to the second element ([1]) of the third array ([2]): jaggedArray2[2][1] = 88; int[][,] jaggedArray3 = [ new int[,] < , >, new int[,] < , , >, new int[,] < , , > ]; Console.Write("", jaggedArray3[0][1, 0]); Console.WriteLine(jaggedArray3.Length);
Элементы массива должны быть инициализированы перед их использованием. Каждый из элементов является массивом. Кроме того, можно использовать инициализаторы для заполнения элементов массива значениями. При использовании инициализаторов не требуется размер массива.
В этом примере создается массив, элементы которого являются массивами. Все элементы массива имеют разный размер.
// Declare the array of two elements. int[][] arr = new int[2][]; // Initialize the elements. arr[0] = [1, 3, 5, 7, 9]; arr[1] = [2, 4, 6, 8]; // Display the array elements. for (int i = 0; i < arr.Length; i++) < System.Console.Write("Element(): ", i); for (int j = 0; j < arr[i].Length; j++) < System.Console.Write("", arr[i][j], j == (arr[i].Length - 1) ? "" : " "); > System.Console.WriteLine(); > /* Output: Element(0): 1 3 5 7 9 Element(1): 2 4 6 8 */
Неявно типизированные массивы
Можно создать неявно типизированный массив, в котором тип экземпляра массива выводится из элементов, указанных в инициализаторе массива. Правила для любой неявно типизированной переменной также применяются к неявно типизированным массивам. Дополнительные сведения см. в разделе Неявно типизированные локальные переменные.
В следующих примерах показано, как создать неявно типизированный массив:
int[] a = new[] < 1, 10, 100, 1000 >; // int[] // Accessing array Console.WriteLine("First element: " + a[0]); Console.WriteLine("Second element: " + a[1]); Console.WriteLine("Third element: " + a[2]); Console.WriteLine("Fourth element: " + a[3]); /* Outputs First element: 1 Second element: 10 Third element: 100 Fourth element: 1000 */ var b = new[] < "hello", null, "world" >; // string[] // Accessing elements of an array using 'string.Join' method Console.WriteLine(string.Join(" ", b)); /* Output hello world */ // single-dimension jagged array int[][] c = [ [1,2,3,4], [5,6,7,8] ]; // Looping through the outer array for (int k = 0; k < c.Length; k++) < // Looping through each inner array for (int j = 0; j < c[k].Length; j++) < // Accessing each element and printing it to the console Console.WriteLine($"Element at c[][] is: "); > > /* Outputs Element at c[0][0] is: 1 Element at c[0][1] is: 2 Element at c[0][2] is: 3 Element at c[0][3] is: 4 Element at c[1][0] is: 5 Element at c[1][1] is: 6 Element at c[1][2] is: 7 Element at c[1][3] is: 8 */ // jagged array of strings string[][] d = [ ["Luca", "Mads", "Luke", "Dinesh"], ["Karen", "Suma", "Frances"] ]; // Looping through the outer array int i = 0; foreach (var subArray in d) < // Looping through each inner array int j = 0; foreach (var element in subArray) < // Accessing each element and printing it to the console Console.WriteLine($"Element at d[][] is: "); j++; > i++; > /* Outputs Element at d[0][0] is: Luca Element at d[0][1] is: Mads Element at d[0][2] is: Luke Element at d[0][3] is: Dinesh Element at d[1][0] is: Karen Element at d[1][1] is: Suma Element at d[1][2] is: Frances */
В предыдущем примере обратите внимание, что с неявно типизированными массивами квадратные скобки не используются слева от инструкции инициализации. Кроме того, многомерные массивы инициализированы так new [] же, как и одномерные массивы.
При создании анонимного типа, содержащего массив, этот массив необходимо неявно типизировать в инициализаторе объекта типа. В следующем примере contacts представляет собой неявный типизированный массив анонимных типов, каждый из которых содержит массив с именем PhoneNumbers . Ключевое var слово не используется внутри инициализаторов объектов.
var contacts = new[] < new < Name = " Eugene Zabokritski", PhoneNumbers = new[] < "206-555-0108", "425-555-0001" >>, new < Name = " Hanying Feng", PhoneNumbers = new[] < "650-555-0199" >> >;
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
The .NET documentation is open source. Provide feedback here.
Обратная связь
Отправить и просмотреть отзыв по
Как задать вектор в маткаде
Нижняя граница индексации в MathCAD определена системной переменной ORIGIN. По умолчанию ORIGIN=0. Значение переменной можно переопределить. Например, ORIGIN=1.
Векторы и матрицы в MathCAD можно задавать путем ввода их элементов. Для ввода индекса элемента массива используется символ – [.
Поэлементный ввод массива Х
| Вводимые символы | Отображаемые символы |
| X [ 1 Shift+: 5 | X1:=5 |
| X [ 2 Shift+: 8 | X2:= 8 |
| X [ 3 Shift+: 10 | X3:= 10 |
Поэлементный ввод матрицы А
| Вводимые символы | Отображаемые символы |
| A [ 1,1 Shift+: 0.1 | A11 := 0.1 |
| A [ 1,2 Shift+: -2.5 | A12 := -2.5 |
| A [ 2,1 Shift+: -1.0 | A21 := -1.0 |
| A [ 2,2 Shift+: 5.2 | A22 := 5.2 |


Для операций с матрицами и векторами предназначена панель Matrix, которая открывается щелчком по кнопке в панели математических инструментов.

ПанельMatrix содержит следующие кнопки:

– определение размеров матрицы;
– ввод элемента массива
;
– вычисление матрицы, обратной к данной
;
– вычисление определителя матрицы
;
– оператор векторизации (поэлементные операции с векторами и матрицами)
;
– определение столбца матрицы
;
– транспонирование матрицы
;

– определение ранжированной переменной;

– вычисление скалярного произведения векторов;

– вычисление векторного произведения векторов;

– вычисление суммы компонент вектора.

– визуализация цифровой информации.

Действия, которые необходимо выполнить, чтобы ввести матрицу в рабочий документ при помощи кнопки панели Matrix:
1. Ввести с клавиатуры имя матрицы и знак присваивания;

2. Щелчком по кнопке открыть окно диалога:

3. Определить число строк (Rows) и число столбцов (Columns) будущей матрицы;
4. Закрыть окно диалога, щелкнув по кнопке OK;
5. Ввести элементы матрицы, установив курсор в поле ввода, которое появится справа от знака присваивания:




Функции определения матриц и операции с блоками матриц:
matrix(m,n,f) – создает и заполняет матрицу A=ij> размерности m на n, каждый элемент которой aij равен значению функции f(i,j);
diag(v) – создает диагональную матрицу, элементы главной диагонали которой хранятся в векторе v;
identity(n) – создает единичную матрицу порядка n;
augment(A,B) – из матриц А и В формируется третья матрица, первые столбцыкоторой содержат матрицу А, а последние — матрицу В (матрицы А и В должны иметь одинаковое число строк);
stack(A,B) – из матриц А и В формируется третья матрица, первые строкикоторой содержат матрицу А, а последние — матрицу В (матрицы А и В должны иметь одинаковое число столбцов);
submatrix(A,l,k,p,r) – формирует матрицу, которая является блоком матрицы А, расположенным в строках с l по k и в столбцах с p по r (l
Re(A) – возвращает матрицу (вектор) действительных частей матрицы (вектора) А с комплексными элементами;
Im(A) – возвращает матрицу (вектор) мнимых частей матрицы (вектора) А с комплексными элементами;
Функции вычисления различных числовых характеристик матриц:
last(v) – вычисление номера последнего элемента вектора v;
length(v) – вычисление количества элементов вектора v;
rows(A) – вычисление числа строк в матрице А;
cols(A) – вычисление числа столбцов в матрице А;
max(A) – вычисление наибольшего элемента в матрице (векторе) А;
min(A) – вычисление наименьшего элемента в матрице (векторе) А;
mean(A) – вычисление среднего значения матрицы (вектора) А;
tr(A) – вычисление следа (суммы диагональных элементов) квадратной матрицы А;
ranc(A) – вычисление ранга матрицы А;
Функции, реализующие численные алгоритмы:
rref(A) – приведение матрицы А к ступенчатому виду;
Читайте также: Как добавить гиф в сторис инстаграм
geninv(A) – вычисляет матрицу, левую обратную к матрице А, L∙A=E, где Е – единичная матрица размером n×n, L – прямоугольная матрица размером n×m, А – прямоугольная матрица размером m×n;
lsolve(A,b) – решение системы линейных алгебраических уравнений A∙x=b.
lu(A) – выполняет треугольное разложение матрицы А: A=С∙L∙U, где L и U – соответственно нижняя и верхняя треугольные матрицы, все четыре матрицы квадратные и одного порядка;
qr(A) – выполняет разложение матрицы А: A=Q∙R, где Q – ортогональная матрица, а R – верхняя треугольная матрицы;
cholesky(A) – выполняет разложение матрицы А по схеме Холецкого: А=L∙L T , где А — квадратная, симметричная, положительно определенная матрица, L – треугольная матрица;
sort(v) – сортировка элементов вектора v в порядке возрастания их значений;
reverse(v) – перестановка элементов вектора v в обратном порядке;
csort(A,n) – перестановка строк матрицы А таким образом, чтобы отсортированным оказался n-й столбец;
rsort(A,n) – перестановка столбцов матрицы А таким образом, чтобы отсортированной оказалась n-я строка.
ЗАДАЧА 1. Сформировать матрицу H из элементов матрицы D, исключив третий столбец и вторую строку.
ЗАДАЧА 2. Сформировать матрицу H следующим образом. Первая и последняя строки равны строкам матрицы D, остальные совпадают с матрицей C.

ЗАДАЧА 3. Сформировать матрицу таким образом, чтобы элементы на главной диагонали были равны 1, выше главной диагонали – 2, а ниже – 3.

ЗАДАЧА 4. Элементы матрицы формируются по формуле . Сформировать вектор из максимальных элементов столбцов матрицы А. Найти сумму элементов матрицы, расположенных в четных строках.

ЗАДАЧА 5. Выполнить действия над матрицами А, В, С:

ЗАДАЧА 6. Решить систему линейных уравнений при помощи правила Крамера:
Для решения поставленной задачи необходимо выполнить следующие действия:
1. Сформировать матрицу системы А и вектор правых частей b.
2. Вычислить главный определитель ∆.
3. Сформировать вспомогательные матрицы (удобно скопировать матрицу А несколько раз и последовательно заменять в ней столбцы на вектор b) для вычисления определителей ∆i;
4. Вычислить определители ∆i;
5. Найти решение системы по формуле xi=∆i/∆.


ЗАДАЧА 7. Решить систему линейных уравнений методом обратной матрицы.
1. Сформировать матрицу коэффициентов и вектор свободных членов системы.
2. Решить систему, представив вектор неизвестных как произведение матрицы, обратной к матрице системы и вектора свободных членов.

ЗАДАЧА 8. Решить систему линейных уравнений методом Гаусса.
Порядок решения задачи:
1. Сформировать матрицу коэффициентов и вектор свободных членов заданной системы.
2. Сформировать расширенную матрицу системы при помощи функции augment(A,b);
3. Используя функцию rref(A), привести расширенную матрицу к ступенчатому виду.
4. Получить решение системы, выделив последний столбец матрицы, полученной в предыдущем пункте.
5. Выполнить проверку Ax-B=0.

ЗАДАЧА 9. Решить систему при помощи функции lsolve:


Пример системы, которая не имеет решений:


Пример системы, которая имеет бесконечное множество решений



ЗАДАЧА 10. Решить систему при помощи решающего блока.
Решающий блок начинается с ключевого слова Given (Дано), которое необходимо ввести с клавиатуры.
Правее и ниже ключевого слова записываются уравнения системы.
Знак равенства в уравнениях вводится при помощи клавиш Ctrl+= или выбирается на панели инструментов Boolean.
Правее и ниже последнего уравнения системы вводится функция Find(x1,x2,…xn) (Найти), в скобках перечисляются имена переменных, значения которых нужно найти.
Читайте также: Как вставить лицо на другую фотографию
Численное решение системы можно получить, поставив знак равенства после функции Find(x1,x2,…xn).
Символьное решение получится, если после функции Find(x1,x2,…xn) указать знак стрелки, который находится в панели инструментов Symbolic (Ctrl+.).
Одиночное число в Mathcad называется скаляром. Столбец чисел называется вектором, а прямоугольная таблица чисел — матрицей. Общий термин для вектора или матрицы — массив.
Имеются три способа создать массив:
- Заполняя массив пустых полей, как обсуждается в этом разделе. Эта методика подходит для не слишком больших массивов.
- Используя дискретный аргумент, чтобы определить элементы с его помощью, как обсуждено в следующей главе. Эта методика подходит, когда имеется некоторая явная формула для вычисления элементов через их индексы.
- Считывая их из файлов данных.
Можно различать имена матриц, векторов и скаляров, используя различный шрифт для их написания. Например, во многих математических и инженерных книгах имена векторов пишутся жирным, а имена скалярных переменных — курсивом.
Вектор — массив или матрица, содержащая один столбец. Чтобы создать вектор в Mathcad, выполните следующее:
- Щёлкните в свободном месте или на поле.
- Выберите Матрицы из меню Математика или нажмите [Ctrl]M. Появляетс я диалоговое окно, как на рисунке справа.
- Укажите число строк, равное числу элементов вектора, в поле “Строк”. Например, чтобы создать вектор с тремя элементами, напечатайте 3.
- Напечатайте 1 в поле “Столбцов”, затем нажмите “Создать”. Mathcad создает вектор с пустыми полями для заполнения.
На следующем этапе нужно заполнить эти поля скалярными выражениями. Для этого выполните следующее:
- Щёлкните на верхнем поле и напечатайте 2.
- Переместите выделяющую рамку в следующее поле. Можно сделать это или клавишей [Tab], или щёлкнув непосредственно на втором поле.
- Напечатайте 3 во втором поле. Затем переместите выделяющую рамку в третье поле, и напечатайте 4.
Если понадобится создавать еще векторы, можно оставить диалоговое окно “Матрицы” открытым для дальнейшего использования.
Как только вектор создан, можно использовать его в вычислениях в точности так же, как и число. Например, чтобы добавить другой вектор к этому вектору, необходимо выполнить следующее:
- Нажмите [ ] несколько раз или щёлкните на любой из скобок вектора. Выделяющая рамка теперь заключает весь вектор. Это означает, что знак плюс, который будет напечатан, относится к вектору целиком, а не к какому-либо из элементов.
- Нажмите клавишу плюс (+). Mathcad показывает поле для второго вектора.
- Используйте диалоговое окно “Матрицы”, чтобы создать другой вектор с тремя элементами.
- Заполните этот вектор, щелкая в каждом поле и печатая числа, показанные справа. Можно также использовать [Tab], чтобы двигаться от одного элемента к другому.
- Нажмите знак =, чтобы увидеть результат.
Сложение — только одна из операций Mathcad, определенных для векторов и матриц. В Mathcad также есть вычитание матриц, умножение матриц, скалярное произведение, целочисленные степени, детерминанты и много других операторов и функций для векторов и матриц. Полные списки появляются в разделах “Векторные и матричные операторы” и “Векторные и матричные функции” ниже в этой главе.
Если Вы используете Mathcad PLUS, Вы сможете выполнить много символьных операций с матрицами. Подробнее об этом см.в Главе “Символьные вычисления”.
Читайте также: Как замазать фон в фотошопе cs6
Чтобы создать матрицу, сначала щёлкните в свободном месте или на поле. Затем:
- Выберите Матрицы из меню Математика, или нажмите [Ctrl]M. Появится диалоговое окно.
- Введите число строк и столбцов в нужные поля. В этом примере матрица имеет две строки и три столбца. Затем нажмите на “Создать”. Mathcad создаст матрицу с пустыми полями.
- В завершение заполните поля, как описано в предыдущем разделе для векторов.
Можно использовать эту матрицу в формулах в точности так же, как и число или вектор.
Везде в настоящем руководстве термин вектор относится к вектору-столбцу. Вектор-столбец идентичен матрице с одним столбцом. Можно также создать вектор-строку, создав матрицу с одной строкой и многими столбцами. Операторы и функции, которые берут векторный аргумент, всегда ожидают вектор-столбец. Они не применимы к векторам-строкам. Чтобы превратить вектор-строку в вектор-столбец, используйте оператор транспонирования[Ctrl]1.
Изменение размера матрицы
Можно изменять размер матрицы, вставляя и удаляя строки и столбцы. Для этого необходимо выполнить следующее:
- Щёлкните на одном из элементов матрицы, чтобы заключить его в выделяющую рамку. Mathcad будет начинать вставку или удаление с этого элемента.
- Выберите Матрицы из меню Математика. Появляется диалоговое окно.
- Напечатайте число строк и-или столбцов, которые нужно вставить или удалить. Затем нажмите на “Вставить” или на “Удалить”. Например, чтобы удалить столбец, который содержит выбранный элемент, напечайте 1 в поле “Столбцов”, 0 в поле “Строк”, и нажмите на “Удалить”.
Вот как Mathcad будет удалять или вставлять строки или столбцы, в зависимости от того, что впечатывается в диалоговое окно:
- Если вставляются строки, Mathcad создает строки пустых полей ниже выбранного элемента. Если вставляются столбцы, Mathcad создает столбцы пустых полей справа от выбранного элемента.
- Чтобы вставить строку выше верхней строки или столбец слева от первого столбца, сначала заключите матрицу целиком в выделяющую рамку, щёлкнув внутри и нажав [ ] несколько раз. Затем выберите Матрицы и продолжите, как обычно.
- Когда строки или столбцы удаляются, Mathcad начинает со строки или столбца, занятых выбранным элементом. Mathcad удаляет строки вниз от этого элемента и столбцы — направо от этого элемента.
- Если напечатать 0 в поле “Строк”, Mathcad ни вставит, ни удалит строки. Если напечатать 0 в поле “Столбцов”, Mathcad ни вставит, ни удалит столбцы.
Обратите внимание, что при удалении строк или столбцов Mathcad выбрасывает содержащуюся в них информацию.
Чтобы удалить всю матрицу или вектор, заключите их в выделяющую рамку и выберите Вырезать из меню Правка.
Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter
Перечислить его координаты в квадратных скобках. Например,
задаёт трехмерный вектор, все координаты которого равны 3. Элементы вектора можно отделять друг от друга пробелами или запятыми, записи [3 3 3] и [3,3,3] эквивалентны.
Иногда можно применять специальные приёмы для задания вектора (массива). Скажем, массив элементов с равным приращением можно задать так:
В первом случае массив будет содерэать все целые числа от 1 до 10 включительно, во втором — только чётные числа (потому что явно указано приращение — 2).
Массивы в Java

В статье «Переменные в Java.Создание переменной» мы говорили о том, что переменная — это некоторый контейнер , в котором может храниться значение для дальнейшего использования в программе.
- обычная переменная может содержать только 1 значение .
- массив — это простая переменная, которая может содержать неодно, а сразу несколько значений, в отличие от обычной переменной, содержащей единственное значение. Массив — это такой себе «магический» контейнер, в который мы можем положить сразу несколько значений («коробочек»).
Ниже приводим Вам примеры массивов.
Пример №1

Как видите, мы создали целочисленный массив, который назвали array1 и присвоили три числа: 5, 17, 350
Пример №2

Как видите, мы создали строковый массив, который назвали array2 и присвоили слово «Java » и фразу «is the best». Причем мы их написали в двойных кавычках, потому что это массив типа String.
Любой массив имеет длину
Например, длина этого массива = 3. Потому что в массиве 3 числа: 5, 17, 350

А длина этого массива = 2. Потому что в массиве 2 значения: «Java » и «is the best»

Если сказать проще, то длина массива — это количество элементов, которые в нем хранятся (количество маленьких «коробочек» в большой).
Предлагаем теперь Вам ответить какая длина у этих 3 массивов?

Правильные ответы:
![]()
Длина этого массива 6. Потому что в этом массиве 6 чисел: 1, 8, 15, 30, 2, 3
![]()
Длина этого массива 2. Потому что в массиве 2 числа: 1 и 3

Длина этого массива 4. Потому что в массиве 4 слова: «Киев», «Львов», «Луцк», «Одесса».
А как сделать так, чтоб автоматически получать длину массива?
Подсчитывать вручную количество элементов в массиве — это хорошо, но что, если элементов очень много. Вряд ли у Вас хватит терпения подсчитать 3 000 элементов. Если использовать свойство массива length , длина массива будет подсчитана автоматически.
Например, у нас есть вот такой массив.

Пишем int k = array1.length; .
В результате создастся переменная k, в которой будет лежать значение 3.
Попробуйте запустить вот этот код, чтоб убедиться в этом на практике:
class Test <
public static void main ( String [ ] args ) <
int [ ] array1 = < 5 , 17 , 350 >;
int k = array1 . length ;
System . out . println ( k ) ;
В любом массиве значения элементов сохраняются под порядковыми номерами (индексами)
Причем нумерация начинается с «нуля» . Предлагаем рассмотреть на примерах.
Пример №1
В данном массиве:
5 — это элемент с порядковым номером 0
17 — это элемент с порядковым номером 1
350 — это элемент с порядковым номером 2

Пример №2
В данном массиве:
«Java » — это элемент с порядковым номером 0
«is the best» — это элемент с порядковым номером 1

Если Вы очень любите сладости, то можете представить массив в виде макаронов.

То есть индекс элемента — это его номер по порядку «минус» 1.
Как видно, длина массива из макаронов =3. И применяется та же логика к порядковым номерам (индексам) в массиве.
Давайте разберемся зачем в массиве значения элементов сохраняются под порядковыми номерами (индексами)?
А ответ очень и очень простой. Чтобы можно было обращаться к конкретным элементам массива по индексу. Поскольку из того, что мы в большую коробку хаотично накидаем другие коробки, толку мало. Нам нужно знать, где лежит маленькая коробка с тем, что нам нужно. По этому все, что мы кладем в большую коробку, имеет свой номер.
Для того, чтобы получить то, что лежит в маленькой коробочке, нам нужно обратится к ней по индексу. Для этого пишем название переменной (большая коробка), после чего без пробелов в квадратных скобках индекс коробки.
Давайте рассмотрим это на практике.
- Как мы можем обратиться к элементу массива array1 под индексом 0? Ответ: array1[0]
- Как мы можем обратиться к элементу массива array1 под индексом 1? Ответ: array1[1]
- Как мы можем обратиться к элементу массива array1 под индексом 2? Ответ: array1[2]

А как создать пустой массив?

Во всех предыдущих примерах мы создавали массив и сразу инициализировали его какими-то значениями. Однако есть возможность сначала создать массив нужного размера, а позже наполнять его значениями (если нам при создании не известно, какие значения там будут находиться). Например, врач говорит женщине, что у нее будет двойня, но какого пола будут дети пока не известно. Вот Вам массив на 2 элемента типа «ребенок», но значения пока не известны.
Чтобы создать такой массив, нужно воспользоваться ключевым словом new. Теперь создание массива будет выглядеть так:
тип [] название = new тип[размер];
Запомните, что тип до «равно» и после, если мы говорим о массиве из примитивных типов, должны быть одинаковыми!
В будущем мы увидим, что это правило может нарушаться, но это уже другая история.
В программе это выглядело бы вот так:

