Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 48
Текст из файла (страница 48)
Рб, Окно Енсе(с встроенным меню Нар(е н меню усганоакн параметров Мар(е На рис. 9.6 приведен пример обращения к команде р] ОтЗг] рисования поверхности. Отметим, что сама программа Мар!е при этом не запускается, а подключаются только необходимые с((( библиотеки. Разложение функции в ряд фурье 255 при условии, что на Г(х) наложены довольно слабые ограничения. Величины а, и Ь„ определяются по формулам: а„= — ) у(х) со~ — ~ т(х 1 " (л)сх1 ЬЬ = — ) .Г(х) е~ — ) т(х Ряды Фурье описаны во многих книгах, от учебников по высшей математике и математическому анализу (см., например, [58)) до специальных монографий (741. Опишем процедуру с именем Еоцг( ее ел(егс > Гоогтевег(ев: ргос(Г;:а10ебга(с.х.Е,п:;(поедет, са(в::еча1п) 1оса1 (.й,а.Ь,в; Входными параметрами процедуры являются: т — алгебраическое выражение (тип а1деЬга1с), для которого нужно выписать ряд Фурье, х — переменная, по которой проводится разложение.
Отрезок по х определяется входным параметром Е, то есть х изменяется на интервале [- Е, Е), а целое число и задает количество пар членов ряда, где под парой понимается сумма синусов и косинусов. Нулевой член разложения в процедуре вычисляется всегда. Перечисленные параметры являются обязательными, а параметр сога может отсутствовать. Если он указан, то в результате работы процедуры будет сформирована переменная типа 1( зг с именем сота, содержащая записи вида: (базисная функция, соответствующий коэффициент]. Для вычислений внутри процедуры используются пять локальных переменных т, ((, а, Ь, к Соответствие типов фактических параметров типам, описанным в заголовке процедуры, проверяется Марте при обращении к Еоцпевепез.
Проверка других условий, наложенных на входные параметры, содержится в первых строках процедуры, В частности, проверяется интервал разложения, который не должен иметь нулевой длины, положительность количества членов разложения и и то, что в качестве второго параметра указано имя переменной. При несоответствии фактических параметров наложенным на ннх ограничениям выводится сообщение об ошибке прн помощи команды ЕЙЙОЙ: (Г 1-0 Слеп Еййой("Интервал разлаиения нулевой длины!"); Г(; (Г п<0 Еиеп ЕЙЙОЙ("Число членов разлоления должно бить > 0 !"): Г(; гт пот суре(х."вуиоо)") гиеп Еййбй("Второй паранетр не является иненеи переиенной!"); г(; Далее следует содержательная часть процедуры. Переменной з присваивается.ну-. левой член ряда Фурье: з: !пг((,х И~..Е)/У2.' Если при обращении к процедуре указан пятый параметр, то соответствующая переменная очищается, формируется первый ее элемент (нулевой член ряда), и инициализируется счетчик злементов: 256 Глава 1О.
Примеры решения эадач 1/ пагйэ-5 Ьиеп со/5:-'сота': со!э[1]:-[1,5]; М:-2 епс[ !Г. Затем в цикле происходит вычисление последующих коэффициентов ряда Фурье, суммы иэ и членов ряда Фурье и пополнение переменной со[5 [если задан пятый фактический параметр процедуры): Гог ! тгоп 1 со п Ьо а -1пт(!*сов(1*Р1*х/[),х--[..[) Лх . Ь:-1пт(Г"5!П(1*Р!*Х([),х--[ ..Е)/[: 5:-5 апсоэ(!*Рт*ХЛ.)+Ь*5!п(т*Р1*х/.): 1т пагрэ-5 тпеп х;-'х+1; со!э[я]:-[соэ(т*Р!*х/[).а]: я:-я+1! со/5[я]: [51п(т*Р1*х/[).Ь]: епс[ 1/. ос[; Последние строки формируют результат. Сначала переменная со[5 преобразуется к типу ]151, а затем в качестве результата работы процедуры возвращается значение локальной переменной 5, которая содержит отрезок ряда Фурье: 1Г нагоя-5 сиеп сетя:-сопчегт(со/5.1!55): /1: 5: Ел([: После ввода описанной процедуры, Мар]е выводит ее текст (представлен в умень- щенном виде): яхтеявтэ вэ и [5 ьвьтвь>,ь,пса>(вэаг,о>ва вь) эссе(Ь /с, а, гх и ма< овсе аялон(' » ог)а вм;.
мвпв)ур осщ пь 1) ввяввакоя (' ° ° ° ° /)авв Мс в = 1/ эн эх(5 х -ь .. ь ) / га М вав вв вс Мв Ь жосан[1) ° [1,в)пйвэавеяс Вв'тапио> а в Этс(Во>в(янах/ ь),хв-г ..И(г с ьвэпгввяс(яв х/ь), -ь ..ь)/ь; в ° е+ а>сов(явях( ь ) + Ь«вв(ячттх/ ь ); мопсов= 5 впав)с в /с+ 1;сов[И вЂ” [сов(энвх/ь),а1;/с в ь. 1ссояпс) в [вв(янах/ььь\есмм Мпвов= 5 ивв сов — топчет(соня ЬПС) аве М; Проверим работу процедуры на нескольких примерах. Сначала обратимся к Гонг[ еяег1 е5, указав неправильные фактические параметры: > Гоог!еэег1еэ(хну 2.у*у. 1.
1): Еггог. (1п Гоог[еэегтеэ) Второй парвнетр не является пленен перененной! > тоог1еэег!еэ([ехр(х)],у, 1. 1): еггог, го/г!еяег[еэ ехрес(5 115 151 агвотеп1. г,' то ье ог суре а)рнх а1с. ьос гесе1чео,[ехр(х)] Определим выражение с параметром а, для которого будет строиться разложение: > т: (х-д) 2вэ!п(х); у:= (х — а)э ип(х) Разпожение функции а ряд фурье 257 Выпишем первые пять членов ряда Фурье, а затем построим графики исходной функции и полученного разложения при значении параметра а-О (см.
рис. 10.1): > д:-з(пр1згу(гоцг1езег1ез(г.х,р1,2)); 1, з 1, з, 4 16 Х:=-2 а+исоа(х)+ — ап(х)я — — Нп(х) еа Нп(х)+ — а соя(2х) — — ап(2х) 3 2 3 " 9 > а:-О: > Гтд1:=р1оС(д,х--Рт .Рт.со1ог-а)асх, зту)е-ро1пС. зуаЬЬ1зтхе-!2, зуаЬо1-стгс1е. пппро1псз-ЗО. 1едепб-"Отрезок ряда Фурье."): > Г(О2:-р1ЬС(Г х--Р!..Р).со1ог-ыасй. )едепб="Исходная Функция."): > р!осз[б1зр1ау)(Г1д1,(тд2,ахея-Ьохеб): -4 -3 -2 -1 О 1 2 3 х Ьедепб о о о о о о ОтрЕЗОК ряда ФИЗЬа. Исходная функция Рис. 10.1. График исходной функции и ее разложения я ряд Фурье Обратим внимание, что при обращении к Гоиг1езег)ез последний необязательный параметр опущен, Из рисунка видно, что даже небольшой отрезок ряда Фурье неплохо приближает исходную функцию.
Процедура Гоьг(езегтез может работать со всеми объектами Мар!е типа а1деога)с, в частности с кусочно-непрерывными функциями. Определим функцию, которая принимает значение -х при х>0, и х при х?О: > Г:-р1есеи1зе(х»д,-х.х): -х О сх х отде зтнце Обратимся к процедуре Гонг) Еэег) ез и ПолУчим первые 11 членов ряда Фурье (нулевой член и пять пар синусов и косинусов). В качестве необязательного пятого параметра укажем переменную сс, в которой будут содержаться базисные функции и коэффициенты при них: > д;-гопгтеяегтея(г.х.р1.3.сс): 258 Глава 10.
примеры решения задач Теперь определим число элементов переменной сс и выведем на экран предпоследний из них: > пора(сс); сс(1-Ц: 11 4 1) сов(5 л), — — ~ '25 я5 Закончим пример построением графиков исходной кусочно-непрерывной функции т и ее приближения отрезком ряда Фурье — рис. 10.2: >Н о1: -р1 ос(р, х--Р) .. Рт, со)ог-о) аск, в1у) е-рот ос, вупьо)в)ге-12.вуж)зо)-стгс1е,пцеро!псв-10. )ерепс-"Отрезок ряда Фурье."): >Гт02:-р1оыг,х--Рт..рт,со1ог-ь)асх. 1е)епб-"Исходная функция,"): р)отв(стар)ау)((Г)01,(тд2),ахея-(ахе)); -0.5 -2.5 -1 О 1 2 3 (.Франс х Исходная функция.
о о о о о о Отрезок ряде фурье. рис. 10 2. Графики функции и ее разложения е Ряд ФуРье Рис. 10.1. Иллвсчзеция зффектп Гиббса Вывод формул явного метода Рунге-((ухты 259 Приближение отрезком ряда Фурье дает хорошие результаты для периодической функции, что показали два предыдущих примера. В случае непериодической функции дело обстоит гораздо хуже, в частности может иметь место так называемый эффект Гиббса (см. [74!). Эффект состоит в том, что значение аппроксимации на векоторых интервалах всегда превосходит значение исходной функции и вблизи точек разрыва имеют место колебания аппроксимации и рост погрешности.
Это иллюстрируется следующим примером разложения линейной функции (см. рис. 10.3): > ц:-Гонг!евег)ев(х.х.Р1,!5,сс) > т!ц1:-р)от(ц.х--Р!..Р!. вуаоо1-О!амопе. яупЬо1вые=)2. му)е-ро!пт.со)ог-ы век):т!ц2:-р1омг.х--Р!..Р!.со)ог-ь)асх): р1огв!г)!вр)ау]((т!ц).Г!ц2!); Вывод формул явного метода Рунге-Кутты Пакет Мар!е можно использовать как для непосредственного решения задач, так и в качестве инструмента построения и анализа численных методов.
Проиллюстрируем возможности Мар!е для получения и решения громоздких алгебраических уравнений, возникающих при выводе формул Рунге — Кутты методом неопределенных коэффициентов. Методы Рунге-Кутты применяются для решения дифференциальных уравнений с начальными данными (задачи Коши). Рассмотрим автономное векторное уравнениеу'-7(у), где штрих означает дифференцирование по времени, а у является вектор-функцией времени Ь. Общая формула явного метода Рунге-Кутты с и этапами (стадиями) имеет следующий вид !47,71): !г, = Л)(5Ь), )су = ЛЯЬЬ+ 2',ая)ц), ) = 2+ух ! 1 п У, = ЬЬ+~Ь~)с) ,)=! Здесь !. — шаг интегрирования, а параметры Ь', а" подбираются так, чтобы обеспечить наиболее высокий из возможных порядок метода. Порядок илн точность метода определяется по наименьшей степени шага Ь в выражении невязки — разности между точным и приближенным решением за один шаг.