Операторы > Операторы математического анализа > Пример. Оператор градиента
Пример. Оператор градиента
Определите функцию f:
Щелкните для копирования этого выражения
Используйте оператор градиента, чтобы получить вектор частных производных для f:
Щелкните для копирования этого выражения
Определите векторную функцию и рассчитайте градиент функции f по вектору x.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
В этом примере для переменной ORIGIN, которая задает начальный индекс для всех массивов, задано значение 0.
Переменной с наибольшим нижним индексом в fявляется x2. Mathcad [подразумевает]предполагается, что имеются три переменные: x0, x1 и x2. В результате получаем вектор градиента из трех значений, содержащий частные производные этих переменных. Если x0 или x1 не отображаются в f, Mathcad по-прежнему возвращает вектор из трех значений, но элементы, соответствующие отсутствующим переменным, задаются равными 0.
Для наибольшего нижнего индекса, отображаемого в f, n, Mathcad подразумевает n + 1 переменных, x0, x1, ... xn, и возвращает вектор длины n + 1.
При численном определении x можно рассчитать градиент со знаком равенства =. Mathcad рассчитывает градиент для значений x и возвращает вектор из чисел, представляющий градиент в точке x. Длина x должна быть больше наибольшего нижнего индекса, отображаемого в f, и Mathcad возвращает градиент с записями length(x).
В следующем примере x0 и x1 являются единственными переменными, появляющимися в выражении; Mathcad берет частные производные по x0 и x1 возвращает вектор из двух значений.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Однако при определении x как вектора из трех элементов Mathcad предполагает, что существует дополнительная переменная x2, которая не появляется в выражении. Результатом является вектор из трех элементов.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Использование оператора градиента с функцией genfit
Оператор градиента особенно удобен для настройки аргументов функции genfit, которая сопоставляет набору данных общую нелинейную функцию.
В следующем примере очистите значение x:
Щелкните для копирования этого выражения
Используйте данные из следующей таблицы.
Щелкните для копирования этого выражения
Первый столбец содержит значения x данных, а второй - значения y.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Моделируем данные с помощью функции следующего вида:
Щелкните для копирования этого выражения
Где a1, a2 и a3 - неизвестные параметры, содержащиеся в векторе a.
Для моделирования данные можно вызвать genfit следующим образом:
Щелкните для копирования этого выражения
В этом выражении
X и Y являются векторами, содержащими значения данных x и y.
guess - вектор значений начального приближения для параметров.
F - вектор, первым элементом которого является моделирующая функция f(x, a), а остальные элементы представляют частные производные по неизвестным параметрам f.
Создайте вектор F, используя оператор градиента и функцию stack.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Функция stack помещает моделирующую функцию f над вектором частных производных, созданным оператором градиента.
Затем создайте вектор начального приближения для параметров.
Щелкните для копирования этого выражения
Примените genfit следующим образом:
Щелкните для копирования этого выражения
Параметры, которые дают наилучшее приближение:
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Было ли это полезно?