Ряды MathCAD. Майер Р.В

Тригонометрические ряды Фурье с помощью Mathcad.

Цель работы

Научиться раскладывать периодические функции в тригонометрические ряды Фурье с помощью Mathcad и строить графики частичных сумм ряды Фурье.

Оборудование

Пакет программ MathCAD.

Ход работы

Вариант

1) Разложить функцию в тригонометрический ряд Фурье

2) Разложить функцию в тригонометрический ряд Фурье по косинусам

3) Разложить функцию в тригонометрический ряд Фурье по синусам

Допуск к работе

3.2.1 Тригонометрическим рядом Фурье функции называют функциональный ряд вида

3.2.4 Для функции f(x) вычислены коэффициенты Фурье (при разложении её по косинусам)

a 1 = 5, a 2 = 6, a 3 = 7

Запишите тригонометрический ряд Фурье

3.2.5 Функцию f(x) раскладывают в ряд Фурье по синусам (нечётным образом), тогда

Лист
№ докум.№
Подпись
Лист
№ докум.
Подпись
Дата
Лист

3.1.2. Найти числовые характеристики случайной величины x (x – выигрыш владельца одного лотерейного билета).

В лотерее разыгрываются ____ билетов.

Из них выигрывают по ____ рублей

Из них выигрывают по ____ рублей.

3.1.3. Найти числовые характеристики случайной величины «х»

а). 0,15 б) -0,35 в) 0,35 г) 0,25 д) не определить.

3.2.3 В лотерее 200 билетов. Выигрышных билетов 30. Какова вероятность того, что билет не выигрышный?

а). 1,7 б) 0,7 в) 0,17 г) 0,85 д) 0,15

3.2.4 Запишите формулу для вычисления дисперсии дискретной случайной величины.

3.2.5 Запишите формулу для вычисления среднего квадратического отклонения дискретной случайной величины.

________________________________________________________________________________

3.2.6. Д (у) = 25. Чему равно среднее квадратическое отклонение?

а). ± 5 б) 5 в) -5 г) не определить.

3.2.7 Как в MathCAD можно решить уравнение

______________________________________________________________________________

К работе допускается ______________

Результаты работы

4.1. М(х) = ____________ Д(х) = ____________ σ (х) = ___________

Лист
№ докум.
Подпись
Дата
Лист
ПР.140448.00.00
ПРАКТИЧЕСКАЯ РАБОТА 12

Нахождение точечных и интервальных оценок

неизвестных параметров распределения в Excel

1. Цель работы

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

2.Оборудование:

IBM PC, программная оболочка Microsoft Excel.

Ход работы

3. 1 Вариант

Оценить с заданной доверительной вероятностью γ= математическое ожидание генеральной совокупности по данной выборке

_____________________________________________________________________________________

3. 2 Допуск к работе

1. Как вычисляется среднее выборочное?

2. Как вычисляется выборочная дисперсия?

____________________________________________________________________________________________________________________________________________________________

3. Как вычисляется среднее квадратичное отклонение?

____________________________________________________________________________________________________________________________________________________________

4. Как вычисляется исправленная выборочная дисперсия?

____________________________________________________________________________________________________________________________________________________________

5. Чем точечная оценка неизвестного параметра распределения отличается от интервальной?

____________________________________________________________________________________________________________________________________________________________

6. Как вычисляется интервал для оценки математического ожидания генеральной совокупности?

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________


7. Как обозначается коэффициент Стьюдента?

Изм.
Лист
№ докум.
Подпись
Дата
Лист
ПР.140448.00.00
____________________________________________________________________________________________________________________________________________________________

8. От чего зависит величина коэффициента Стьюдента?

____________________________________________________________________________________________________________________________________________________________

К работе допускается:______________________________________________

Результаты работы

σ в = S в = t γ =

Вывод

В ходе выполнения данной работы применил формулы точечных и интервальных оценок____________________________________________________________

_________________________________________________________________



Изм.
Лист
№ докум.
Подпись
Дата
Лист
ПР.140448.00.00

П

Глушач В.С. УИТ-44

рактические работы 1,2. Прямое и обратное преобразование Фурье в MathCad.

Освоение работы в MathCad. Получение навыков использования преобразования Лапласа для анализа спектральных составляющих сигналов. Изучение временных и частотных шкал временного ряда и преобразования Фурье.

1. Генерируем временной ряд из трех синусоид. Количество точек должно быть равно 2 ^ n

2. Определяем среднее, дисперсию.

3. Делаем прямое и обратное преобразование Ф. Дважды преобразованный сигнал накладываем на график исходного временного ряда.

4. Находим соотношение между шкалой временного ряда по оси времени и преобразования Фурье по оси частот.

1. Выбираем дискретность по времени dt и количество точек временного ряда в виде nl:= 2 k

Пусть к:= 9 nl:= 2 k nl=512 Длина выборки во времени T:=512

Шаг по Или, учитывая, что nl-1

времени примерно равно nl Тогда i:=0..nl-l t. := i*dt

2. Генерируем входной сигнал х как сумму трех гармонических сигналов и определяем его основные статистики.

А1:= 1 f1:= 0.05 xl i:= Al-sin/2*3.14*fl*t i) srl:= mean(xl) srl = 0.012 s1:=stdev(x1) s1=0.706

A2:= 0.5 f2:= 0.1 x2 i:= A2-sin/2*3.14*f2*t i) sr2:= mean(x2) sr2 = 3.792x10 -4 s2:=stdev(x2) s2=0.353

A3:= 0.25 f3:= 0.4 x3 i:= A3-sin/2*3.14*f3*t i) sr3:= mean(x3) sr3 = 3.362x10 -4 s3:=stdev(x3) s3=0.177

x i:= xl i + x2 i + x3 i sry:= mean(x) sry = 0.013 sy:= stdev(x) sy = 0.809

1. Прямое преобразование Фурье в MathCad F:= fft(x)

Максимаьный период гармонической составляющей, которая может быть во временном ряде равен длине выборки. Эта гармоническая составляющая соответствует минимально возможной частоте по шкале частот преобразования Фурье frnin и соответственно шагу по оси частот преобразования Фурье df.

Tmax:= T frnin:=
df:= frnin df = 1.953 x 10 -3

Таким образом, минимальная частота и шаг по частоте преобразования Фурье равны frnin =df = 1/Т.

Преобразование Фурье имеет количество ординат по частоте в два раза меньше количества ординат временного ряда во времени n2=nl/2 или, включая нулевую точку (в которой преобразование Фурье не определено)

n2:= 1 + 2 k -1 n2 = 257 j:= l..n2

Индекс текущей частоты изменяется от j=l до j=n2

При этом частота изменяется от fmin =df= 1/T Максимальная частота finax:= n2*df fmax = 0.502

до frnax=n2*df Текущая частота f i:= i*df

f 1 = 1.953 x 10 -3 f 257 = 0.502

Обратим внимание, что преобразование Фурье определено только для частот в диапазоне от f=finin до f=fmax.

При этом пики на графике спектра Фурье соответствуют частотам исходных синусоид, т.е преобразование Фурье позволяет выделить частотные составляющие сигнала. Но амплитуды гармонических составляющих сейчас не отображают амплитуды составляющих исходного временного ряда (где А1=1, А2=0.5, А3=0.25)

Обратим также внимание, что при dt =1 максимальная частота в спектре преобразования Фурье равна frnax=0.5 колебаний в единицу шкалы времени. При dt = 1сек это соответствует fmax = 0.5 гц. При этом период максимальной частоты равен Тfmax=1/0.5=2. Это означает, что на один период максимальной частоты приходится два отбора временного ряда. Это соответствует теореме Котельникова, согласно которой для восстановления гармонического непрерывного сигнала из дискретного без потери информации на один период должно быть не менее двух отсчетов во времени.

3. Проведем проверку совпадения временных рядов до и после двойного преобразования Фурье. Для этого получим обратное преобразование Фурье от полученного прямого преобразования. Оно должно совпадать с исходным временным рядом, что подтверждается следующим графиком FF:= ifft(F)

Mathcad содержит функции для выполнения быстрого дискретного преобразования Фурье (БПФ) и его обращения. В Mathcad PLUS имеется также одномерное дискретное волновое преобразование и его обращение. Все эти функции имеют векторные аргументы. При определении вектора v для нахождения волнового преобразования или преобразования Фурье убедитесь, что первый элемент вектора имеет нулевой индекс: v 0 . Если элемент v 0 не определен, Mathcad автоматически устанавливает его равным 0. Это может привести к искажению результата.

Введение в дискретное преобразование Фурье

В Mathcad входят два типа функций для дискретного преобразования Фурье: fft/ifft и cfft /icfft . Эти функции дискретны: они берут в качестве аргументов и возвращают векторы и матрицы. Они не могут быть использованы с другими функциями.Используйте функции fft и ifft , если выполнены следующие два условия:
  • аргументы вещественны, и
  • вектор данных имеет 2 m элементов.

Используйте функции cfft и icfft во всех других случаях.
Первое условие необходимо, потому что функции fft/ifft используют тот факт, что для вещественных данных вторая половина преобразования Фурье является комплексно сопряженной с первой. Mathcad отбрасывает вторую половину вектора-результата. Это сохраняет и время и память при вычислениях.

Пара функций cfft/icfft не использует симметрию в преобразовании. По этой причине необходимо использовать их для комплексных данных. Так как вещественные числа - подмножество комплексных чисел, можно также использовать пару cfft/icfft для вещественных чисел.

Второе условие требуется, потому что пара функций fft/ifft использует высоко эффективный алгоритм быстрого преобразования Фурье. Для этого вектор аргумента, используемого с fft , должен иметь 2 m элементов. В функциях сfft/icfft использован алгоритм, который допускает в качестве аргументов как матрицы, так и векторы произвольного размера. Когда эта пара функций используется с матрицей в качестве аргумента, вычисляется двумерное преобразование Фурье.

Обратите внимание, что, если использована функция fft для прямого преобразования, необходимо использовать функцию ifft для обратного. Аналогично, если для прямого преобразования использована cfft , то для обратного необходимо использовать icfft .

Различные формулировки определения преобразования Фурье используют различные нормировочные коэффициенты и соглашения о знаке перед мнимой единицей в показателе экспоненты прямого и обратного преобразований. Функции fft, ifft, cfft и icfft используют 1/ как нормировочный коэффициент и положительный показатель степени в прямом преобразовании. Функции FFT , IFFT , CFFT и ICFFT используют 1/N как нормировочный коэффициент и отрицательный показатель степени в прямом преобразовании. Необходимо использовать эти функции попарно. Например, если используется CFFT в прямом преобразовании, необходимо использовать ICFFT в обратном.

Преобразование Фурье в вещественной области

Для вещественнозначных векторов с 2 m элементами можно применять пару функций fft/ifft . В алгоритме вычисления этих функций используются преимущества симметрии, существующей только для вещественных данных. Это позволяет сохранить и время, и память, необходимые для вычислений. Вектор v должен иметь 2 m элементов. Результат - комплекснозначный вектор размерности 1+2 m-1 . Если v имеет размерность отличную от 2 m , Mathcad выдает сообщение об ошибке “неверный размер вектора ”.

Элементы вектора, возвращаемого fft, вычисляются по формуле

В этой формуле n - число элементов в v , i - мнимая единица.

Элементы в векторе, возвращенном функцией fft , соответствуют различным частотам. Чтобы восстанавливать фактическую частоту, необходимо знать частоту измерения исходного сигнала. Если v есть n -мерный вектор, переданный функции fft , и частота измерения исходного сигнала - f s , то частота, соответствующая, равна

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

Вектор v должен иметь 1+ 2 m элементов, где m - целое. Результат есть комплекснозначный вектор размерности 2 m+1 . Если v имеет размерность, отличную от 1+ 2 m , Mathcad выдает сообщение об ошибке “неверный размер вектора ”.Аргумент v - вектор, подобный созданному функцией fft. Чтобы вычислить результат, Mathcad сначала создает новый вектор w , комплексно сопряженный v , и присоединяет его к вектору v . Затем Mathcad вычисляет вектор d , чьи элементы вычисляются по формуле:

Это та же самая формула, что и для fft , кроме знака минус в функции exp . Функции fft и ifft - точные обращения. Для всх вещественнозначных v справедливо ifft(fft(v))=v.

Преобразование Фурье в комплексной области

Имеются две причины, по которым не могут быть использованы пары преобразований fft/ifft, обсужденные в предыдущем разделе:
  • Данные могут быть комплекснозначны. Это означает, что Mathcad не может больше использовать симметрию, имеющую место в вещественном случае.
  • Вектор данных может иметь размерность, отличную от 2 m . Это означает, что Mathcad не может пользоваться преимуществом высокоэффективного алгоритма БПФ, используемого парой fft/ifft .
Комплексное преобразование Фурье требует следующих функций:
Рисунок 3: Использование быстрых преобразований Фурье в Mathcad.

Пара преобразований cfft/icfft может работать с массивами любого размера. Однако они работают значительно быстрее, когда число строк и столбцов может быть представлено в виде произведения большого количества меньших сомножителей. Например, векторы с длиной 2 m относятся к этому классу, так же как и векторы, имеющие длины, подобные 100 или 120. С другой стороны, вектор, чья длина - большое простое число, замедлит вычисление преобразования Фурье.

Функции cfft и icfft - обратные друг к другу. То есть icfft(cfft(v))=v. Рисунок 3 показывает примеры использования преобразования Фурье в Mathcad.

Когда в качестве аргумента cfft используется матрица, результат есть двумерное преобразование Фурье исходной матрицы.

Альтернативные формы преобразования Фурье

Определения преобразования Фурье, обсужденные выше, не являются единственно возможными. Например, следующие определения для дискретного преобразования Фурье и его обращения можно найти в книге Ronald Bracewells, The Fourier Transform and Its Applications (McGraw-Hill, 1986): Эти определения весьма распространены в технической литературе. Чтобы использовать эти определения вместо обсужденных в предыдущем разделе, используйте функции FFT , IFFT , CFFT и ICFFT . Они отличаются следующим:

Функции FFT , IFFT , CFFT и ICFFT используются аналогично функциям, обсужденным в предыдущем разделе.

Волновое преобразование

A Mathcad PLUS включены две функции волновых преобразований: для выполнения прямого одномерного дискретного волнового преобразования и его обращения. Преобразование выполняется с использованием четырехкоэффициентного волнового базиса Даубечи.

Часть 3. Решение обыкновенных дифференциальных уравнений в Mathcad

Ряд Фурье на произвольном отрезке

Часть 2. Разложение функций в ряд Фурье

Действия с комплексными числами

Часть 1. Вычисления с комплексными числами в Mathcad

Лекция № 5

Тема: «Комплексные переменные. Разложение функций в ряд Фурье. Решение дифференциальных уравнений »

В Mathcad определена мнимая единица i: и, следовательно, определены комплексные числа и операции с ними.

Z=a+bi – алгебраическая форма записи комплексного числа.

a – действительная часть, b – мнимая часть

Экспоненциальная (показательная) форма записи комплексного числа,

А – модуль, φ – аргумент (фаза)

Тригонометрическая форма записи комплексного числа.

Связь величин: a=A cos φ b=A sin φ

Z1=a1+j·b1, Z2=a2+j·b2

a) Сложение (вычитание) Z3=Z1±Z2=(a1±a2)+j·(b1±b2)

б) Умножение c·Z1=a·c+j·b·c

Z3=Z1·Z2=(a1·a2-b1·b2)+j·(a1·b2+a2·b1)=A1A2ej(φ1+φ2)

в) Деление

г) Возведение в степень n (натуральную)

д) Извлечение корня: , где k =0,1,2…n-1

Машина принимает только радианы!!! радиан=градус градус=радиан

Примеры:

Функция f(x) абсолютно интегрируема на отрезке [-p;p], если существует интеграл. Каждой абсолютно интегрируемой на отрезке [-p;p] функции f(x) можно поставить в соответствие её тригонометрический ряд Фурье:

Коэффициенты тригонометрического ряда Фурье называют коэффициентами Фурье и вычисляют по формулам Эйлера – Фурье: ,

Обозначим n – ю частичную сумму ряда Фурье кусочно – гладкой на отрезке [-p;p] функции f(x). Среднеквадратичное отклонение определяется по формуле:

Для любой ограниченной интегрируемой на [-p;p] функции f(x) частичная сумма её ряда Фурье является тригонометрическим многочленом наилучшего приближения n-ой степени.

Пример:

На графиках видно, как сходятся частичные суммы ряда Фурье. В окрестностях точек непрерывности функции f(x) разность между значением функции в точке х и значением частичной суммы ряда в этой точке стремится к нулю при n®¥, что полностью соответствует теории, поскольку в этом случае. Видно также, что разность стремится к нулю тем скорее, чем дальше от точек разрыва функции расположена точка х.

Пример:

Для кусочно – гладкой функции на отрезке [-L;L] функции f(x) задача о разложении в ряд Фурье на отрезке [-L;L] линейной заменой сводится к задаче о разложении функции на отрезке [-p;p]:

Рассмотрим упрощения в рядах Фурье при различных условиях симметрии:

формула (1) формула (2)


Пусть необходимо найти решение уравнения

с начальным условием. Такая задача называется задачей Коши . Разложим искомую функцию в ряд вблизи точки и ограничимся первыми двумя членами разложения. Учтя уравнение (1) и обозначив, получаем Эту формулу можно применять многократно, находя значения функции во все новых и новых точках.

Такой метод решения обыкновенных дифференциальных уравнений называется методом Эйлера . Геометрически метод Эйлера означает, что на каждом шаге мы аппроксимируем решение (интегральную кривую) отрезком касательной, проведенной к графику решения в начале интервала. Точность метода невелика и имеет порядок h . Говорят, что метод Эйлера – метод первого порядка, то есть его точность растет линейно с уменьшением шага h .

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

Mod(x, y) – остаток от деления x на y. Результат имеет тот же самый знак, что и x; angle(x, y) – угол (в радианах) между положительной полуосью x и вектором (x, y) в плоскости XY. Аргументы должны быть вещественны. Возвращает значение между 0 и 2π. ceil(3.25) = 4 floor(3.25) = 3 mantissa (x) := x − floor(x) mantissa (3.45) = 0.45 Традиционное округление: roundoff (x) := if(mantissa (x) < 0.5, floor(x) , ceil(x)) roundoff (3.46) = 3 roundoff (3.56) = 4 Рис. 14. Создание функций округления На рис. 14 показано, как из этих функций могут быть сформированы функции округления. 4.4. Дискретное преобразование Фурье В Mathcad входят два типа функций для дискретного прямого и об- ратного преобразования Фурье: fft/ifft и cfft/icfft. Эти функции дискрет- ны: они берут в качестве аргументов и возвращают векторы и матрицы. Они не могут быть использованы с другими функциями. Используйте функции fft и ifft, если выполнены два следующих ус- ловия: аргументы вещественны, и вектор данных имеет 2m элементов. Первое условие необходимо, потому что функции fft/ifft используют тот факт, что для вещественных данных вторая половина преобразова- ния Фурье является комплексно сопряженной с первой. Mathcad отбра- сывает вторую половину вектора-результата. Это сохраняет время и память при вычислениях. Пара функций cfft/icfft не использует симметрию в преобразова- нии. По этой причине необходимо использовать их для комплексных данных. 41 Второе условие требуется, потому что пара функций fft/ifft исполь- зует высоко эффективный алгоритм быстрого преобразования Фурье. Для этого вектор аргумента, используемого с fft, должен иметь 2m эле- ментов. В функциях cfft/icfft использован алгоритм, который допускает в качестве аргументов как матрицы, так и векторы произвольного раз- мера. Когда эта пара функций используется с матрицей в качестве аргу- мента, вычисляется двумерное преобразование Фурье. Следует иметь в виду, что если для прямого преобразования исполь- зована функция fft, то для обратного преобразования необходимо ис- пользовать функцию ifft. Аналогично используются функции cfft/icfft. 4.5. Преобразование Фурье в вещественной области Для вещественных векторов с 2m элементами предпочтительно ис- пользовать функции fft/ifft. Функция fft(v) возвращает дискретное пре- образование Фурье, векторный аргумент которой можно интерпретиро- вать как результат измерений через равные промежутки времени некоторого сигнала. Вектор v должен содержать 2m элементов. Резуль- тат – комплекснозначный вектор размерности 1 + 2m–1. Если v имеет размерность, отличную от 2m, Mathcad выдает сообщение об ошибке "неверный размер вектора". Элементы вектора, возвращаемого fft, вычисляются по формуле n −1 ∑ vk e 2 πi (j n) k . 1 Cj = n k =0 В этой формуле n – число элементов в v, i – мнимая единица. Эле- менты в векторе, возвращенном функцией fft, соответствуют различ- ным частотам. Чтобы восстановить фактическую частоту, необходимо знать частоту измерения исходного сигнала. Если v есть n-мерный век- тор, переданный функции fft, и частота измерения исходного сигнала – fs, то частота, соответствующая Ck k fk = fs. n Обратите внимание, что это делает невозможным обнаружить часто- ты выше частоты измерения исходного сигнала. Это ограничение, нала- гаемое не Mathcad, а самой сутью проблемы. Чтобы правильно восста- новить сигнал по его преобразованию Фурье, необходимо произвести 42 i:= 0 .. 63 xi:= sin  π⋅  + rnd (1) − 0.5 i Формирование сигнала:    10  Применяется комплексное преобразование Фурье: c:= fft(x) N:= last (c) N = 32 Обращение преобразования Фурье: z:= ifft(c) N2:= last (z) N2 = 63 j:= 0 .. N k:= 0 .. N2 Графическое представление сигнала zk = xj = 2 –0.499 –0.499 2.34·10 –3 2.34·10–3 0.673 0.673 xi 0 0.659 0.659 1.274 1.274 0.674 0.674 –2 0 20 40 60 80 1.162 1.162 i 0.613 0.613 Фурье-образ 0.179 0.179 4 –0.044 –0.044 0.489 0.489 –0.69 –0.69 cj 2 –1.079 –1.079 –0.777 –0.777 –0.849 –0.849 –1.334 –1.334 0 0 10 20 30 40 j Рис. 15. Быстрые пр6еобразования Фурье в Mathcad 43 измерения исходного сигнала с частотой, по крайней мере, вдвое боль- шей, чем ширина полосы частот. Подробное обсуждение этой пробле- мы содержится в специальных курсах. Функция ifft(v) возвращает обратное дискретное преобразование Фурье. Вектор v должен иметь 1 + 2m элементов, где m – целое. Резуль- тат есть вектор размерности 2m+1. Аргумент v – вектор, подобный созданному функцией fft. Чтобы вы- числить результат, Mathcad сначала создает новый вектор w, комплекс- но сопряженный v, и присоединяет его к вектору v. Затем Mathcad вы- числяет вектор d, элементы которого вычисляются по формуле n −1 ∑ wk e−2πi(j n)k . 1 dj = n k =0 Это та же самая формула, что и для fft, кроме знака минус в функции экспоненты. Функции fft и ifft – точные обращения. Для всех веще- ственных v справедливо ifft(fft(v)) = v. Пример использования прямого и обратного преобразований Фурье приведен на рис. 15. 4.6. Альтернативные формы преобразования Фурье Определения преобразования Фурье, рассмотренные выше, не явля- ются единственно возможными. Например, часто используются следу- ющие определения прямого и обратного преобразований Фурье: n n ∑ f (τ)e−2πi(ν n)τ ; f (τ) = ∑ F (ν) e () . 1 2 πi τ / n ν F (ν) = n τ=1 v =1 Эти определения реализованы во встроенных функциях FFT/IFFT и ICFFT. Они отличаются от быстрого преобразования Фурье следующим: вместо коэффициента 1 n перед обеими формулами стоит коэф- фициент 1/n и коэффициент 1 в обратном преобразовании; знак минус появляется в показателе экспоненты прямого преобразо- вания и исчезает в формуле обратного. 4.7. Кусочно-непрерывные функции Кусочно-непрерывные функции полезны для управления ветвлени- ями и остановками вычислительных процессов. Имеются пять функций 44 Использование условных операторов 2 x:= −2 , − 1.8 .. 2 f (x) := x − 1 g (x) := if(f (x) > 0 , f (x) , 0) g(x) равна f(x), когда f(x) > 0, иначе 0 4 4 2 f (x) g(x) 2 0 2 0 2 0 2 2 0 2 x x h (x) := if(x ≥ 1 , f (x) , − f (x)) иначе –f(x) 5 h(x) 0 Продолжать вычисления до выполнения условия 5 2 0 2 2 quess − a < err x −2 N:= 100 i:= 0 .. N a:= 1000 quess 0:= 10 err:= 10  quess i + a   quess i  quess i+ 1:= until (quess i) − a − err ,  2  2  N2:= last (quess) − 1 j:= 0 .. N2 j= quess j = (quess j)2 = 0 10 100 Число итераций N2 = 5 1 55 3.025·10 3 answer:= quess N2 2 36.591 1.339·10 3 3 31.96 1.021·10 3 answer = 31.623 4 31.625 1·10 3 5 31.623 1·10 3 Рис. 16. Условные выражения в Mathcad 45 Mathcad, относящихся к этому классу. Функция if полезна для выбора одного из двух значений, определяемого условием. Ступенчатая функ- ция Хевисайда Ф(х) и символ Кронекера δ(m, n) во многом аналогичны функции if. Функция until используется, чтобы управлять процессом итераций. Функция if(cond, tval, fval) возвращает значение tval, если cond отли- чен от 0 (истина) и возвращает fval, если cond равен 0 (ложь). Обычно в качестве аргумента cond выбирается булево выражение вида w = z, x > y, x < y, x ≥ y, x ≤ y, w ≠ z. Можно объединять булевы операторы, чтобы записать более сложные условия. Например, условие (x < 1) ⋅ (x > 0) действует подобно логическому "и", возвращающему 1, только если x заключено между 0 и 1. Аналогично выражение (x > 1) + (x < 0) действует подобно логическому "или", возвращающему 1, если x > 1, или x < 0, и 0, если x заключено между 0 и 1. Функция until (x, z) возвращает z, пока выражение x не становится отрицательным; должно содержать дискретный аргумент. Функция until позволяет останавливать вычисления для последовательных значений дискретного аргумента. Функция until полезна в итеративных процес- сах с определенным условием сходимости. На рис. 16 приведены примеры использования функций if и until. Функция Хевисайда эквивалентна следующей функции: Ф (x) := if (x < 0,0,1) Символ Кронекера δ(m, n) возвращает 1, если m = n; иначе 0. Оба аргумента должны быть целочисленными. Символ Кронекера эквива- лентен функции δ (m, n) := if (m = n,1,0) Ступенчатая функция Хевисайда может быть использована для со- здания импульса шириной w: pulse (x, w) := Ф (x) − Ф (x − w) Можно определить также две полезные функции lowpass и highpass. Они обе являются фильтрами – умножение на них какого-либо сигнала 46 вырезает из этого сигнала кусок вокруг точки x, имеющий ширину 2w. Разница состоит в том, что lowpass оставляет только вырезанный ку- сок, highpass – все, кроме вырезанного куска. lowpass (x, w) := pulse (x+w, 2 ⋅ w) highpass (x, w) := 1 − pulse (x+w, 2 ⋅ w) 4.8. Статистические функции Для вычисления статистических оценок случайных совокупностей чисел в Mathcad могут использоваться следующие функции: mean(A) – возвращает среднее значение элементов массива А раз- мерности m × n по формуле m −1 n −1 ∑ ∑ Aij ; 1 mean(A) = mn i =0 j =0 var(A) – возвращает дисперсию элементов массива А размерности m × n согласно формуле m −1 n −1 ∑ ∑ Aij − mean(A) 1 2 var(A) = ; mn i =0 j =0 stdev(A) - возвращает среднеквадратичное отклонение (квадратный корень из дисперсии) элементов m × n массива А stdev(A) = var(A). 4.9. Плотности распределения вероятности Эти функции показывают отношение вероятности того, что случай- ная величина попадает в малый диапазон значений с центром в задан- ной точке, к величине этого диапазона. В Mathcad имеются функции семнадцати плотностей вероятностей. Отметим только некоторые из них: dnorm(x, µ, σ) – возвращает плотность вероятности нормального рас- пределения 1  (x − µ) 2  dnorm(x, µ, σ) = exp  − , 2πσ  2σ 2  47 в котором µ и σ есть среднее значение и среднеквадратичное отклоне- ние, σ > 0; dunif(x, a, b) – вычисляет плотность вероятности равномерного рас- пределения  1 , x ∈ ,  dunif(x, a, b) =  b − a  0,  x ∉ в котором a и b являются граничными точками интервала, a < b. 4.10. Функции распределения Эти функции возвращают вероятность того, что случайная величи- на меньше или равна определенному значению. Функция распределе- ния вероятности – это функция плотности вероятности, проинтегриро- ванная от минус бесконечности до определенного значения. Приведем две из них: pnorm(x, µ, σ) – возвращает функцию нормального распределения со средним µ и среднеквадратическим отклонением σ (σ > 0); punif(x, a, b) – возвращает функцию равномерного распределения. a и b есть граничные значения интервала (a < b). Mathcad имеет ряд функций для генерирования случайных чисел, имеющих разнообразные распределения вероятностей. Приведем две из них: rnorm(m, µ, σ) – возвращает вектор m случайных чисел, имеющих нормальное распределение (σ > 0); runif(m, a, b) – возвращает вектор m случайных чисел, имеющих рав- номерное распределение, в котором a и b являются граничными точка- ми интервала (a < b). Остальные встроенные статистические функции и их описания мож- но посмотреть, выбрав команду Функция из меню Вставка. 4.11. Интерполяция и функции предсказания Интерполяция заключается в использовании значений некоторой функции, заданных в ряде точек, чтобы предсказать значения между ними. В Mathcad можно или соединять точки данных прямыми линия- ми (линейная интерполяция) или соединять их отрезками кубического полинома (кубическая сплайн-интерполяция). 48 В отличие от функций регрессии, обсуждаемых в следующем разде- ле, функции интерполяции определяют кривую, точно проходящую че- рез заданные точки. Из-за этого результат очень чувствителен к ошиб- кам данных. Если данные зашумлены, следует рассмотреть возможность использования регрессии вместо интерполяции. Для линейной интерполяции используется функция linterp(vx, vy, x), которая по векторным данным vx и vy возвращает линейно интерполи- руемое значение y, соответствующее третьему аргументу x. Аргументы vx и vy должны быть векторами одинаковой длины. Вектор vx должен содержать вещественные значения, расположенные в порядке возраста- ния. Эта функция соединяет точки данных отрезками прямых, созда- вая, таким образом, ломаную линию. Интерполируемое значение для конкретного x есть ордината y соответствующей точки ломаной. Пример линейной интерполяции показан на рис. 17. Кубическая сплайн-интерполяция позволяет провести кривую через набор точек таким образом, что первые и вторые производные кривой непрерывны в каждой точке. Эта кривая образуется путем создания ряда кубических полиномов, проходящих через наборы из трех смежных то- чек. Кубические полиномы состыковываются друг с другом, чтобы об- разовать одну кривую. Чтобы провести кубический сплайн через набор точек: создайте векторы vx и vy, содержащие координаты x и y, через кото- рые нужно провести кубичный сплайн. Элементы vx должны быть рас- положены в порядке возрастания; вычислите вектор vs:=cspline(vx, vy). Вектор vs содержит вторые про- изводные интерполяционной кривой в рассматриваемых точках. Чтобы найти интерполируемое значение в произвольной точке, ска- жем х0, вычислите interp(vs, vx, vy, x0), где vs, vx и vy – векторы, опи- санные ранее. Обратите внимание, что можно сделать то же самое, вычисляя interp(cspline(vx, vy),vx,vy, x0). Пример использования кубической сплайн-интерполяции приведен на рис. 17 внизу. 49 Линейная интерполяция i:= 0 .. 5 VXi:=i VYi:=vd(1) VXi = VYi = –3 linterp(VX, VY, 1.5) = 0.389 0 1.268·10 1 0.193 linterp(VX, VY, 3.75) = 0.705 2 0.585 linterp(VX, VY, 4.1) = 0.758 3 0.35 4 0.823 x:= 0 , 0.1.. 5 5 0.174 1 linterp(VX , VY , x) 0.5 VYi 0 0 2 4 6 x , VX i Кубическая сплайн-интерполяция i:= 0 .. 5 VXi:= i VYi:= rnd (1) VS:= lspline (VX, VY) interp (VS, VX, VY, 1.5) = 0.188 interp (VS, VX, VY, 3.75) = 0.868 interp (VS, VX, VY, 4.1) = 0.989 1 VYi = 0.71 interp(VS , VX , VY , x) 0.304 0.5 VYi 0.091 0.147 0.989 0 0 2 4 6 0.119 x , VX i Рис. 17. Примеры интерполяции 50