Этот раздел показывает,
как использовать дискретные аргументы для
выполнения многократных вычислений.
Многократные вычисления по дискретному
аргументу
Простейший вид многократных вычислений в Mathcad
— простое обобщение скалярных вычислений. Любое
вычисление, которое можно выполнить один раз,
можно выполнить и над диапазоном значений.
Например, предположим, что необходимо создать
список значений x и y для точек на кривой r =
cos(q) + 1. Идея состоит в
следующем:
- q должен принимать значения
между 0 и 2p .
- Для каждого q
соответствующее значение r дается формулой
r = cos(q) + 1.
- Для каждых r и q
соответствующие декартовы координаты x и y
даются формулами x = r cos(q) и y = r sin(q).
Рисунок 6: Переход от полярных к декартовым
координатам.
Рисунок 7: То же самое, что и на рисунке 6, но с
использованием функций.
Рисунок 8: Использование оператора
векторизации для создания полярного графика.
Стратегия решения этой проблемы проста:
создайте дискретный аргумент i и затем
вычислите q, r, x и y для
каждого значения qi.
Формула для определяет q для
значений от 0 до 2p с шагом 2p/N . Для создания остальных
формул только проставьте индекс i при каждой
переменной в формуле. Рисунок 6 показывает
результат.
Обратите внимание, что в этом примере i, а не q, определен как дискретный
аргумент. Поскольку i принимает только
целочисленные значения, это — допустимый нижний
индекс. С другой стороны, q
принимает дробные значения, следовательно, она
не может использоваться как нижний индекс. Во
многих случаях возможно избежать этого
дополнительного шага, используя функции вместо
векторов. Рисунок 7 показывает, как создать
кардиоиду, показанную на Рисунке 6, при помощи
функций вместо векторов.
Используя векторную запись и оператор
векторизации, удаётся избежать использования
нижнего индекса в последних трех уравнениях из
Рисунка 6. Рисунок 8 показывает пример того, как
это достигается.
Формулы, которые используют векторную запись
вместо нижних индексов, обычно вычисляются
намного быстрее. Более подробно см. Главу “Векторы и матрицы”.
Множественные дискретные аргументы и двойные
индексы
Если в формуле используется два дискретных
аргумента, Mathcad пробегает через каждое значение
каждого дискретного аргумента. Это можно
использовать для определения матриц. Например,
чтобы определить матрицу x размера 5x5, где xi,j
= i + j, напечатайте формулы:
Обратите внимание, что не нужно
печатать [Space], чтобы покинуть нижний индекс в
этом случае. Напечатав : , Вы одновременно
покидаете нижний индекс и создаете символ
определения.
Рисунок 9 показывает результат печати
вышеупомянутых формул. Обычно лучше всего
отобразить матрицу в форме, показанной на
Рисунке 9. Если вместо того, чтобы напечатать x=,
записать x[i,j=, Mathcad отобразит одну длинную таблицу
вывода с 25 числами. Такую таблицу часто трудно
интерпретировать. Подобная проблема возникает,
когда в графике используется пара дискретных
аргументов.
Выражение для xi,j вычисляется для каждого
значения каждого дискретного аргумента, всего 25
вычислений. Результат — матрица, показанная
внизу рисунка, с 5 строками и 5 столбцами. Элемент
в i-ой строке и j-ом столбце этой матрицы
равен i + j.
Рисунок 9: Определение матрицы.
Обратите внимание, что, если два дискретных
аргумента имеют значения m и n
соответственно, формула, использующая оба
дискретных аргумента, будет вычислятьcя mn раз. Если
использовать два дискретных аргумента в таблице
вывода, Mathcad покажет эти mn результата в длинной
таблице с ячейкой для каждого результата. Если
два дискретных аргумента используются в графике,
Mathcad отобразит по одной точке для каждого из mn
результатов.
|