- •ОГЛАВЛЕНИЕ
- •ВВЕДЕНИЕ
- •1. НАЗНАЧЕНИЕ, ПРИНЦИПЫ ФУНКЦИОНИРОВАНИЯ И ИСПОЛЬЗОВАНИЯ СИСТЕМЫ MATLAB
- •2. ПРОСТЕЙШИЕ ВЫЧИСЛЕНИЯ В MATLAB
- •3. РАБОТА С МАССИВАМИ. ВЕКТОР-СТОЛБЦЫ И ВЕКТОР-СТРОКИ
- •4. РАБОТА С МАССИВАМИ
- •5. ДВУМЕРНЫЕ МАССИВЫ И МАТРИЦЫ
- •6. БЛОЧНЫЕ МАТРИЦЫ
- •7.1. Визуализация матриц
- •8. ДИАГРАММЫ И ГИСТОГРАММЫ
- •8.3. Графики функций
- •9. ГРАФИКИ ФУНКЦИЙ
- •10. М-ФАЙЛЫ
- •11. ЧИСЛЕННЫЕ МЕТОДЫ И ПРОГРАММИРОВАНИЕ
- •12. ОПЕРАТОРЫ ЦИКЛА
- •13. ОПЕРАТОРЫ ВЕТВЛЕНИЯ. ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ
- •14. ПРЕРЫВАНИЯ ЦИКЛА. ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ
- •15. ОСНОВНЫЕ ВОЗМОЖНОСТИ ПАКЕТА SIMULINK
- •16. ИНТЕРФЕЙС БРАУЗЕРА БИБЛИОТЕК
- •17. ИНТЕРФЕЙС ОКНА МОДЕЛЕЙ SIMULINK
- •18. СОЗДАНИЕ МОДЕЛИ
- •18.2. Создание модели ограничителя
- •19.2. Соединение блоков
- •21. РАБОТА С УСТАНОВКАМИ MATHCAD
- •22. ПЕРЕМЕННЫЕ И ОСНОВНЫЕ МАТЕМАТИЧЕСКИЕ ОПЕРАЦИИ В MATHCAD
- •22.2. Инициализация переменной
- •22.5. Глобальное определение переменной
- •22.6. Использование комплексных чисел
- •22.7. Константы
- •22.8. Использование констант
- •22.11. Стандартные математические функции
- •22.12. Математические функции
- •22.13. Работа с комплексными числами
- •22.14. Функции округления численных значений
- •22.15. Символьный результат
- •22.16. Вычисление выражений
- •22.19. Матрицы и векторы
- •22.20. Создание массивов
- •22.21. Векторы и матрицы
- •22.22. Начальный индекс массива
- •22.23. Определение массива
- •22.24. Вложенные массивы
- •22.25. Операции с массивами
- •22.26. Транспонирование матриц
- •22.27. Обращение матриц
- •22.28. Векторное произведение
- •22.29. Сумма элементов векторов
- •22.30. Выделение строк и столбцов
- •22.31. Преобразование массивов
- •22.32. Функции для работы с массивами
- •22.32.1. Функция matrix( )
- •23.2. Графики нескольких функций
- •23.4.1. Создание поверхностей
- •23.4.2. Основные настройки трехмерного графика
- •24.3. Логические операторы
- •24.6. Вложенные операторы
- •24.7. Арифметическое выражение в условии
- •24.8. Операторы циклов
- •24.8.1. Сумма квадратов
- •24.9. Рекурсия
- •25.2. Решение нелинейной системы
- •26. АНАЛИТИЧЕСКИЕ ВЫКЛАДКИ В MATHCAD
- •ЗАКЛЮЧЕНИЕ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК
24.ЗАДАНИЕ СОБСТВЕННЫХ ФУНКЦИЙ И ПРОГРАММИРОВАНИЕ В MATHCAD
24.8.Операторы циклов
Рис. 24.17
После команды увеличения индексной переменной добавлена инструкция break и условный оператор. В условном операторе проверяется, превышает ли индексная переменная значение 10. Если это так, то выполнение процедуры прекращается. Здесь легко прослеживается главное отличие в работе инструкций continue и break: если в первом случае пропускается соответствующая итерация, то во втором – завершается работа.
24.9. Рекурсия
Под рекурсией в общем случае подразумевают ситуацию, когда в теле описания процедуры (или функции) вызывается эта же процедура (или функция), но уже с другим аргументом. Иными словами, если функция или процедура ссылается на саму себя, имеет место рекурсия. Часто рекурсия бывает следствием ошибки, допущенной пользователем. Но если рекурсию реализовать правильно, то можно создавать эффективные, компактные и достаточно простые программные коды.
Как иллюстрацию к использованию рекурсии рассмотрим процедуру вычисления двойного факториала – произведения чисел "через один", т. е. для четной границы это произведение всех четных чисел, начиная с 2, а для нечетной границы – нечетных, начиная с 1.
Как видим, код состоит всего из одного условного оператора. Проверяемым является условие, что аргумент больше 2. Если это условие выполнено, вычисляется произведение аргумента на значение, возвращаемое процедурой для аргумента, уменьшенного на 2. При невыполнении условия в качестве значения возвращается аргумент. Таким образом, процедура будет по рекур-
Математическое программное обеспечение. Учебное пособие |
-239- |
24.ЗАДАНИЕ СОБСТВЕННЫХ ФУНКЦИЙ И ПРОГРАММИРОВАНИЕ В MATHCAD
24.9.Рекурсия
сии вызывать (с уменьшением аргумента с шагом 2) сама себя до тех пор, пока аргументом не станет число, не большее 2, т. е. 2 или 1. Наличие при каждом рекурсивном вызове процедуры множителя обеспечивает корректное вычисление двойного факториала. Подтверждением тому служат примеры, приведенные внизу под блоком описания процедуры – см. рис. 24.18.
Рис. 24.18
Рекурсия позволяет существенно сократить программный код. При этом вопрос о том, упрощается алгоритм выполнения программы или нет, остается открытым. Однако нельзя отрицать простоты решения целого ряда задач с помощью рекурсивного описания процедур.
Математическое программное обеспечение. Учебное пособие |
-240- |
25.РЕШЕНИЕ СИСТЕМ УРАВНЕНИЙ
ИНЕРАВЕНСТВ В MATHCAD
25.1.Решениеуравненийисистем
Вданном параграфе кратко рассматриваются функции и методы, которые могут использоваться в MathCad для численного решения алгебраических уравнений и систем. Сразу следует отметить, что далее соответствующие приемы еще будут обсуждаться, в частности, в главе, посвященной численным методам, и при обсуждении символьных вычислений. Здесь же приводятся элементарные сведения по данному вопросу и только в той части, что касается поиска приближенного численного решения.
Для решения уравнений предназначена функция root(). Первым аргументом указывается функциональная зависимость, которая должна обращаться в нуль, а вторым – переменная, относительно которой решается уравнение. Например, вызов команды root (f (х) ,х) приведет к решению уравнения f(x) = 0 относительно переменной х. Иногда корень уравнения следует искать на каком-то определенном интервале значений переменной. В этом случае у функции root () указываются еще два дополнительных аргумента – границы диапазона, на котором ищутся решения. Так, если решение упомянутого уравнения следует искать на диапазоне значений переменной х от а до b, то соответствующая команда будет иметь вид root (f (x), x, a, b). Причем если два последних аргумента функции root () не указаны, то для поиска решения уравнения предварительной переменной, относительно которой это уравнение решается, следует присвоить начальное значение. Чем ближе оно окажется к искомому корню уравнения, тем эффективнее будет проходить процесс вычисления этого корня – см. рис. 25.1.
Отдельный и довольно часто встречающийся класс выражений составляют полиномы. Искать корни полинома можно с помощью функции polyroots(). Аргументом последней указывается вектор-столбец коэффициентов полинома (первый элемент соответствует нулевой степени переменной полинома, второй элемент – первой степени и т. д.) – см. рис. 25.2.
Системы линейных уравнений решаются посредством функции lsolve(),
которая имеет два аргумента: первый аргумент является матрицей коэффициентов системы уравнений, а второй – вектор-столбцом правых частей этих уравнений.
Математическое программное обеспечение. Учебное пособие |
-241- |
25.РЕШЕНИЕ СИСТЕМ УРАВНЕНИЙ И НЕРАВЕНСТВ В MATHCAD
25.1.Решение уравнений и систем
Рис. 25.1
Рис. 25.2
Математическое программное обеспечение. Учебное пособие |
-242- |