Разработка алгоритма программы нахождения производной методом неопределённых коэффициентов
СОДЕРЖАНИЕ Введение 1.Постановка и уяснение задачи: 1.1Анализ предметной области 1.1.1 Метод неопределённых коэффициентов 1.1.2 Использование интерполяционных многочленов 1.1.3 Использование конечно разностных соотношений для аппроксимации производных 2. Разработка алгоритма и программы: 2.1 Разработка алгоритма 2.2 Обоснование выбора языка программирования 2.3 Разработка программы 3.Экспериментальное исследование алгоритма и программы: 3.1Решение задачи методом неопределённых коэффициентов 3.2 Тестирование программы 3.3. Руководство программисту Заключение Список литературы Приложение А Приложение Б В ведение Задача решения обыкновенных дифференциальных уравнений сложнее задачи вычисления однократных интегралов, и доля задач, интегрируемых в явном виде, здесь существенно меньше. Когда говорят об интегрируемости в явном виде, имеют в виду, что решение может быть вычислено при помощи конечного числа “элементарных” операций: сложения, умножения, вычитания, деления, возведения в степень, логарифмирования, потенцирования, вычисление синуса и косинуса и т.д. Уже в период, предшествовавший появлению ЭВМ, понятия “элементарной” операции претерпели изменения. Решение некоторых частных задач настолько часто встречаются в приложениях, что пришлось составить таблицы их значений, в частности таблицы интегралов Френеля, функций Бесселя и ряда других так называемых специальных функций. При наличии таких таблиц исчезает принципиальная разница между вычислением функций sinx, lnx,… и специальных функций. В том и другом случаях можно вычислять значения этих функций при помощи таблицы, и те и другие функции можно приближая их многочленами, рациональными дробями и т.д. Таким образом, в класс задач, интегрируемых в явном виде, включились задачи, решение которых выражаются через специальные функции. Однако и этот, более широкий, класс составляет относительно малую долю задач, предъявляемых к решению. Существенное расширение класса реально решаемых дифференциальных уравнений, а следовательно и расширение сферы применения математики произошло с разработкой численных методов и активным повсеместным использованием ЭВМ. В настоящее время затраты человеческого труда при решении на ЭВМ задачи Коши для обыкновенных дифференциальных уравнений сравнимы с затратами на то, чтобы просто переписать заново формулировку этой задачи. При желании можно получить график решения или его изображение на экране. В результате этого для многих категорий научных работников существенно уменьшился интерес к изучению частных способов интегрирования обыкновенных дифференциальных уравнений в явном виде. Эта работа посвящена описанию одного из методов решения задачи Коши для обыкновенных дифференциальных уравнений и исследования свойств этого метода. Обратим внимание на то обстоятельство, что как и в других случаях, первоначальный анализ практической пригодности метода производится, изучая простейшие задачи, где точное и приближенное решение задачи выписываются в явном виде. 1.Постановка и уяснение задачи Необходимо разработать алгоритм и программу, выполняющую задачу по нахождению производной методом неопределённых коэффициентов. Необходимо провести анализ существующих методов решения поставленной задачи. Наиболее подходящим считать метод неопределённых коэффициентов. Результатом выполнения работы иметь корректно работающую программу и правильно оформленную техническую документацию. 1.1 Анализ предметной области 1.1.1 Метод неопределённых коэффициентов Метод неопределённых коэффициентов применяется для численного дифференцирования таблично заданной функции с произвольным расположением узлов. Он заключается в следующем. Искомое выражение для производной k -го порядка для некоторой точке x = xi представляется в виде линейной комбинации заданных значений функции в узлах x 0 , x 1 , …, xn : yi (k) =C0 y0 +C1 y1 +…+Cn yn . (2.1) Предполагается, что эта формула имеет место для многочленов: y=1; y=x-xi ;…; y=(x-xi )n . Подставляя последовательно эти многочлены в выражение (2.1) можно получить систему линейных алгебраических уравнений для определения коэффициентов С0 , С1 , …, С n . Рассмотрим порядок использования данного метода для нахождения производной на следующем примере. Пример. Найти выражение для определения производной у1 ' в случае задания функции в четырёх равноотстоящих узлах. Решение. Равенство (2.1) запишется в следующем виде yi ( k ) = C 0 y 0 + C 1 y 1 +С2 у2 + C 3 у3 . (2.2) Для нахождения производной у1 ' используем, например, следующие многочлены: y =1; y = x - x 0 ; у=(х-х0 )2 ; y =( x - x 0 )3 . . (2.3) Производные этих многочленов будут иметь следующий вид соответственно: y '=0; y '=1; у'=2(х-х0 ); y '=3( x - x 0 )2 . . (2.4) Подставляя последовательно соотношения (2.3) и (2.4) соответственно в правую и левую части равенства (2.2), получим в общем виде при х=х1 , следующую систему линейных алгебраических уравнений для определения коэффициентов С0 , С1 , …, С n : После упрощения данная система линейных алгебраических уравнений примет следующий вид:
Решив данную систему уравнений, получим следующие значения коэффициентов и выражение для нахождения производной у1 ' : 1.1.2 Использование интерполяционных многочленов Пусть функция f(x) задана в виде таблицы yi = f (xi ) , i=0,1,…n с постоянным шагом h . Предположим, что эта функция может быть аппроксимирована интерполяционным многочленом Ньютона: Этот многочлен можно продифференцировать по х с учётом правила дифференцирования сложной функции: В результате можно получить формулы для вычисления производных любого порядка. Например:
Пусть та же функция может быть аппроксимирована интерполяционным многочленом Лагранжа. Рассмотрим интерполяционный многочлен Лагранжа для случая трёх узлов интерполяции (n=2): Этот многочлен можно продифференцировать по х , тогда первая производная будет иметь следующий вид: В частности, 1.1.3 Использование конечно разностных соотношений для аппроксимации производных Производной функции y = f ( x ) в точке x 0 называется предел при D x ® 0 отношения приращения функции в этой точке к приращению аргумента (при условии, что этот предел существует). Для обозначения производной функции y=f(x) в точке x0 используют символы y '( x 0 ) или f '( x 0 ) . То есть, по определению, (1.1) Аппроксимацией (приближением) производной с помощью отношения конечных разностей называется соотношение (1.2) в котором значения D у , D х конечные, в отличие от их бесконечно малых значений в (1.1). (1.2) Пусть функция задана таблично с постоянным шагом h . x0 x1 x2 … xn y0 y1 y2 … yn В зависимости от способа вычисления конечных разностей можно получить разные формулы для вычисления производных в одной и той же точке. Например, для нахождения производной y 1 ' можно использовать формулы левых, правых и центральных разностей, которые имеют следующий вид соответственно:' D y1 =y1 - y0 , D x=h, y1 '=(y1 - y0 )/h; D y1 =y2 - y1 , D x=h, y1 '=(y2 - y1 )/h; D y1 =y2 - y0 , D x=2h, y1 '=(y2 - y0 )/2h. Аналогично можно найти выражения для определения старших производных. Например: y 1 ''=( y 1 ')'=( y 2 ' - y 1 ')/ h =(( y 2 - y 1 )/ h - ( y 1 - y 0 )/ h ) h =( y 2 - 2 y 1 + y 0 )/ h 2 . Оценим погрешность численного дифференцирования с помощью рассмотренных конечно-разностных соотношений. Для этого аппроксимируем функцию f ( x ) некоторой функцией j ( x ) , т.е. представим её в виде f ( x )= j ( x )+ R ( x ). (1.3) В качестве j ( x ) можно принять частичную сумму ряда или интерполяционную формулу. Тогда погрешность аппроксимации R ( x ) определяется остаточным членом ряда или интерполяционной формулы. Аппроксимирующая функция j ( x ) может быть использована для приближённого вычисления производной. Дифференцируя равенство (1.3) необходимое количество раз, можно найти значение производной f ( l ) ( x )= j ( l ) ( x )+ R ( l ) ( x ) . Величина R ( l ) ( x )= f ( l ) ( x ) - j ( l ) ( x ) называется погрешностью аппроксимации производной. При численном дифференцировании функции, заданной в виде таблицы с шагом h , эта погрешность зависит от h и её записывают в виде O ( hk ). Показатель степени k называют порядком погрешности аппроксимации производной. При этом предполагается, что | h | <1 . Оценку погрешности легко проиллюстрировать с помощью ряда Тейлора: Пусть функция f ( x ) задана в виде таблицы f ( xi )= yi , i =0,1,… n . Запишем разложение этой функции в ряд Тейлора при x = x 1 , D x = - h с точностью до членов ряда порядка h : y 0 = y 1 - y 1 ' h + O ( h 2 ). Отсюда можно найти значение производной в точке x = x 1 : y1 ' = (y1 - y0 )/h + O(h2 )/h = (y1 - y0 )/h + O(h). Эта формула совпадает с формулой нахождения производной с помощью левых разностей и имеет первый порядок точности. Аналогично, при x = x 1 , D x = h получается выражение для нахождения производной с помощью правых разностей, которая также имеет первый порядок точности: y 1 ' = ( y 2 - y 1 )/ h + O ( h ). Используем теперь ряд Тейлора для оценки погрешности аппроксимации производной с помощью центральных разностей. Полагая D x = - h и D x = h при x = x 1 , можно получить:
Вычитая первое равенство из второго, получаем Откуда можно получить выражение для нахождения производной с помощью правых разностей, которая имеет второй порядок точности: y 1 ' = ( y 2 - y 0 )/2 h + O ( h 2 ). Складывая оба равенства, можно оценить погрешность аппроксимации производной второго порядка: y1 '' = (y2 ' - 2y1 '+y0 ')/h2 + O(h2 ). Эта аппроксимация имеет также второй порядок точности.
Курсовые работы по информатикеСОДЕРЖАНИЕ Введение 1.Постановка и уяснение задачи: 1.1Анализ предметной области 1.1.1 Метод неопределённых коэффициентов 1.1.2 Использование
Оценок: 302 (Средняя 5 из 5)
Специалисты RetsCorp работают в digital-сфере более 7 лет. За это время мы разработали более 500+ успешных проектов. Основываясь на своем опыте и знании рынка, мы с уверенностью можем сказать, что будет работать, а что — нет. Заказывая создание лендинга для бизнеса в нашей студии, вы получаете работающие решения, необходимые именно вашему бизнесу.
Сотрудничая с нами, вы будете не клиентом, а нашим партнером. Благодаря этому мы будем развивать ваш бизнес как собственный. Мы так же как и вы заинтересованы в успехе проекта, поскольку ваша успешность будет нашей рекламой.