logo
mathcad

Рекурсия

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

Основная идея подобна идее математической индукции: если можно получить значение f(n+1) из f(n) и известно f(0), то известна и вся функция  f.

Рисунок 10: Рекурсивное определение функции.

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

Инструментарий программирования Mathcad легок в использовании, поскольку состоит всего из семи кнопок. Тем не менее эта простота обнаруживает удивительную мощь. Вместе с обширным набором численных функций Mathcad и абстрактными структурами данных, которые позволяют использовать аппарат вложенных массивов Mathcad, эти семь операторов позволяют писать самые сложные программы.

На следующих ниже рисунках приведены только немногие из этих возможностей. По мере приобретения опыта в программировании для Mathcad Вам будут открываться все новые и новые возможности. Выбрав пункт Шпаргалки из меню Справка, можно найти много других примеров программ.

Рисунок 11: Программа генерации последовательности случайных чисел геометрического  распределения.

Рисунок 12: Программа отыскания элементов, общих для двух векторов.

Рисунок 13: Решето Эратосфена для отыскания простых чисел.

Рисунок 14: Степени матрицы вероятностей переходов.

Рисунок 15: Сглаживание матрицы.

Разделы

  • Решение одного уравнения

Как в Mathcad использовать функцию поиска корня для численного решения одного уравнения с одним неизвестным.

  • Системы уравнений

Как использовать блоки решения уравнений для численного решения систем из n уравнений с n неизвестными.

  • Как лучше искать корни

Примеры того, как эффективно решать системы уравнений при различных значениях параметров, входящих в уравнения.

Для решения одного уравнения с одним неизвестным используется функция root. Аргументами этой функции являются выражение и переменная, входящая в выражение. Ищется значение переменной, при котором выражение обращается в ноль. Функция возвращает значение переменной, которое обращает выражение в ноль.

root( f(z), z)

Возвращает значение z, при котором выражение или функция f(z) обращается в 0. Оба аргумента этой функции должны быть скалярами. Функция возвращает  скаляр.

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

Второй аргумент — имя переменной, которое используется в выражении. Это та переменная, варьируя которую Mathcad будет пытаться обратить выражение в ноль. Этой переменной перед использованием функции root необходимо присвоить числовое значение. Mathcad использует его как начальное приближение при поиске корня.

Рассмотрим пример, как найти a — решение уравнения ex = x3. Для этого выполните следующие шаги:

При использовании функции root имейте в виду следующее:

root(f(x) - g(x), x)

Функция root предназначена для решения одного уравнения с одним неизвестным. Для решения систем уравнений используйте методику, описанную в следующем разделе “Системы уравнений”. Для символьного решения уравнений или нахождения точного численного решения уравнения в терминах элементарных функций выберите Решить относительно переменной из меню Символика. См. Главу “Символьные вычисления”.

Рисунок 1: Использование графика и функции root для поиска корней уравнения.