БлогNot. Mathcad: получаем вектор значений функции

Mathcad: получаем вектор значений функции

Часто задаваемый вопрос - как получить из значений функции, посчитанной в заданных пределах с заданным шагом именно вектор значений (а не ранжированную переменную, она же переменная-диапазон, она же дискретный аргумент).

Допустим, нам нужно табулировать функцию f(x) в интервале изменения значений x от a до b включительно с известным шагом по x, равным h.

Решить задачу с помощью дискретного аргумента очень просто, достаточно задать нужный дискретный аргумент и взять от него функцию:

табулирование функции в Mathcad с помощью ранжированной переменной (нижняя часть списка значений отрезана)
табулирование функции в Mathcad с помощью ранжированной переменной (нижняя часть списка значений отрезана)

Оператор "равно" не сработает в одном действии с "присвоить" для аргумента-диапазона.

Важней здесь другое - в диапазоне величины не занумерованы, как в массиве, соответственно, нельзя по номеру "вытащить" нужную величину и нельзя воспользоваться стандартными функциями для обработки векторов.

Чтобы получить вектор значений функции, рассчитаем требуемое количество узлов сетки по формуле n = (b-a)/h + 1, затем сформируем вектор t из требуемых значений аргумента (не будем переопределять уже занятое ранжированной переменной наименование "x", хотя это и возможно), а затем вычислим значения функции по формуле yi = f(ti), все эти действия показаны на втором рисунке:

табулирование функции в Mathcad с сохранением вектора значений (показаны только первые элементы вектора)
табулирование функции в Mathcad с сохранением вектора значений (показаны только первые элементы вектора)

Замечания.

1. Предполагаем, что количество узлов сетки n = (b-a)/h + 1 получается целым, если это не так, всегда можно взять вместо n величину ceil(n) (значение, округлённое вверх), как и сделано на скрине, правда, мы рискуем при этом "прихватить" лишнюю область определения, например, при a = 1, b = 3, h = 0.3, имеем n = 7.667, ceil(n) = 8, а последнее вычисленное значение x будет равно a + h * (ceil(n)-1) = 3.1.

2. Также предполагается, что системная переменная ORIGIN (начало нумерации элементов для векторов и матриц) не менялась и равна нулю.

Код проверялся в актуальной сборке Mathcad 15 под Windows 10.

 Скачать этот документ Mathcad 14/15 .xmcd в архиве .zip (12 Кб)

Примечание. В новой линейке Mathcad Prime вектору уже можно непосредственно присваивать диапазон, если сразу выполнить ":=" и "=", хотя различие по контексту между векторами и диапазонами остаётся:

Mathcad Prime - присваиваем диапазон вектору
Mathcad Prime - присваиваем диапазон вектору

08.06.2020, 19:47 [5268 просмотров]


теги: учебное список числа mathcad

К этой статье пока нет комментариев, Ваш будет первым