Определение и использование дискретного аргумента
Чтобы определять дискретный аргумент, напечатайте имя переменной, сопровождаемое двоеточием и диапазоном значений. Например, вот как определить переменную j, принимающую значения от 0 до 15:
Напечатайте j и затем нажмите клавишу двоеточия (:). Пустое поле указывает, что Mathcad ожидает определение для j. В этот момент Mathcad не знает, будет ли j обычной переменной или дискретным аргументом.
Напечатайте 0.Затем нажмите клавишу точки с запятой (;). Это сообщает Mathcad, что определяется дискретный аргумент. Mathcad показывает точку с запятой как две точки .., что означает диапазон. Завершите определение дискретного аргумента, печатая 15 в оставшемся поле.
Это определение указывает, что j принимает значения 0,1,2...15. Чтобы определять дискретный аргумент, который изменяется с шагом, отличным от 1, см. подраздел “Типы диапазонов” ниже в этой главе.
Если только дискретный аргумент определён, он принимает полный диапазон значений каждый раз, когда он используется. Если дискретный аргумент используется, например, в выражении, Mathcad должен вычислить это выражение для каждого значения дискретного аргумента.
Следует определять дискретный аргумент в точности, как показано выше. Должны быть:
имя переменной слева,
или := или в середине, и
допустимый диапазон справа.
Обратите внимание, что нельзя определять простую переменную через дискретный аргумент. Например, если, определив j, как показано, теперь записать , то Mathcad истолкует это как попытку приравнять скалярную переменную дискретному аргументу, и отметит уравнение сообщением “нескалярная величина”.
Дискретный аргумент может применяться для присвоения значений элементам вектора или матрицы. Можно определять элементы вектора, используя дискретный аргумент как нижний индекс. Например, чтобы определить для каждого значения j:
наберите x[j:j^2[Space]+1
Рисунок 1 показывает вектор значений, вычисленных по этой формуле. Поскольку j — дискретный аргумент, вычисления по формуле делаются для каждого значения j. Это определяет для каждого значения j от 0 до 15. Результат точно такой же, как если бы напечатать
x0 := 02 + 1 |
x1 := 12 + 1 |
. |
. |
. |
x15 :=152 + 1 |
Чтобы понимать, как Mathcad вычисляет при помощи переменных диапазона, имейте в виду основной принцип:
Если дискретный аргумент используется в выражении, Mathcad вычисляет выражение один раз для каждого значения дискретного аргумента.
Этот принцип выражает различие между выражениями с дискретным аргументом и без него. Выражения, которые не содержат дискретный аргумент, имеют только одно значение. Выражения, содержащие дискретные аргументы, принимают много значений, которые соответствуют каждому значению каждого дискретного аргумента.
Рисунок 1: Использование дискретного аргумента для определения элементов вектора x.
Если в формуле используются два или более дискретных аргумента, Mathcad вычисляет формулу один раз для каждого значения каждого дискретного аргумента. Это обсуждается подробнее в разделе “Итерационные вычисления” ниже в этой главе.
Mathcad требует больше времени для вычисления формул, содержащих дискретный аргумент, поскольку приходится выполнять многократные вычисления. Форма курсора изменяется во время вычислений. Чтобы прервать вычисления, нажмите [Esc]. Чтобы возобновить вычисления, щёлкните мышью на формуле и нажмите [F9].
Типы диапазонов
Определение j в предыдущем разделе является самым простым типом определения диапазона. Mathcad допускает дискретные аргументы со значениями, расположенными от любого значения до любого другого значения и меняющимися с произвольным шагом.
Вот как выглядит определение произвольного дискретного аргумента. Напечатайте:
k:1,1.1;2
Это будет выглядеть как:
k := 1,1.1..2
В этом определении диапазона:
Переменная k — имя дискретного аргумента. Это должно быть простое имя. Никакие нижние индексы или функциональные определения не допустимы.
Число 1 — первое значение, принимаемое аргументом k.
Число 1.1 — второе значение в диапазоне. Обратите внимание, что это не размер шага. Размер шага в этом примере 0.1, разница между 1.1 и 1. Если опустить запятую и 1.1, Mathcad примет размер шага равным 1 в подходящем направлении.
Число 2 — последнее значение в диапазоне. В этом примере значения аргумента постоянно увеличиваются. Если бы записать , то k проходил бы значения от 10 до 1. Если третье число в определении диапазона не равно целому числу приращений начального значения, аргумент всё равно не выйдет за его пределы. Например, пусть определили k := 10, 20 ..60, тогда k будет принимать значения 10, 20, 30... 60.
Можно использовать произвольные скалярные выражения вместо 1, 1.1 и 2. Однако эти значения должны всегда быть вещественными числами. Комплексные числа не имеют смысла в определениях дискретного аргумента, потому что имеется бесконечное число путей, соединяющих два данных комплексных числа. Рисунок 2 показывает результаты различных определений дискретного аргумента.
Рисунок 2: Некоторые допустимые определения дискретного аргумента.
Обратите внимание, что, если для дискретного аргумента используется дробное приращение, нельзя использовать этот дискретный аргумент как нижний индекс, поскольку нижние индексы должны быть целыми числами.
Всякий раз при вводе = после выражения, включающего дискретные аргументы, Mathcad показывает вычисленные значения в таблице вывода. Рисунок 2 показывает значения нескольких дискретных аргументов, отображаемых как таблицы вывода.
Рисунок 3 показывает таблицы вывода для немного более сложных выражений, включающих дискретные аргументы.
Рисунок 3: Печать знака = после выражения с дискретными переменными создает таблицу вывода.
Чтобы создать три таблицы из Рисунка 3, сначала определите дискретный аргумент. Затем напечатайте следующие формулы:
i= x[i= i*10= |
Всякий раз при вводе выражения, сопровождаемого = , Mathcad отобразит:
число, если результат — скаляр.
вектор или матрицу, если результат есть вектор или матрица, и выражение слева от = не содержит никаких дискретных аргументов.
таблицу, аналогичную показанным на Рисунке 3, если выражение слева от = содержит дискретные аргументы.
таблицу вывода с полосой прокрутки, если результат — вектор или матрица, выражение слева от = не содержит никаких дискретных аргументов, и результат имеет более чем девять строк или столбцов.
Поскольку команды x= и x[i= отображают одни и те же числа, можно рассматривать таблицы как способ просмотра содержимого вектора. Таблицы особенно удобны для просмотра отдельных частей вектора. Например, если определён вектор v, можно просматривать каждый его элемент, печатая:
i := 0,2 ..lfst(v) vi = |
Некоторые сведения о таблицах вывода в Mathcad:
Mathcad показывает в таблице только первые 50 значений выражения. Например, даже если i меняется от 1 до 100, напечатав i^2=, Вы увидите в таблице только значения от 12 до 502. Чтобы увидеть более чем 50 значений, используйте несколько дискретных аргументов и несколько таблиц. Возможно, например, определить j1 от 1 до 50 и j2 от 51 до 100, а затем показывать рядом таблицы для j1^2= и j2^2= .
Чтобы отформатировать числа в таблице, щёлкните в таблице и выберите Формат числа из меню Математика. Затем определите желаемый формат в диалоговом окне, как это делается для выражения с простой переменной.
Имеется три способа показывать значения вектора. Если использовать векторное имя вместе с нижним индексом подобно xj = , Mathcad показывает таблицу вывода. Если напечатать векторное имя без нижнего индекса подобно x =, Mathcad показывает вектор как вектор, а не как таблицу вывода. Если напечатать векторное имя без нижнего индекса, и вектор имеет больше чем девять элементов, появится таблица вывода с полосой прокрутки.
Не следует использовать единицы размерности с таблицей, как это делается с одиночным скалярным ответом. Если результаты в таблице имеют размерность, Mathcad отображает размерность при каждом значении в таблице. Чтобы избежать этого, разделите выражение с дискретным аргументом на единицу размерности. Рисунок 4 показывает пример.
Рисунок 4: Размерность в таблице.
Введение значений в таблицу чисел фактически определяет элементы вектора. В этом разделе обсуждается, как делать это с помощью таблиц ввода и дискретных аргументов. Чтобы записать таблицу ввода, введите определение с индексированной переменной на одной стороне и последовательностью значений, отделяемых запятыми, на другой. Например:
Определите i , принимающее четыре значения, напечатав i:1;4.Обратите внимание, что i должен принимать только целочисленные значения. Иначе i не сможет использоваться как нижний индекс на следующем шаге.
Щёлкните в другой точке и напечатайте x[i: Поле указывает, что Mathcad ожидает значение для x1 .
Напечатайте 3 и нажмите клавишу запятой. Mathcad показывает другое поле, чтобы указать, что он теперь ожидает значение для x2 .
Напечатайте 5,15,20, чтобы задать значения для x2 , x3 , x4 .
Если таблица ввода создана, можно делать следующее:
Вставить значение в середину таблицы. Щёлкните в таблице непосредственно над местом, куда необходимо вставить новое значение. Затем напечатайте запятую. Под выбранным значением в таблице Mathcad создает поле, окруженное рамкой. Чтобы ввести число, просто напечатайте его в этом поле.
Расширить таблицу под дополнительные значения. Щёлкните на последнем значении в таблице и следуйте за описанными выше шагами для вставки значения в таблицу.
Заменить или удалить значение из таблицы. Заключите значение, которое нужно заменить или удалить, в выделяющую рамку, затем нажмите [Del]. Mathcad заменяет значение на пустое поле. Напечатайте новое значение в этом поле, чтобы заменить старое. Чтобы удалить значение полностью и уменьшать длину массива на единицу, нажмите [Del] снова. Это удалит само поле.
Некоторые замечания относительно таблиц ввода:
Каждое значение в таблице ввода должно быть или числом, или выражением, которое возвращает число, именем массива или выражением, которое возвращает массив. Выражения, содержащие дискретные аргументы, и выражения, созданные использованием команды Матрицы из меню Математика, не допускаются.
Все выражения в таблице ввода должны иметь одну размерность или быть безразмерными. Если нужно, чтобы каждое выражение было в метрах, можно, например, ввести сокращение для метров в каждую ячейку таблицы. Проще оказывается ввести безразмерные значения, а затем переопределить вектор в размерный, печатая что-нибудь вроде x := x m/sec2.
Таблица ввода обычно имеет одну ячейку для каждого значения дискретного аргумента. Если таблица имеет недостаточно ячеек, Mathcad определит количество значений, равное числу ячеек. Если таблица имеет лишние ячейки, то они будут игнорироваться.
Таблицы ввода присваивают значения только к элементам, определяемым дискретным аргументом. Если в предыдущем примере дискретный аргумент был определен как i := 10, 20 ..40, Mathcad присвоил бы значения к x10 ,x20 , x30 и x40 . Затем он заполнил бы оставшиеся элементы, а именно от x0 до x9 ,x11 , затем x19 , и так далее, нулевыми значениями. Эти нули можно увидеть, если отобразить вектор, печатая x=. Так можно нечаянно создавать огромные таблицы.
Таблицы ввода не могут иметь больше 50 ячеек. Если требуется ввести более 50 элементов, введите их, используя несколько таблиц. Можно, например, определить j1 от 1 до 50 и j2 от 51 до 100, напечатать x[j1: , сопровождаемый первыми пятьюдесятью числами, затем напечатать x[j2: , сопровождаемый последующими пятьюдесятью числами.
Если возникнет необходимость ввода очень большого количества значений данных, можно считать их из файла данных, вместо того чтобы печатать их в таблицах ввода.
Рисунок 5 показывает примеры таблиц ввода. Обратите внимание, что печать x= и y= отображает элементы x и y в векторной форме. Mathcad игнорирует последнее число в таблице ввода для y, так как этот элемент имел бы индекс 5, а дискретный аргумент i останавливается на 4.
Рисунок 5: Таблицы ввода.
Заметьте, что первый элемент обоих векторов является нулем. Это потому, что массивы Mathcad по умолчанию нумеруются с нуля. Поскольку дискретный аргумент начинается с 1, нулевой элемент оказывается явно не определенным, и Mathcad присваивает ему значение 0.
Этот раздел показывает, как использовать дискретные аргументы для выполнения многократных вычислений.
- Буквенные индексы
- Ниже приводится полный список предопределенных переменных Mathcad и их значений по умолчанию:
- Используемые числа
- Специальные операции над комплексными числами
- Многозначные функции
- Создание вектора
- Создание матрицы
- Изменение размера матрицы
- Нижние индексы и элементы вектора
- Изменение способа отображения массивов
- Графическое представление матриц
- Ограничение входных массивов
- Ограничение отображаемых массивов
- Ограничение размеров массива
- Размеры и диапазон значений массива
- Специальные типы матриц
- Специальные характеристики матрицы
- Формирование новых матриц из существующих
- Собственные значения и собственные векторы
- Разложения
- Решение линейной системы уравнений
- Определение составного массива
- Отображение составных массивов
- Операторы и функции для составных массивов
- Определение и использование дискретного аргумента
- Многократные вычисления по дискретному аргументу
- Множественные дискретные аргументы и двойные индексы
- Рекурсивные вычисления с несколькими переменными
- Рекурсивные вычисления с вектором
- Советы по набору операторов
- Переменный верхний предел суммирования
- Оператор суммирования элементов вектора
- Производные более высокого порядка
- Переменные пределы интегрирования
- Изменение точности вычисления интегралов
- Криволинейные и двойные интегралы
- Определение пользовательского оператора
- Использование пользовательского оператора
- Запись функций как операторов
- Тригонометрические функции и обратные им.
- Гиперболические функции
- Логарифмические и показательные функции
- Функции Бесселя
- Специальные функции
- Введение в дискретное преобразование Фурье
- Функция if
- Циклы “while”
- Оператор “break”
- Циклы “for”
- Подпрограммы
- Рекурсия
- Что делать, когда функция root не сходится
- Некоторые советы по использованию функции root
- Решение уравнений с параметром
- Нахождение корней полинома
- Как использовать найденное решение
- Что делать, когда Mathcad не может найти решения
- Что делать, когда имеется слишком мало ограничений
- Многократное решение уравнений
- Решение одинаковых задач относительно разных переменных
- Приближенные решения
- Использование символьного решения уравнений
- Дифференциальные уравнения первого порядка
- Дифференциальные уравнения второго порядка
- Уравнения более высокого порядка
- Системы оду первого порядка
- Системы дифференциальных уравнений более высокого порядка
- Гладкие системы
- Медленно изменяющиеся решения
- Нахождение приближенного решения только в конечной точке
- Двухточечные краевые задачи
- Дифференциальные уравнения с частными производными