Аппроксимация периодических функций методом разложения в ряд Фурье

Автор работы: Пользователь скрыл имя, 22 Ноября 2012 в 22:21, курсовая работа

Краткое описание

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

Содержание работы

Введение. 3
1. Постановка задачи. .4
2. Краткие сведенья и расчетные формулы…………………………………………………5
3.Текст программы …………………………………………………………………………….7
Список литературы…………………………………………………………………….. … . 10

Содержимое работы - 1 файл

Московский государственный технический университет радиоэлектроники.docx

— 101.90 Кб (Скачать файл)

МИНИСТЕРСТВО  ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ  ФЕДЕРАЦИИ

 

ФЕДЕРАЛЬНОЕГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ  УРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ  «МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ РАДИОТЕХНИКИ,ЭЛЕКТРОНИКИ И АВТОМАТИКИ»

 

 

ФАКУЛЬТЕТ РАДИОТЕХНИЧЕСКИХ СИСТЕМ

 

КАФЕДРА РАДИОПРИЕМНЫХ УСТРОЙСТВ

 

 

КУРСОВАЯ  РАБОТА ПО ДИСЦИПЛИНЕ

                                   «ИНФОРМАТИКА»

Тема:        Аппроксимация периодических функций методом

                                      разложения в ряд Фурье

 

 

 

 

    Студент: Горин Кирилл Александрович    

 

     Группа: . РР-1-10                                                             

 

     Руководитель: Петрова Наталья Яковлевна

 

 

                                                          

                                                   

 

 

 

                                                       Москва

                                                      2011год

 

Оглавление.

Введение. 3

1. Постановка задачи. .4

2. Краткие сведенья и расчетные формулы…………………………………………………5

3.Текст программы …………………………………………………………………………….7

Список литературы…………………………………………………………………….. … . 10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение.

Аппроксимация (от латинского "approximate" -"приближаться")- приближенное выражение каких-либо математических объектов (например, чисел или функций) через другие более простые, более удобные в пользовании или просто более известные. В научных исследованиях аппроксимация применяется для описания, анализа, обобщения и дальнейшего использования эмпирических результатов.

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

Основоположником теории аппроксимации функций является великий русский математик Пафнутий Львович Чебышев (1821-1894).

В качестве приближающих функций  выбирают чаще всего алгебраические и тригонометрические многочлены. Так  же важное значение имеет метод наилучшего приближения, предложенный Чебышевым. Он возник из решения практических задач, связанных с конструированием прямолинейно направляющих шарнирных механизмов. Такие механизмы в XIX веке использовались в паровых машинах- основных универсальных двигателях того времени- для поддержания прямолинейного движения поршневого штока. К ним относятся параллелограмм Уатта и некоторые его разновидности.

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

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

 

 

 

 

 

 

Постановка задачи

 

 

Дана периодическая  функция  f(x) с периодом Т, заданной амплитудой А, длительностью сигнала t и затуханием сигнала .


 

 

 


 

        A

 



                                          

                                         


                                                  t

 

                                          Т

 

 

 

С помощью разложения функции в  ряд Фурье, нужно аппроксимировать заданную функцию на интервале [-П,П].

 

Для этого необходимо рассмотреть  заданную функцию на интервале (-L,L):

 

 

 

 

 


 

 


 

 

 


 

      -L         0.5     L

 

 

 

 

Краткие сведенья и расчетные формулы.

При решении различных задач  физики и математики, часто бывает необходимо осуществить разложение периодической функции с периодом 2П в тригонометрический ряд, один из таких рядов – это ряд Фурье:

  (1).

 

 

Если ограничиться конечным числом слагаемых, то формулу (1) можно представить к виду: 
)

Коэффициенты  Фурье  , рассчитываются по следующим формулам:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Если рассматривается периодическая  функция с периодом Т=2L,то функция рассматривается на интервале (-L,L) и функции перепишутся к следующему виду:

)

 

 

 

 

 

 

 

 

Где w-циклическая частота равная отношению = .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Текст программы

 

#include<fstream.h>

#include<math.h>

double ishod(double x); //функция с помощью которой мы вычисляем значение f(x)

double koef_a0 (double(*f)(double)); //функция вычисления коэффициента

double koef_a (int k,double(*f) (double)); //функция вычисления коэффициента

double koef_b (int k); //функция вычисления коэффициента

double aproks (double m,double x); // функция для расчета аппроксимации

const double l=1.5;

double w=acos(-1)/l; //задаем значение циклической частоты

int N=50; // N- количество разбиений при расчете интегралов

 

void main(void)

{

double x=-l,eps,y,y1;

int m,i=0;

cout<<"m=,eps="<<endl;

cin>>m>>eps;

ofstream f1,f2;

f1.open("C:\\ak11.txt");

while(x<=1)

{

y1=ishod(x);

    f1<<x<<' '<<y1<<endl;

    x+=0.01;

}

f1.close();

 

f2.open("C:\\ak2.txt");

x=-l;

    while (x<=l)

{

y=aproks(m,x);

f2<<x<<"   "<<y<<endl;

x+=eps;

}

f2.close();

}

double koef_a0(double (*rt)(double))

{

double x=-l,h=2*l/N,s=0;

for(int i=0;i<N;i++)

s+=rt(x+i*h);

return s*h/l;

}

double aproks(double m, double x)

{

double ak,bk,a0,s=0;

for(int k=1;k<=m;k++)

{

ak=koef_a(k,ishod);

bk=koef_b(k);

s+=ak*cos(k*w*x)+bk*sin(k*w*x);

}

a0=koef_a0(ishod);

return a0/2+s;

}

double koef_a(int k,double(*f)(double))

{

double x=-l,h=2*l/N,s=0;

for(int i=0;i<N;i++)

s+=f(x+i*h)*cos(k*w*(x+i*h));

return s*h/l;

}

double koef_b(int k)

{

double x=-l,h=2*l/N,s=0,y;

for(int i=0;i<N;i++)

{

y=ishod(x+i*h);

s+=y*sin(k*w*(x+i*h));

}

return s*h/l;

}

double ishod(double x)

{

double y;

if (x>-l && x<=0.5)

y=1.5;

else if (x>0.5 && x<l)

        y=-1.5*(x-0.5)+1.5;

else if (x==-1.5)

y=0;

 

return y;

}

 

 

 

 

 

Рассчитав параметры x и у и сохранив их в текстовом файле в виде таблицы значений , расположенном по адресу: C:\\ak11.txt (для построения  графика заданной функции) ,а также C:\\ak2.txt (для наложения на заданную функцию аппроксимации).

Используя программу Matlab построим наш график с помощью функции

 

function vizov

graph23('D:\ak11.txt','b')

hold on

graph23('D:\ak2.txt','r')

function graph23(fname,color)

[f,er]=fopen(fname,'rt');

if f~=-1

    s=[];

       while(~feof(f))

        m=str2num(fgetl(f));

       s=[s;m];

    end;

    plot(s(:,1),s(:,2),color);

else

    disp(er)

end


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В ходе работы точность аппроксимации  можно было изменять с помощью  количества разбиений N,чем больше значение N,тем точнее аппроксимация.

Все расчеты проведены средствами пакета Matlab 7.11.0(R2010b) и

Microsoft Visual C++6.0

                                          Список литературы.

 

1.Павловская  Т.А.  С/С++ « Программирование на языке

 высокого уровня». …………………………………………………….. . 2004г.

 

2. У. Топп, У. форд «Структура данных в С++»………………………. 2006г.

 

3.Харви Дейтл и Пол Дейтл «Как программировать на  С++»………...2009г.

 

4.Стэнли Б. Липпман. «Язык программирования С++»……………….2007г.




Информация о работе Аппроксимация периодических функций методом разложения в ряд Фурье