русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Рекурсия


Дата добавления: 2015-07-23; просмотров: 1668; Нарушение авторских прав


Рекурсия является одним из мощных методов программирования и заключается в определении функции через саму себя, как показано на Рисунке 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. Для этого выполните следующие шаги:

· Определите начальное значение переменной x. Введите x:3. Выбор начального приближения влияет на корень, возвращаемый Mathcad (если выражение имеет несколько корней).

· Определите выражение, которое должно быть обращено в ноль. Для этого перепишите уравнение ex = x3 в виде x3 - ex = 0. Левая часть этого выражения и является вторым аргументом функции root

· Определите переменную a как корень уравнения. Для этого введите a:root(x^3[Space]-e^x[Space],x).

· Напечатайте a=, чтобы увидеть значение корня.

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

· Удостоверьтесь, что переменной присвоено начальное значение до начала использования функции root.

· Для выражения с несколькими корнями, например x2 - 1 = 0, начальное значение определяет корень, который будет найден Mathcad. На Рисунке 1 приведен пример, в котором функция root возвращает различные значения, каждое из которых зависит от начального приближения.

· Mathcad позволяет находить как комплексные, так и вещественные корни. Для поиска комплексного корня следует взять в качестве начального приближения комплексное число.

· Задача решения уравнения вида f(x) = g(x) эквивалентна задаче поиска корня выражения f(x) - g(x) =0. Для этого функция root может быть использована следующим образом:

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

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

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

Что делать, когда функция root не сходится

Mathcad в функции root используетдля поиска корня метод секущей. Начальное значение, присвоенное переменной x, становится первым приближением к искомому корню. Когда значение выражения f(x) при очередном приближении становится меньше значения встроенной переменной TOL, корень считается найденным, и функция root возвращает результат.

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

· Уравнение не имеет корней.

· Корни уравнения расположены далеко от начального приближения.

· Выражение имеет локальные максимумы или минимумы между начальным приближением и корнями.

· Выражение имеет разрывы между начальным приближением и корнями.

· Выражение имеет комплексный корень, но начальное приближение было вещественным (или наоборот).

Чтобы установить причину ошибки, исследуйте график f(x). Он поможет выяснить наличие корней уравнения f(x)=0 и, если они есть, то определить приблизительно их значения. Чем точнее выбрано начальное приближение корня, тем быстрее функция root будет сходиться к точному значению. roots;using plots to find

Некоторые советы по использованию функции root

В этом разделе приведены несколько советов по использованию функции root:

· Для изменения точности, с которой функция root ищет корень, можно изменить значение встроенной переменной TOL. Если значение TOL увеличивается, функция root будет сходиться быстрее, но ответ будет менее точен. Если значение TOL уменьшается, функция root будет сходиться медленнее, но ответ будет более точен. Чтобы изменить значение TOL в определенной точке рабочего документа, используйте определение вида TOL := 0.01. Чтобы изменить значение TOL для всего рабочего документа, выберите из меню Математика команду Встроенные переменные и введите подходящее значение в поле TOL. Нажав “OK”, выберите из меню Математика команду Пересчитать всё, чтобы обновить все вычисления в рабочем документе с использованием нового значения переменной TOL.

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

· Если f(x) имеет малый наклон около искомого корня, функция может сходиться к значению r, отстоящему от корня достаточно далеко . В таких случаях для нахождения более точного значения корня необходимо уменьшить значение TOL. Другой вариант заключается в замене уравнения f(x)=0 на g(x)=0, где

· Для выражения f(x) с известным корнем a нахождение дополнительных корней f(x) эквивалентно поиску корней уравнения h(x)=0, где h(x)=f(x)/(x-a). Подобный приём полезен для нахождения корней, расположенных близко друг к другу. Часто бывает проще искать корень выражения h(x), определенного выше, чем пробовать искать другой корень уравнения f(x)=0, выбирая различные начальные приближения.



<== предыдущая лекция | следующая лекция ==>
Подпрограммы | Решение уравнений с параметром


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.182 сек.