Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы и лекции по Mathcad.doc
Скачиваний:
109
Добавлен:
29.03.2015
Размер:
1.77 Mб
Скачать

6.2 Примеры программ.

Условный оператор ifи операторotherwise.Рассмотрим пример программного блока, вычисляющего факториал с использованием рекурсии

В данном примере 1 возвращается, только если n=0илиn=1. Обратите внимание на задание некольких условий - со знаком плюс, каждое условие в скобках. В остальных случаях, учитывая формулуn!=n*(n-1)!, вызываетсяfakt(n-1)и умножается наn. При помощи функцииerrorможно вывести сообщение об ошибке при неправильном вводе аргумента.

Для демонстрации работы цикла forрассмотрим ту же задачу, но вычисление факториала осуществим при помощи цикла.

Если n=0илиn=1, возвращается 1, в противном случае при помощи циклаforвычисляется произведениеn!=1*2*3...*n. Вычисленное последним значениеpвозвращается автоматически.

В следующем примере при помощи алгоритма Евклида определяется наибольший общий делитель. Для реализации алгоритма используется цикл с ключевым словом while

Прерывание цикла при помощи операторов breakиcontinue. Операторreturn .Первый пример - релизация метода касательных Ньютона для определения нулей функции. На основе начального значенияxвычисляется новое улучшенное значениеx, расположенное ближе к искомому нулю функции. При этом итерации повторяются до тех пор, пока значение функции не станет меньше заданной точности (в примере 10-6).

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

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

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

Обратите внимание, по завершении работы программы выдается вектор значений.

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

Лекция 7. Интерполяция и регрессия, функции сглаживания данных и предсказания.

7.1 Функции линейной и сплайновой аппроксимации. 7.2 Функции для проведения регрессии. 7.3 Функции сглаживания данных. 7.4 Функция предсказания. 7.5 Задания.