Решение уравнений и интерполяция функций
Методы решения нелинейных и дифференциальных уравнений и интерполяции функций. Численные методы решения некоторых математических и инженерных задач, программное обеспечение, их реализующее. Использование среды математического моделирования Matlab.
Рубрика | Математика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 09.02.2019 |
Размер файла | 913,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Федеральное агентство железнодорожного транспорта
Омский государственный университет путей сообщения
Кафедра "Автоматика и системы управления"
РЕШЕНИЕ УРАВНЕНИЙ И ИНТЕРПОЛЯЦИЯ ФУНКЦИЙ
Пояснительная записка к курсовому проекту
по дисциплине "Численные методы"
ИНМВ.319000.000 ПЗ
Студент гр. 24М А.О. Лобачева
Руководитель - доцент кафедры АиСУ
А. C. Окишев
Омск 2015
Реферат
УДК 519.6
Пояснительная записка содержит 32 страницы, 17 рисунков, 1 таблицy, 7 источников.
Численный метод, нелинейное уравнение, корень, итерация, сходимость, аппроксимация, интерполяция, задача Коши, обыкновенное дифференциальное уравнение, кубический сплайн, функция.
Объектом исследования являются приближенные численные методы решения некоторых математических и инженерных задач, а также программное обеспечение, реализующее эти методы.
Цель работы - ознакомиться с численными методами решения нелинейных и дифференциальных уравнений и интерполяции функций, решить предложенные типовые задачи с помощью предоставленного преподавателем программного обеспечения, сформулировать выводы по полученным решениям, отметить достоинства и недостатки методов, сравнить удобство использования и эффективность работы каждой программы.
Пояснительная записка к курсовому проекту оформлена в текстовом редакторе Microsoft Office 2007. Графики нелинейных функций построены с помощью программы Matlab. При решении обыкновенных дифференциальных уравнений использовалась среда математического моделирования Matlab.
Содержание
- Введение
- 1. Решение нелинейных уравнений
- 1.1 Метод простых итераций
- 1.2 Метод Ньютона
- 1.3 Решение нелинейного уравнения методом простых итераций
- 1.4 Решение нелинейного уравнения методом Ньютона
- Вывод по разделу 1
- 2. Интерполяция функции
- 2.1 Локальная и глобальная интерполяция
- 2.2 Кусочно-линейная интерполяция
- 2.3 Кусочно-квадратичная интерполяция
- 2.4 Кубический сплайн
- 2.5 Кусочно-квадратичная интерполяция функции по таблице значений
- 2.6 Кубический сплайн функции по таблице значений
- Вывод по разделу 2
- 3. Решение обыкновенных дифференциальных уравнений
- 3.1 Метод Эйлера
- 3.2 Решение ОДУ методом Эйлера
- 3.3 Решение ОДУ методом Эйлера-Коши
- Вывод по разделу 3
- Заключение
- Библиографический список
Введение
В связи с развитием новой вычислительной техники инженерная практика наших дней все чаще и чаще встречается с математическими задачами, точное решение которых получить весьма сложно или невозможно. В этих случаях обычно прибегают к тем или иным приближенным вычислениям. Вот почему приближенные и численные методы математического анализа получили за последние годы широкое развитие и приобрели исключительно важное значение.
Новые вычислительные средства вызвали переоценку известных методов решения задач с точки зрения целесообразности их реализации на ЭВМ и стимулировали создание более эффективных, что привело к появлению новой дисциплины - вычислительной математики. Предметом изучения последней являются численные методы решения задач математического анализа: изучение алгоритмов и условий сходимости итерационных методов, определение границ применимости методов, исследования оценок погрешностей методов и вычислений. Главным разделом вычислительной математики является реализация численных методов на ЭВМ, то есть составление программы для требуемого алгоритма и решения с ее помощью конкретной задачи.
Любая прикладная задача формируется исходя из определенного физического смысла некоторого процесса (распределение тепла в стержне, описание траектории движения объектов). Прикладная математическая задача может быть сформулирована, например, из описания некоторой экономической модели (задача распределения ресурсов, задача планирования производства, транспортная задача перевозки грузов, оптимальных в заданном смысле). Следовательно, для постановки любой прикладной задачи нужна математическая модель. Поэтому, можно выделить следующие этапы решения задач на ЭВМ:
1) описание математической модели задачи на основе физической или экономической модели;
2) изучение методов решения поставленной математической модели задачи и создание новых методов;
3) выбор метода решения задачи исходя из заданной точности решения и особенностей задачи;
4) составление блок-схемы программы для решения задачи на ЭВМ;
5) отладка программы и оценка полученных результатов;
6) решение задачи на ЭВМ, построение графиков, получение оценки погрешностей, обоснование результатов.
В курсовом проекте рассматриваются не прикладные, а типовые математические задачи, которые могут возникнуть при переходе от реальных систем к их математическим моделям, поэтому основное внимание уделяется последнему этапу.
1. Решение нелинейных уравнений
В общем виде нелинейное уравнение записывается следующим образом:
.
Решить это уравнение означает: найти значение , которое при подстановке в уравнение (1) превращает его в тождество. Следует иметь ввиду, что так как решение приближенное, точного тождества может не получится, однако величина будет очень близка к нулю (чем ближе, тем точнее полученное решение).
Значения … называются корнями уравнения (нулями функции ). Уравнение может иметь один, несколько корней или вовсе их не иметь. В последнем случае говорят, что уравнение не имеет решения.
Функция может относиться к трем типам:
1) нелинейная алгебраическая функция вида
;
2) трансцендентные функции - тригонометрические, обратные тригонометрические, логарифмические, показательные и гиперболические функции;
3) различные комбинации этих функций, например, .
На практике часто бывает выгодно уравнение (1) заменить равносильным ему уравнением (уравнения равносильны, если имеют одинаковые корни):
, (2)
где функции ? более простые, чем . Тогда при задания уравнения в виде (1) нулями функции являются точки пересечения с осью (рисунок 1, а), а при задании в виде (2) ? абсциссы точек пересечения функций (рисунок 1, б).
Рисунок 1 ? Разбиение сложной функции (а), на более простые (б)
Решение нелинейных уравнений разделяется на два этапа.
Первый этап: находятся отрезки , внутри каждого из которых содержится один простой или кратный корень () (рисунок 1). Этот этап называется процедурой отделения корней. По сути на нем осуществляется грубое нахождение корней .
Второй этап: грубое значение каждого корня уточняется до заданной точности одним из численных методов, в которых реализуется последовательные приближения. Порядок (скорость) сходимости метода определяется так же, как в методе простых итераций.
Для отделения корней полезно определять заранее число корней, а также верхнюю и нижнюю границы их расположения. Для этого используется ряд теорем.
Теорема 1. Если функция непрерывна на отрезке и меняет на концах отрезка знак (т.е.), то на содержится хотя бы один корень.
Теорема 2. Если функция непрерывна на отрезке, выполняется условие вида и производная сохраняет знак на , то на отрезке имеется единственный корень.
Теорема 3. Если функция не является многочленом n-ой степени и на концах отрезка меняет знак, то на имеется нечетное количество корней (если производная сохраняет знак на , то корень единственный). Если на концах отрезка функция не меняет знак, то уравнение либо не имеет корней на , либо имеет четное количество корней.
В вычислительной практике обычно используют следующие способы отделения корней:
1) средствами машинной графики: функция представляется на дисплее и приближенно определяются отрезки, которым принадлежат точки ;
2) средствами математического анализа с помощью исследования функций и построения графиков (рисунок 1, а);
3) формированием простых функций таких, что получается равносильное уравнение в виде (2), и дальнейшим построением графиков этих функций (рисунок 1, б).
1.1 Метод простых итераций
Пусть известно, что корень уравнения лежит на отрезке .
Требуется уравнение равносильным преобразованием привести к виду . Это преобразование может быть осуществлено различными путями, но для сходимости нужно обеспечить выполнение условия (X-- некоторая константа). При этом задача сводится к нахождению абсциссы точки пересечения прямой и кривой (рисунок 2).
Рисунок 2 ? Точка пересечения прямой и кривой
Затем необходимо задать начальное приближение и малое положительное число . Положить .
Вычислить следующее приближение:
. (3)
Если , итерации завершаются и . Если , положить и перейти к вычислению следующего приближения.
В качестве условия завершения итераций при известном значении может быть использовано неравенство
.
Проблемы сходимости и единственности численного решения, являющиеся главными при использовании этого метода, решаются и исследуются с помощью понятия о сжимающем отображении и теоремы о достаточном условии сходимости метода.
Отображение (функция) называется сжимающим в области с коэффициентом , если для любых двух из выполнено неравенство:
. (4)
Теорема 1 (о сходимости метода простых итераций и единственности получаемого численного решения).
Пусть выполнены условия:
1. нелинейное уравнение имеет решение ;
2. отображение является сжимающим в области с некоторым коэффициентом .
Тогда:
а) решение является единственным решением в области ;
б) последовательность , определяемая по отображению на основе итерационного процесса, сходится к решению со скоростью геометрической прогрессии, т.е. при выборе из условия , где - некоторое малое число, справедливо неравенству.
(5)
Теорема 2. Утверждает, что при выполнении условий 1,2 существует окрестность такая, что если взять в этой окрестности и вычислять по формуле (3), то в результате с любой наперед заданной точностью можно вычислить , соответствующее искомому (единственному) корню. Но так как эта окрестность неизвестна, то можно взять произвольное . Если при этом вычисляется последовательность , сходящаяся к некоторому значению , то в силу теоремы . Если сходимость отсутствует, то надо взять другое и повторить расчет.
Теорема 3 (о достаточном условии сходимости метода простых итераций).
Пусть выполнены условия:
1. функция имеет производные для всех ;
2. существует число , такое, что для всех .
Тогда отображение является сжимающим в с коэффициентом сжатия и последовательность , определяемая на основе итерационного процесса, сходится к решению , то есть при .
1.2 Метод Ньютона
Метод Ньютона (метод касательных, или метод линеаризации) является одним из наиболее популярных численных методов. Он быстро сходится (имеет квадратичную сходимость) и допускает различные модификации, приспособленные для решения векторных задач и сеточных уравнений. Однако этот метод эффективен при весьма жестких ограничениях на характер функции :
1. существование второй производной функции на множестве ;
2. удовлетворение первой производной условию для всех ;
3. знакопостоянство для всех .
Геометрическая интерпретация метода Ньютона состоит в следующем. Задается начальное приближение . Далее проводится касательная к кривой в точке (рисунок 3), т.е. кривая заменяется прямой линией. В качестве следующего приближения выбирается точка пересечения этой касательной с осью абсцисс. Процесс построения касательных и нахождения точек пересечения с осью абсцисс повторяется до тех пор, пока приращение не станет меньше заданной величины .
Рисунок 3 ? График касательной к кривой в точке
Получим расчетную формулу метода Ньютона. Вместо участка кривой BC (точка C соответствует ) возьмем участок AB - касательную, проведенную в точке . Для этого отрезка справедливо конечное соотношение:
, (6)
где - угол наклона касательной в точке к оси абсцисс. Разрешая это соотношение относительно , получаем
Повторяя процесс, находим общую формулу:
(7)
Подчеркнем, что если отбросить итерационный индекс, то (7) записывается в виде нелинейного уравнения
, (8)
которое, однако, на не равносильно исходному, а является таковым только в одной точке при .
Теорема 1 (о достаточных условиях сходимости метода Ньютона).
Пусть выполняются следующие условия:
1. функция определена и дважды дифференцируема на ;
2. отрезку принадлежит только один простой корень , так что ;
3. производные на сохраняют знак, и ;
4. начальное приближение удовлетворяет неравенству
(знаки функций и в точке совпадают).
Тогда с помощью метода Ньютона (7) можно вычислить корень уравнения с любой точностью.
1.3 Решение нелинейного уравнения методом простых итераций
уравнение интерполяция функция дифференциальный
Нелинейное уравнение имеет вид:
. (9)
Для приблизительной оценки корней построим график нелинейного уравнения (9) при помощи программы Matlab (рисунок 4):
Рисунок 4 ? График функции
Из графика видно, что кривая функции пересекается с осью абсцисс в точке, расположенной на отрезке .
С помощью Matlab напишем код решения нелинейного уравнения (9) методом простых итераций.
Листинг программы:
x=-6:0.2:4;
y=2*exp(-5-x)-2.5;
plot(x,y);
grid on;
eps=0.001;
razn=1;
Xk1=-5;
c=10;
n=0;
nmax=300;
while (razn>eps)
xk=Xk1;
P=(-2)*exp(-5-Xk1);
F=2*exp(-5-Xk1)-2.5;
n=n+1;
if(abs(P)<1)
Xk1=xk-F;
disp('1');
end
if(abs(P)>1)
Xk1=xk+(F/c);
disp('2');
end
razn=abs(Xk1-xk);
if(n>nmax)
disp('Слишком много шагов');
break
end
end
if(n<=nmax)
disp('Значение =');
disp(Xk1);
disp('n =');
disp(n);
end
Рисунок 5 ? Результат работы программы
По результатам работы программы (рисунок 5) можно сделать вывод, что итерационный процесс сошелся, искомое значение найдено с заданной точностью за 16 итераций.
1.4 Решение нелинейного уравнения методом Ньютона
Нелинейное уравнение имеет вид:
. (10)
Для приблизительной оценки корней построим график нелинейного уравнения (10) при помощи программы Matlab (рисунок 6):
Рисунок 6 ? График функции
Из графика видно, что кривая функции пересекается с осью абсцисс в точке, расположенной на отрезке .
С помощью Matlab напишем код решения нелинейного уравнения (10) методом Ньютона.
Листинг программы:
a=-5;
b=5;
e=0.001;
k=0;
kmax=100;
x=4:0.1:5;
F=x.^3-4*x.^2+x-8;
plot(x,F);
grid on;
while(k<=kmax && abs(F)>e)
P=3*x.^2-8*x-7;
x=x-F/P;
F=x.^3-4*x.^2+x-8;
if(abs(F)<e)
n=x;
disp('Корень уравнения =')
disp(n);
else
k=k+1;
end
end
Рисунок 7 ? Результат работы программы
По результатам работы программы (рисунок 7) можно сделать вывод, что итерационный процесс сошелся, искомое значение найдено с заданной точностью .
Вывод по разделу 1
Были рассмотрены два метода решения нелинейных уравнений, а именно метод простых итераций и метод Ньютона. Поиск решения методом Ньютона осуществляется путём построения последовательных приближений и основан на принципах простой итерации. Поэтому он и превосходит метод простых итераций по скорости сходимости.
2. Интерполяция функции
Пусть функция задана таблицей своих значений на интервале :
(11)
Задача интерполяции - найти функцию , принимающую в точках те же значения .
Условие интерполяции:
(12)
При этом предполагается, что среди значений нет одинаковых. Точки называют узлами интерполяции.
Если ищется только на отрезке - то это задача интерполяции, а если за пределами первоначального отрезка, то это задача экстраполяции.
- интерполяция - определение промежуточных значений функции по известному дискретному набору значений функции.
- экстраполяция - определение значений функции за пределами первоначально известного интервала.
- аппроксимация - определение в явном виде параметров функции, описывающей распределение точек.
Задача нахождения интерполяционной функции имеет много решений, так как через заданные точки можно провести бесконечно много кривых, каждая из которых будет графиком функции, для которой выполнены все условия интерполяции. Для практики важен случай аппроксимации функции многочленами:
(13)
При этом искомый полином называется интерполяционным полиномом.
При построении одного многочлена для всего рассматриваемого интервала , для нахождения коэффициентов многочлена необходимо использовать все уравнения системы (13). Данная система содержит уравнение, следовательно, с ее помощью можно определить коэффициент. Поэтому максимальная степень интерполяционного многочлена , и многочлен принимает вид:
(14)
2.1 Локальная и глобальная интерполяция
Одной из основных задач численного анализа является задача об интерполяции функций. Пусть задана сетка и в её узлах заданы значения функции , равные . Требуется построить интерполянту ? функцию , совпадающую с функцией в узлах сетки:
.
Основная цель интерполяции - получить быстрый (экономичный) алгоритм вычисления значений для значений , не содержащихся в таблице данных.
Интерполирующие функции , как правило строятся в виде линейных комбинаций некоторых элементарных функций:
,
где ? фиксированный линейно независимые функции, ? не определенные пока коэффициенты.
Получаем систему из уравнений относительно коэффициентов :
Предположим, что система функций такова, что при любом выборе узловa отличен от нуля определитель системы:
Тогда по заданным однозначно определяются коэффициенты .
Если задан узел интерполяции, то на этих узлах можно построить один интерполяционный многочлен n-й степени, многочленов первой степени и большой набор многочленов степени меньше n, опирающиеся на некоторые из этих узлов.
Теоретически максимальную точность обеспечивает многочлен более высокой степени. Однако на практике наиболее часто используют многочлены невысоких степеней, во избежание погрешностей при расчетах коэффициентов при больших степенях многочлена.
Если функция интерполируется на отрезке с помощью единого многочлена для всего отрезка, то такую интерполяцию называют глобальной. В случае локальной интерполяции на каждом интервале строится отдельный интерполяционный полином невысокой степени.
2.2 Кусочно-линейная интерполяция
Простейшим и часто используемым видом локальной интерполяции является линейная (или кусочно-линейная) интерполяция. Она заключается в том, что узловые точки соединяются отрезками прямых (Рис.3.1), то есть через каждые две точки и проводится полином первой степени:
, (15)
Коэффициенты и разные на каждом интервале , и находятся из выполнения условий интерполяции на концах отрезка:
(16)
Из системы уравнений (16) можно найти коэффициенты:
(17)
При использовании кусочно-линейной интерполяции сначала нужно определить интервал, в который попадает значение x, а затем подставить его в выражение (15), используя коэффициенты для данного интервала.
Рисунок 8 - Кусочно-линейная интерполяция
2.3 Кусочно-квадратичная интерполяция
В случае квадратичной интерполяции, для каждых трех узловых точек строится уравнение параболы:
, (18)
Здесь коэффициенты и разные на каждом интервале и определяются решением системы уравнений для условия прохождения параболы через три точки:
(19)
Из системы уравнений (19) можно найти коэффициенты:
Рисунок 9 - Кусочно-квадратичная интерполяция
2.4 Кубический сплайн
Интерполяция кубическими сплайнами является частным случаем кусочно-полиномиальной интерполяции. В этом специальном случае между любыми двумя соседними узлами функция интерполируется кубическим полиномом. Его коэффициенты на каждом интервале определяются из условий сопряжения в узлах:
.
Кроме того, на границе при и ставятся условия:
. (20)
Будем искать кубический полином в виде:
Из условия имеем:
(21)
.
Вычислим производные:
,
и потребуем их непрерывности при :
(22)
.
Общее число неизвестных коэффициентов, очевидно, равно , число уравнений (21) и (22) равно . Недостающие два уравнения получаем из условия (20) при и :
.
Выражение из (22)
,
подставляя это выражение в (21) и исключая , получим
Подставив теперь выражения для и в первую формулу (22), после несложных преобразований получаем для определения разностное уравнение второго порядка:
(23)
С краевыми условиями:
(24)
Условие эквивалентно условию
и уравнению
.
Разностное уравнение (23) с условиями (24) можно решить методом прогонки, представив в виде системы линейных алгебраических уравнений вида , где вектор соответствует вектору , вектор поэлементно равен правой части уравнения (23), а матрица имеет следующий вид:
где и .
2.5 Кусочно-квадратичная интерполяция функции по таблице значений
Построить график через экспериментальные точки, представленные в таблице 1, кусочно-квадратичной интерполяцией и вычислить значения неизвестной функции в промежуточных точках.
Таблица 1 - Экспериментальные данные для интерполяции
С помощью программы Matlab напишем программу интерполяции функции.
Листинг программы:
x = [-5 -3.5 -2 -0.5 2 6 10 13];
y = [4.7 7.5 11 11.5 11.5 10 11.5 10.4];
koff (x,y);
disp(' x y(x)')
xy = [-10 -1.5 0.5 4.5 12 20];
XY=[];
for i=1:length(xy)
XY(i) = dots (x, y, xy(i));
disp([xy(i) XY(i)])
end
xx = [0.5 3.5 6.5 8 9.5 11 13.5 16.5 18.5];
yy = [2.5 13 10.5 2 1.5 6 9 4.5 3.5];
koff (xx, yy);
disp(' xx yy(x)')
xxyy = [1 3 7.5 9 12 15 20];
XXYY=[];
for i=1:length(xxyy)
XXYY(i) = dots (xx, yy, xxyy(i));
disp([xxyy(i) XXYY(i)])
end
С помощью функции koff были произведены расчеты коэффициентов для уравнения параболы по трем точкам.
function [] = koff(x,y)
h = 0.05; % новый небольшой шаг х
% рисуем график
plot(x,y,'or')
grid on;
hold on
for i = 1:length(x)-2
% находим коэффициенты для уравнения параболы по 3 точкам
a = ((y(i+2) - y(i))*(x(i+1) - x(i)) - (y(i+1) - y(i))*(x(i+2) - x(i)))/...
((x(i+2)^2 - x(i)^2)*(x(i+1) - x(i)) - (x(i+1)^2 - x(i)^2)*(x(i+2) - x(i)));
b = (y(i+1) - y(i) - a*(x(i+1)^2 - x(i)^2)) / (x(i+1) - x(i));
c = y(i) - (a*x(i)^2 + b*x(i));
k=[a b c];%вектор коэффициентов
if (i==length(x)-2)
t = x(i):h:x(i+2);
else
t = x(i):h:x(i+1);
end
f = k(1)*t.^2+k(2)*t+k(3);%для первого случая
plot(t,f)
end
end
Значения функции в расчетных точках приведены на рисунке 11. Расчеты были произведены функцией dots.
function [ Z ] = dots(x,y,z)
i=1;
while(z>x(i))
i=i+1;
if (i == length(x)+1)
i=length(x);
break;
end
end
if (i == 1)
a = ((y(i+2) - y(i))*(x(i+1) - x(i)) - (y(i+1) - y(i))*(x(i+2) - x(i)))/((x(i+2)^2 - x(i)^2)*(x(i+1) - x(i)) - (x(i+1)^2 - x(i)^2)*(x(i+2) - x(i)));
b = (y(i+1) - y(i) - a*(x(i+1)^2 - x(i)^2)) / (x(i+1) - x(i));
c = y(i) - (a*x(i)^2 + b*x(i));
Z = a*z^2+b*z+c;
else if (i == length(x))
a = ((y(i) - y(i-2))*(x(i-1) - x(i-2)) - (y(i-1) - y(i-2))*(x(i) - x(i-2)))/((x(i)^2 - x(i-2)^2)*(x(i-1) - x(i-2)) - (x(i-1)^2 - x(i-2)^2)*(x(i) - x(i-2)));
b = (y(i-1) - y(i-2) - a*(x(i-1)^2 - x(i-2)^2)) / (x(i-1) - x(i-2));
c = y(i-2) - (a*x(i-2)^2 + b*x(i-2));
Z = a*z^2+b*z+c;
else
Z = y(i-1)*((z-x(i))*(z-x(i+1)))/((x(i-1)-x(i))*(x(i-1)-x(i+1)))+y(i)*((z-x(i-1))*(z-x(i+1)))/((x(i)-x(i-1))*(x(i)-x(i+1)))+y(i+1)*((z-x(i-1))*(z-x(i)))/((x(i+1)-x(i-1))*(x(i+1)-x(i)));
end
end
end
Рисунок 10 ? Интерполяция для первой и второй функций
Рисунок 11 ? Таблица значений после окончания работы программы первой и второй функции соответственно
2.6 Кубический сплайн функции по таблице значений
Построить график кубического сплайна и вычислить значения неизвестной функции f(x) в промежуточных точках таблицы 1. Функция dots из предыдущего задания.
Листинг программы:
x = [-5 -3.5 -2 -0.5 2 6 10 13];
y = [4.7 7.5 11 11.5 11.5 10 11.5 10.4];
koff(x,y)
xy = [-10 -1.5 0.5 4.5 12 20];
XY=[];
for i=1:length(xy)
XY(i) = dots (x, y, xy(i));
end
xx = [0.5 3.5 6.5 8 9.5 11 13.5 16.5 18.5];
yy = [2.5 13 10.5 2 1.5 6 9 4.5 3.5];
koff(xx,yy)
xxyy = [1 3 7.5 9 12 15 20];
XXYY=[];
h=[];
d=[];
m=[];
for i=1:8
h(i)=xx(i+1)-xx(i);
end
for i=1:5
d(i)=6*(((xxyy(i+2)-xxyy(i+1))/h(i+1))-((xxyy(i+1)-xxyy(i))/h(i))); %правая ч СЛАУ(ф из т)
end
M=[0;0];
for i=1:5
for j=1:5
if(i==j)
M(i, j)=2*(h(i)+h(i+1));
else
if((j-i)==1)
M(i, j)=h(j);
else
if((i-j)==1)
M(i, j)=h(i);
else
M(i, j)=0;
end
end
end
end
end
disp(M);
A=diag(M,-1); %коэф под гл диаг
B=diag(M); %коэф гл диаг
C=diag(M,1); %коэф над гл диаг
D=d; %правая ч СЛАУ
n=length(B);
q=zeros(1,n);
r=zeros(1,n);
q(1)=r(1)==0;
for j=1:n-2
q(j+1)=C(j+1)/(B(j+1)-A(j)*q(j));
end
r(1)=D(1)/B(1);
for j=1:n-1
r(j+1)=(D(j+1)-A(j)*r(j))/(B(j+1)-A(j)*q(j));
end
X(n)=r(n);
for j=n-1:-1:1
X(j)=r(j)-q(j)*X(j+1);
end
X
function [] = koff(x,y)
h = 0.001; % новый небольшой шаг х
% рисуем график
plot(x,y,'or')
grid on;
hold on
for i = 1:length(x)-2
a = ((y(i+2) - y(i))*(x(i+1) - x(i)) - (y(i+1) - y(i))*(x(i+2) - x(i)))/...
((x(i+2)^2 - x(i)^2)*(x(i+1) - x(i)) - (x(i+1)^2 - x(i)^2)*(x(i+2) - x(i)));
b = (y(i+1) - y(i) - a*(x(i+1)^2 - x(i)^2)) / (x(i+1) - x(i));
c = y(i) - (a*x(i)^2 + b*x(i));
k=[a b c];%вектор коэффициентов
if (i==length(x)-2)
t = x(i):h:x(i+2);
else
t = x(i):h:x(i+1);
end
f = k(1)*t.^2+k(2)*t+k(3);%для первого случая
plot(t,f)
end
end
Рисунок 12 ? Кубическая интерполяция для первой и второй функции
Рисунок 13 ? Значения второй производной после окончания работы программы
Вывод по разделу 2
Кусочно-квадратичная интерполяция позволяет из набора значений получить некоторую графическую зависимость и рассчитать значения в промежуточных точках. При столкновении с научными и инженерными расчётами, приходится оперировать наборами значений, полученных опытным путём или методом случайной выборки. Как правило, на основании этих наборов требуется построить функцию, на которую могли бы с высокой точностью попадать другие получаемые значения, для этого подходит одна из разновидностей аппроксимации - интерполяция.
3. Решение обыкновенных дифференциальных уравнений
Дифференциальные уравнения являются основным математическим инструментом моделирования и анализа разнообразных явлений и процессов в науке и технике.
Методы их решения подразделяются на два класса:
аналитические методы, в которых решение получается в виде аналитических функций;
численные (приближенные) методы, где искомые интегральные кривые получают в виде таблиц их численных значений.
Применение аналитических методов позволяет исследовать полученные решения методами математического анализа и сделать соответствующие выводы о свойствах моделируемого явления или процесса. К сожалению, с помощью таких методов можно решать достаточно ограниченный круг реальных задач. Численные методы позволяют получить с определенной точностью приближенное решение практически любой задачи.
Решить дифференциальное уравнение
(25)
численным методом означает, что для заданной последовательности аргументов и числа , не определяя аналитического вида функции , найти значения , удовлетворяющие начальным условиям:
.
3.1 Метод Эйлера
Этот метод является сравнительно грубым и применяется в основном для ориентировочных расчетов. Однако идеи, положенные в основу метода Эйлера, являются исходными для ряда других численных методов.
Пусть дано обыкновенное дифференциальное уравнение (ОДУ) с начальными условиями (задача Коши):
(26)
и удовлетворяются условия существования и единственности решения.
Требуется найти решение задачи Коши (26) на отрезке . Найдем решение в виде таблицы . Для этого разобьем отрезок на n равных частей и построим последовательность:
,
где - шаг интегрирования.
Проинтегрируем исходное уравнение на отрезке :
.
Полученное соотношение можно переписать как
. (27)
Если считать подынтегральную функцию постоянной на участке и равной значению в начальной точке этого интервала , то получим
.
Подставляя полученный результат в формулу (27), получим основную расчетную формулу метода Эйлера:
. (28)
Вычисление значений осуществляется с использованием формулы (28) следующим образом. По заданным начальным условиям и y0, полагая в выражении (28), вычисляется значение:
. (29)
Далее, определяя значение аргумента x по формуле , используя найденное значение y1 и полагая в формуле (28) , вычисляем следующее приближенное значение интегральной кривой как
. (30)
Поступая аналогичным образом при , определяем все остальные значения yk, в том числе последнее значение
, (31)
которое соответствует значению аргумента .
Таким образом, соединяя на координатной плоскости точки отрезками прямых в качестве приближенного представления искомой интегральной кривой , получаем ломанную линию с вершинами в точках .
Метод Эйлера может быть применен к решению систем дифференциальных уравнений.
Пусть задана система двух уравнений первого порядка:
(32)
с начальными условиями
.
Необходимо найти решение этой задачи Коши. Проводя аналогичные рассуждения, получаем расчетные формулы вида:
(33)
где h - шаг интегрирования.
При расчетах полагается, что и . В результате применения расчетной схемы получается приближенное представление интегральных кривых и в форме двух ломанных Эйлера, построенных по полученным таблицам . Точность метода Эйлера .
3.2 Решение ОДУ методом Эйлера
Отрезок от -3 до -1 с шагом 0,2.
ОДУ первого порядка (задача Коши):
Пишем код программы, в которой представлено решение данного ОДУ, в среде MatLab. Результат работы программы представлен на рисунке 15. График показан на рисунке (используется функция koff из задания №2).
Листинг программы:
a=-3;
b=-1;
h=0.2;
k=1;
ya = 0.402;
X = a+h:h:b;
disp(' x y(x)')
for x = a+h:h:b;
f=-3*ya*sin(3*x);
ya = ya + h*f;
Y(k) = ya;
k=k+1;
disp([x,ya])
end
koff(X,Y)
Рисунок 14 - График заданной функции
Рисунок 15 - Таблица значений после окончания работы программы
3.3 Решение ОДУ методом Эйлера-Коши
ОДУ первого порядка (задача Коши)
Отрезок от -2 до 2 с шагом 0,4
Пишем код программы с методом решения в среде MatLab с указанием интервала с шагом и начального приближения. В программе используется функция koff из задания №2. Результат работы программы представлен на рисунке 17. График показан на рисунке 16.
Листинг программы:
a=-2;%интервал
b=2;
h=0.4;%шаг
k=1;
YY=[];
ya=-0.111;
Y=0;
eps = 0.001;
X = a+h:h:b;
disp(' x y(x)')
for x = a+h:h:b;
f=2*x-2*ya+exp(-x)-10;
yy = ya + h*f;%Эйлер
z=yy;
for j=1:1000
fh=2*(x+h)-2*z+exp(-(x+h))-10;
Y = ya + 1/2*h*(f+fh);%уточнение
if ((Y-yy)<eps)
yy=Y;
else
z=Y;
end
end
YY(k) = yy;
k=k+1;
disp([x, yy])
end
koff(X,YY)
Рисунок 16 - График функции
Рисунок 17 - Таблица значений после окончания работы программы
Вывод по разделу 3
Были рассмотрены 2 метода решения ОДУ: Эйлера и Эйлера - Коши. В методе Эйлера происходит движение не по интегральной кривой, а по касательной к ней. На каждом шаге касательная находится уже для новой интегральной кривой (что и дало название методу - метод ломаных), таким образом ошибка будет возрастать с отдалением x от x0. То есть метод дает низкую точность. Метод Эйлера-Коши базируется на предыдущем, однако здесь апостериорная погрешность контролируется на каждом шаге вычисления, что повышает точность.
Заключение
Задачи, на которые ответ нужно дать в виде числа, как известно, решаются с помощью математических методов. На сегодняшний день существует три основных группы таких методов: аналитические, графические и численные.
При использовании аналитических методов решение задачи удается выразить с помощью формул. Например, если задача состоит в решении простейших алгебраических, тригонометрических, дифференциальных и т.д. уравнений, то использование известных из курса математики приемов сразу приводит к цели.
Преимущество аналитических методов: в результате применения аналитических методов за небольшой отрезок сразу получается точный ответ.
Недостаток аналитических методов: аналитические методы применимы лишь к небольшому числу, как правило, не очень сложных по своей структуре задач. Так, например, до сих пор не удалось решить в общем виде уравнение пятой степени.
Основная идея графических методов состоит в том, что решение находится путем геометрических построений. Например, если уравнение не удается решить аналитически, то строят график функции и абсциссу точки пересечения его с осью берут за приближенное значение корня.
Недостаток графических методов: в результате применения графических методов ответ получается с погрешностью, недопустимой в силу своей большой величины.
Основным инструментом для решения сложных математических моделей и задач в настоящее время являются численные методы. Они сводят решение задачи к выполнению конечного числа арифметических действий над числами и дают результат в виде числового значения с погрешностью, приемлемой для данной задачи.
Численные методы разработаны давно. Однако при вычислениях вручную они могли использоваться лишь для решения не слишком трудоемких задач. С появлением компьютеров, которые за короткое время могут выполнить миллиарды операций, начался период бурного развития численных методов и внедрения их в практику
К инженерным приложениям численных методов можно отнести расчеты магнитных и электростатических линз для заряженных частиц, различного рода радиотехнические расчеты, включая, например, проектирование СВЧ-волноводов. В инженерной практике решаются численными методами различные задачи теоретической механики, например, задачи столкновения (в том числе динамический хаос).
Библиографический список
1. Вержбицкий В.М. Численные методы. Линейная алгебра и нелинейные уравнения. М.: Оникс 21 век, 2005. - 636 с.
2. Корниенко В.С. Элементы математики [Текст] /В.С. Корниенко; Волгогр. гос. с.-акад. Волгоград, 2009. 296 с.
3. Вержбицкий В.М. Численные методы. Математический анализ и обыкновенные дифференциальные уравнения. М.: Оникс 21 век, 2005. - 400 с.
4. Бахвалов Н.С. Численные методы / Н.С. Бахвалов, Н.П. Жидков, Г.М. Кобельков - М.: Бином. Лаборатория знаний, 2008. - 432 с.
5. Ракитин В.И. Практическое руководство по методам вычислений / Ракитин В.И. - М.: Москва. Высшая школа 1998г. - 374 с.
6. Пирумов У.Г. Численные методы: Учеб. пособие для вузов / У.Г. Пирумов. - 2-е изд., испр. и доп. - М.: Дрофа, 2003. - 244 с.
7. СТП ОмГУПС 1. 2.-2005. Общие требования и правила оформления текстовых документов
Размещено на Allbest.ru
Подобные документы
Численные методы решения систем линейных уравнений: Гаусса, простой итерации, Зейделя. Методы аппроксимации и интерполяции функций: неопределенных коэффициентов, наименьших квадратов. Решения нелинейных уравнений и вычисление определенных интегралов.
курсовая работа [322,7 K], добавлен 27.04.2011Проектирование методов математического моделирования и оптимизации проектных решений. Использование кусочной интерполяции при решении задач строительства автомобильных дорог. Методы линейного программирования. Решение специальных транспортных задач.
методичка [690,6 K], добавлен 26.01.2015Основные понятия теории погрешностей. Приближенное решение некоторых алгебраических трансцендентных уравнений. Приближенное решение систем линейных уравнений. Интерполирование функций и вычисление определенных интегралов, дифференциальных уравнений.
методичка [899,4 K], добавлен 01.12.2009Решение нелинейных уравнений методом касательных (Ньютона), особенности и этапы данного процесса. Механизм интерполирования функции и численное интегрирование. Приближенное решение обыкновенных дифференциальных уравнений первого порядка методом Эйлера.
курсовая работа [508,1 K], добавлен 16.12.2015Изучение численных методов приближенного решения нелинейных систем уравнений. Составление на базе вычислительных схем алгоритмов; программ на алгоритмическом языке Фортран - IV. Приобретение практических навыков отладки и решения задач с помощью ЭВМ.
методичка [150,8 K], добавлен 27.11.2009Вычисление приближенных величин и погрешностей. Решение алгебраических и трансцендентных уравнений, интерполяция функций и методы численного интегрирования. Применение метода наименьших квадратов к построению эмпирических функциональных зависимостей.
курсовая работа [378,5 K], добавлен 08.01.2013Решение систем линейных алгебраических уравнений методом простой итерации. Полиномиальная интерполяция функции методом Ньютона с разделенными разностями. Среднеквадратическое приближение функции. Численное интегрирование функций методом Гаусса.
курсовая работа [2,4 M], добавлен 14.04.2009Решение эллиптических и параболических дифференциальных уравнений в частных производных. Суть метода Кранка-Николсона и теории разностных схем для теплопроводности. Построение численных методов с помощью вариационных принципов, описание Matlab и Mathcad.
курсовая работа [1,4 M], добавлен 13.03.2011Определение дифференциальных уравнений в частных производных параболического типа. Приведение уравнения второго порядка к каноническому виду. Принцип построения разностных схем. Конечно-разностный метод решения задач. Двусторонний метод аппроксимации.
дипломная работа [603,8 K], добавлен 24.01.2013Приближенные числа и действия над ними. Решение систем линейных алгебраических уравнений. Интерполирование и экстраполирование функций. Численное решение обыкновенных дифференциальных уравнений. Отделение корня уравнения. Поиск погрешности результата.
контрольная работа [604,7 K], добавлен 18.10.2012