Решение уравнений и интерполяция функций
Ознакомление с численными методами решения нелинейных и дифференциальных уравнений и интерполяции функций, решение типовых задач с помощью предоставленного преподавателем программного обеспечения. Локальная, кусочно-квадратичная и глобальная интерполяция.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 18.02.2019 |
Размер файла | 2,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
25
Федеральное агентство железнодорожного транспорта
Омский государственный университет путей сообщения
Кафедра «Автоматика и системы управления»
РЕШЕНИЕ УРАВНЕНИЙ И ИНТЕРПОЛЯЦИЯ ФУНКЦИЙ
Пояснительная записка к курсовой работе
по дисциплине «Численные методы»
Студент
К.В. Надеин
Омск 2016
Реферат
Пояснительная записка содержит 33 страниц, 14 рисунков, 2 таблицы, 4 источника.
Численный метод, нелинейное уравнение, корень, итерация, аппроксимация интерполяция обыкновенное дифференциальное уравнение.
Объектом исследования являются приближенные численные методы решения некоторых математических и инженерных задач, а также программное обеспечение, реализующее эти методы.
Цель работы - ознакомиться с численными методами решения нелинейных и дифференциальных уравнений и интерполяции функций, решить предложенные типовые задачи с помощью предоставленного преподавателем программного обеспечения, сформулировать выводы по полученным решениям, отметить достоинства и недостатки методов, сравнить удобство использования и эффективность работы каждой программы.
Пояснительная записка к курсовому проекту оформлена в текстовом редакторе Microsoft Office 2007. Графики нелинейных функций построены с помощью программы Matlab. При решении обыкновенных дифференциальных уравнений использовалась среда математического моделирования Matlab.
Введение
В связи с развитием новой вычислительной техники инженерная практика наших дней все чаще и чаще встречается с математическими задачами, точное решение которых получить весьма сложно или невозможно. В этих случаях обычно прибегают к тем или иным приближенным вычислениям. Вот почему приближенные и численные методы математического анализа получили за последние годы широкое развитие и приобрели исключительно важное значение.
Новые вычислительные средства вызвали переоценку известных методов решения задач с точки зрения целесообразности их реализации на ЭВМ и стимулировали создание более эффективных, что привело к появлению новой дисциплины - вычислительной математики. Предметом изучения последней являются численные методы решения задач математического анализа: изучение алгоритмов и условий сходимости итерационных методов, определение границ применимости методов, исследования оценок погрешностей методов и вычислений. Главным разделом вычислительной математики является реализация численных методов на ЭВМ, то есть составление программы для требуемого алгоритма и решения с ее помощью конкретной задачи.
Любая прикладная задача формируется исходя из определенного физического смысла некоторого процесса (распределение тепла в стержне, описание траектории движения объектов). Прикладная математическая задача может быть сформулирована, например, из описания некоторой экономической модели (задача распределения ресурсов, задача планирования производства, транспортная задача перевозки грузов, оптимальных в заданном смысле). Следовательно, для постановки любой прикладной задачи нужна математическая модель. Поэтому, можно выделить следующие этапы решения задач на ЭВМ:
1) описание математической модели задачи на основе физической или экономической модели;
2) изучение методов решения поставленной математической модели задачи и создание новых методов;
3) выбор метода решения задачи исходя из заданной точности решения и особенностей задачи;
4) составление блок-схемы программы для решения задачи на ЭВМ;
5) отладка программы и оценка полученных результатов;
6) решение задачи на ЭВМ, построение графиков, получение оценки погрешностей, обоснование результатов.
В курсовом проекте рассматриваются не прикладные, а типовые математические задачи, которые могут возникнуть при переходе от реальных систем к их математическим моделям, поэтому основное внимание уделяется последнему этапу.
1. Решение нелинейных уравнений
Нелинейными уравнениями называются уравнения вида
,
где - нелинейная функция, которая может относиться к трем типам:
1) нелинейная алгебраическая функция вида
;
2) трансцендентные функции - тригонометрические, обратные тригонометрические, логарифмические, показательные и гиперболические функции;
3) различные комбинации этих функций, например, .
Решением нелинейного уравнения является такая точка , которая при подстановке в уравнение обращает его в тождество. На практике не всегда удается подобрать такое решение. В этом случае решение уравнения находят с применением приближенных (численных) методов. Тогда решением будет являться такая точка , при подстановке которой в уравнение последнее будет выполняться с определенной степенью точности, т.е. , где - малая величина. Нахождение таких решений и составляет основу численных методов и вычислительной математики.
Решение нелинейных уравнений разделяется на два этапа: отделение корней уравнений и уточнение корней нелинейных уравнений.
На первом этапе необходимо исследовать уравнение и выяснить, имеются корни или нет. Если корни имеются, то узнать, сколько их, и затем определить интервалы, в каждом из которых находится единственный корень.
Первый способ отделения корней - графический. Исходя из уравнения , можно построить график функции . Тогда точка пересечения графика с осью абсцисс является приближенным значением корня. Если f(x) имеет сложный вид, то ее можно представить в виде разности двух функций . Так как , то выполняется равенство . Если построить два графика , , то абсцисса точки их пересечения будет приближенным значением корня уравнения.
Второй способ отделения корней нелинейных уравнений - аналитический. Он основывается на следующих трех теоремах.
Теорема 1. Если функция непрерывна на отрезке и меняет на концах отрезка знак (т.е. ), то на содержится хотя бы один корень.
Теорема 2. Если функция непрерывна на отрезке , выполняется условие вида и производная сохраняет знак на , то на отрезке имеется единственный корень.
Теорема 3. Если функция является многочленом n-ой степени и на концах отрезка меняет знак, то на имеется нечетное количество корней (если производная сохраняет знак на , то корень единственный). Если на концах отрезка функция не меняет знак, то уравнение либо не имеет корней на , либо имеет четное количество корней.
При аналитическом методе исследований необходимо выявить интервалы монотонности функции . Для этого необходимо вычислить критические точки , в которых первая производная равна нулю или не существует. Тогда вся числовая ось разбивается на интервалы монотонности . На каждом из них определяется знак производной , где . Затем выделяются те интервалы монотонности, на которых функция меняет знак.
На втором этапе на каждом из этих интервалов для поиска корня используются численные итерационные методы уточнения корней, например, методы половинного деления, простых итераций или Ньютона.
1.1 Метод простых итераций
Пусть известно, что нелинейное уравнение имеет на отрезке единственный вещественный корень . Требуется найти этот корень с заданной точностью. Применяя тождественные преобразования, приведем уравнение к виду
.
Выберем произвольно приближенное значение корня и вычислим . Найденное значение подставим в правую часть соотношения (2) и вычислим . Продолжая процесс вычислений дальше, получим числовую последовательность . Если существует предел этой последовательности, то он и является корнем уравнения . В самом деле, пусть . Тогда, переходя к пределу в равенстве
и учитывая непрерывность функции на отрезке , получим
или .
Корень можно вычислить с заданной точностью по итерационной формуле
Достаточное условие, при котором итерационный процесс сходится, определяет следующая теорема: пусть функция определена и дифференцируема на отрезке , причем все ее значения и выполняется условие
,
тогда процесс итераций сходится независимо от начального значения и предельное значение является единственным корнем уравнения на .
Геометрическая интерпретация метода простых итераций заключается в следующем: если построить два графика функций и , то абсцисса точки их пересечения будет корнем . Построим итерационный процесс. Зададим . Вычислим - первое приближение и - второе приближение. В первом случае (рисунок 1, а) процесс сходящийся (), во втором (рисунок 1, б) - расходящийся ().
Часто, если итерационный процесс расходится из-за невыполнения условия , нелинейное уравнение можно привести к виду, допускающему сходящиеся итерации.
Выполнения условия сходимости можно добиться путем перехода от исходного уравнения к эквивалентному виду следующим образом: сначала умножить обе части уравнения (1) на , а затем прибавить к обеим частям x, тогда . Обозначив , получим уравнение . Константа с выбирается так, чтобы выполнялось достаточное условие сходимости итерационного процесса , т.е.
Условие равносильно двойному неравенству
,
поэтому константа выбирается из соотношений:
Метод простых итераций и почти все другие итерационные методы имеют два достоинства:
1) являются универсальными и самоисправляющимися, то есть любая неточность на каком-либо шаге итераций отражается не на конечном результате, а лишь на количестве итераций. Подобные ошибки устойчивы даже по отношению к грубым ошибкам (сбоям ЭВМ), если только ошибка не выбрасывает очередное приближение за пределы области сходимости;
2) позволяют достигнуть любой заданной точности при любом начальном приближении .
Недостатки методов:
- трудность приведения уравнения к виду .
- если начальное приближение находится далеко от корня, то число итераций при этом увеличивается, а объем вычислений возрастает.
Процесс итераций заканчивается при выполнении двух критериев:
1) Когда два последних приближения отличается между собой по модулю на заданную величину :
.
Одного критерия недостаточно, так как в случае крутизны графика, данное условие будет выполнено, но может находиться далеко от корня;
2) Когда последнее вычисленное приближение к корню удовлетворяет уравнению с заданной точностью:
.
Отдельно критерия бывает недостаточно, так как при пологой функции условие может быть выполнено, но может быть далеко от корня.
1.2 Метод Ньютона
Пусть уравнение имеет на интервале единственный корень, причем существует непрерывная на производная . Метод Ньютона служит для уточнения корней нелинейных уравнений в заданном интервале. Его можно рассматривать как частный случай метода простых итераций, если
.
Тогда итерационный процесс осуществляется по формуле:
.
Геометрически этот процесс представлен на рисунке 2. Он означает замену на каждой итерации k графика кривой касательной к ней в точках с координатами .
Рисунок 2 - Геометрическая интерпретация метода Ньютона
Достаточное условие сходимости обеспечивается выбором начальной точки . Начальным приближением служит один из концов отрезка , в зависимости от того, в каком из них выполняется достаточное условие сходимости
.
При произвольном начальном приближении итерации сходятся, если
.
Метод Ньютона рекомендуется применять для нахождения простых действительных корней уравнения .
Достоинством метода является то, что он обладает скоростью сходимости, близкой к квадратичной.
Недостатки метода:
- не при любом начальном приближении метод Ньютона сходится, а лишь при таком, для которого ;
- если , т.е. касательная к графику почти параллельна оси абсцисс, то и метод расходится;
- если , т.е. касательная к графику почти параллельна оси ординат, то и продвижения к корню не будет.
Последних трудностей можно избежать, применив модификацию метода Ньютона, в которой используется только касательная в точке начального приближения. Рабочая формула при этом имеет вид:
.
1.3 Решение нелинейного уравнения методом простых итераций
Нелинейное уравнение:
x5 / 3 + 2 = 0
Для приблизительной оценки корней нелинейного уравнения построим график функции с помощью программы MatLab (рисунок 3).
Рисунок 3 - График нелинейной функции y = f(x)
Из рисунка 3 зеленый график -- это график заданной функции, красный и синий - это графики по которым определяем корень
С помощью программы MatLab напишем код, представленный в листинге 1 для решения нелинейного уравнения методом простых итераций.
f = @(x) x.^5/3+2;
x = -10:0.1:10
y = -6./x.^4;
z = x.^5/3+2;
figure(1);
hold on;
plot(x,y,'b');
Листинг 1, лист 1 - Код программы
plot(x,r,'r');
plot(x,z,'g');
axis([-2 2 -2 2]);
xlabel('x');
ylabel('y');
grid on;
title ('Метод простых итераций');
e = 0.001
x1 = input ('Введите начальное значение х');
sub = 1;
k = 0;
while abs(sub)>e
p1 = x1 - f(x1)/20;
sub = p1 - x1;
x1 = p1;
k = k + 1;
end
disp ('Корень');
disp (x1);
disp ('Шаги');
disp (k);
Листинг 1, лист 2 - Код программы
Рисунок 4 - Результат работы программы
Результат работы программы представлен на рисунке 4. В данном случае итерационный процесс сходится; корень уравнения x= -1.4322 найден с заданной точностью за 9 итерации.
1.4 Решение нелинейного уравнения методом Ньютона
Нелинейное уравнение:
2x + lg x = 0(13)
Для приблизительной оценки корней нелинейного уравнения (13) построим график функции с помощью программы MatLab (рисунок 5).
Рисунок 5 - График нелинейной функции y = f(x)
График функции пересекает ось абсцисс в точке, находящаяся на отрезке [0.2;0.4].
С помощью программы MatLab напишем код, представленный в листинге 2 для решения нелинейного уравнения методом Ньютона.
f = @(x)2*x + log10(x);
d = @(x)2 + 1/x*log(10);
x = -10:0.1:10;
y = 2*x + log10(x);
figure();
plot(x,y,'b');
axis([-1 1 -2 2]);
xlabel('x');
Листинг 2, лист 1 - Код программы
ylabel('y');
grid on;
title ('Ньютон');
e = 0.001;
left = input ('Введите левую границу: ');
right = input ('Введите правую границу: ');
k = 0;
if f(left)*f(right)<0;
x1 = left;
x2 = right;
f2 = f(x2);
while abs(f2) > e
p1 = d(x1);
x2 = x1;
x1 = x1 - f(x1)/p1;
f2 = f(x2);
k = k + 1;
end
disp(x2);
disp(k);
else
disp ('Введите другие границы');
end
Листинг 2, лист 2 - Код программы
Рисунок 6 - Результат работы программы
Результат работы программы представлен на рисунке 6. Корень уравнения x= 0.2777 найден с заданной точностью за 15 итерации.
Были рассмотрены два метода решения нелинейных уравнений: Ньютона и простых итераций. Метод простых итераций является простейшим для нахождения корней нелинейных уравнений. Он уступает в скорости сходимости методу Ньютона, который в свою очередь, модифицированный метод простых итераций
2. Интерполяция функций
Пусть функция задана таблицей своих значений на интервале :
(14)
Задача интерполяции - найти функцию , принимающую в точках те же значения .
Условие интерполяции: (15)
При этом предполагается, что среди значений нет одинаковых. Точки называют узлами интерполяции.
Если ищется только на отрезке - то это задача интерполяции, а если за пределами первоначального отрезка, то это задача экстраполяции.
- интерполяция - определение промежуточных значений функции по известному дискретному набору значений функции.
- экстраполяция - определение значений функции за пределами первоначально известного интервала.
- аппроксимация - определение в явном виде параметров функции, описывающей распределение точек.
Задача нахождения интерполяционной функции имеет много решений, так как через заданные точки можно провести бесконечно много кривых, каждая из которых будет графиком функции, для которой выполнены все условия интерполяции. Для практики важен случай аппроксимации функции многочленами:
(16)
При этом искомый полином называется интерполяционным полиномом.
При построении одного многочлена для всего рассматриваемого интервала , для нахождения коэффициентов многочлена необходимо использовать все уравнения системы (16). Данная система содержит уравнение, следовательно, с ее помощью можно определить коэффициент. Поэтому максимальная степень интерполяционного многочлена , и многочлен принимает вид:
(17)
2.1 Локальная и глобальная интерполяция
Если задан узел интерполяции, то на этих узлах можно построить один интерполяционный многочлен n-й степени, многочленов первой степени и большой набор многочленов степени меньше n, опирающиеся на некоторые из этих узлов.
Теоретически максимальную точность обеспечивает многочлен более высокой степени. Однако на практике наиболее часто используют многочлены невысоких степеней, во избежание погрешностей при расчетах коэффициентов при больших степенях многочлена.
Если функция интерполируется на отрезке с помощью единого многочлена для всего отрезка, то такую интерполяцию называют глобальной. В случае локальной интерполяции на каждом интервале строится отдельный интерполяционный полином невысокой степени.
2.2 Кусочно-линейная интерполяция
Простейшим и часто используемым видом локальной интерполяции является линейная (или кусочно-линейная) интерполяция. Она заключается в том, что узловые точки соединяются отрезками прямых (Рис.3.1), то есть через каждые две точки и проводится полином первой степени:
, (18)
Коэффициенты и разные на каждом интервале, и находятся из выполнения условий интерполяции на концах отрезка:
(19)
Из системы уравнений (19) можно найти коэффициенты:
(20)
При использовании кусочно-линейной интерполяции сначала нужно определить интервал, в который попадает значение x, а затем подставить его в выражение (18), используя коэффициенты для данного интервала.
Рисунок 7 - Кусочно-линейная интерполяция
2.3 Кусочно-квадратичная интерполяция
В случае квадратичной интерполяции, для каждых трех узловых точек строится уравнение параболы:
, (21)
Здесь коэффициенты и разные на каждом интервале и определяются решением системы уравнений для условия прохождения параболы через три точки:
(22)
Из системы уравнений (22) можно найти коэффициенты:
Рисунок 8 - Кусочно-квадратичная интерполяция
2.4 Интерполяция кубическим сплайном
Сплайном называется определенная на функция, принадлежащая к классу l-раз непрерывно дифференцируемые функции, такая, что, что на каждом промежутке - это многочлен m-й степени.
Сплайн по идее построения близок к кусочно-полиномиальной интерполяции, но имеет гладкую стыковку отдельных участков-многочленов в узлах.
Кубическим сплайном называется функция , которая:
1) На каждом отрезке является многочленном 3 степени;
2) Имеет непрерывные и на ;
3) В узловых точках выполняется равенство и ;
4) Имеет граничные условия.
Для интерполяции кубическим сплайном, шаг может быть неравномерным. А значение вторых производных находится из 3-х диагональных СЛАУ методом прогонки.
2.5 Кусочно-квадратичная интерполяция и интерполяция кубическим сплайном функции по таблице значений
Построить график через экспериментальные точки, представленные в таблице 1, кусочно-квадратичной интерполяцией и интерполяция кубическим сплайном и вычислить значения неизвестной функции в промежуточных точках.
Таблица 1 - Экспериментальные данные для интерполяции
С помощью программы MatLab напишем программу листинг 3 для кусочно-квадратичной интерполяции.
x0=[-10 -6 -2.5 -0.5 0.5 1.5 2.5 5 6.5 8.5];
y0=[0.25 1 4 7.5 -2.5 2 5 5.5 4 6];
x=[-8 -4 -1.5 0 1 2 4 6];
figure(1);
plot(x0,y0,'r');
axis([-12 10 -8 12]);
grid on;
hold on;
plot(x0,y0,'o');
n=10;
y=ones(1,n-2);
tmp=ones(1,3);
tmpy=ones(1,3);
rez = ones(1,3);
i=1;
while(i<=n-1)
j = 0;
if(i==n-1)
while(j<=2)
tmp(j+1)=x0(i-1+j);
tmpy(j+1)=y0(i-1+j);
j=j+1;
end
else
while(j<=2)
tmp(j+1)=x0(i+j);
tmpy(j+1)=y0(i+j);
j=j+1;
end
end
rez = gaussa4(tmp,tmpy);
l=x0(i):0.1:x0(i+1);
m=rez(1)*l.^2+rez(2)*l+rez(3);
figure(1);
plot(l,m,'b');
hold on;
k=1;
while(k<=n-2)
if(x(k)>=x0(i) && x(k)<=x0(i+1))
y(k)=rez(1)*x(k)^2+rez(2)*x(k)+rez(3);
plot(x(k),y(k),'*');
end
k=k+1;
Листинг 3, лист 1 - Код программы
end
i=i+1;
end
l=x0(9):0.1:x0(10);
m=rez(1)*l.^2+rez(2)*l+rez(3);
figure(1);
plot(l,m,'b');
axis([-12 10 -8 12]);
xlabel('l');
ylabel('m');
grid on;
hold on;
x
y
Листинг 3, лист 2 - Код программы
График для кусочно-квадратичной интерполяции, построенный с помощью программы MatLab, представлен на рисунке 9.
Рисунок 9 - Кусочно-квадратичная интерполяция для первой функции
С помощью программы MatLab напишем программу листинг 4 для интерполяции кубическим сплайном.
x0 = [-10 -7 -3 -1 0 1.5 3 4.5 7.5];
y0 = [2.5 4 6.5 4 1 -3.5 -4 -2.5 -4.5];
x = [-8 -4 1 2 3.5 6 10];
n = length(x0) -1;
y = ones(1,n-1);
h=ones(1,n);
D = ones(1,n-1);
A = ones(1,n-1);
B = ones(1,n-1);
C = ones(1,n-1);
i = 1;
while (i<=n)
h(i)=x0(i+1)-x0(i);
i=i+1;
end
i=1;
while (i<=n-1)
D(i)=6*((y0(i+2)-y0(i+1))/h(i+1)-(y0(i+1)-y0(i))/h(i));
i=i+1;
end
A(1)=0;
i=2;
while (i<=n-1)
A(i)=h(i);
i=i+1;
end
i=1;
while (i<=n-1)
B(i)=2*(h(i)+h(i+1));
i=i+1;
end
i=1;
while (i<=n-2)
C(i)=h(i+1);
i=i+1;
end
%метод прогонки
Q=zeros(1,n);
R=zeros(1,n);
Листинг 4, лист 1 - Код программы
i=1;
while (i<=n-1)
Q(i+1)=-(C(i)/(B(i)+A(i)*Q(i)));
R(i+1)=(D(i)-A(i)*R(i))/(B(i)+A(i)*Q(i));
i=i+1;
end
%обратный ход
M=zeros(1,n-1);
M(n-1)=R(n);
i=n-2;
while (i>=1)
M(i)=Q(i+1)*M(i+1)+R(i+1);
i=i-1;
end
M = [0, M, 0];
%формула для сплайна
k=1;
while(k<n)
i=1;
while(i<=n)
if(x(k)>=x0(i) && x(k)<=x0(i+1))
y(k)=(1/(6*h(i)))*((M(i)*(x0(i+1)-x(k))^3)+M(i+1)*(x(k)-x0(i))^3)+(1/h(i))*((y0(i)-((M(i)*h(i)^2)/6))*(x0(i+1)-x(k))+(y0(i+1)-((M(i+1)*h(i)^2)/6))*(x(k)-(x0(i))));
else
if(x(k)<x0(1))
y(k)=y0(1)+((-((x0(2)-x0(1))*M(2)))/6+(y0(2)-y0(1))/(x0(2)-x0(1)))*(x(k)-x0(1));
l=x(1):0.1:x0(1);
m=y0(1)+((-((x0(2)-x0(1))*M(2)))/6+(y0(2)-y0(1))/(x0(2)-x0(1)))*(l-x0(1));
figure(1);
plot(l,m,'b');
hold on;
end
if(x(k)>x0(n))
y(k)=y0(n+1)+((((x0(n+1)-x0(n))*M(n))/6+((y0(n+1)-y0(n))/(x0(n+1)-x0(n))))*(x(k)-x0(n+1)));
l=x0(n+1):0.1:x(n-1);
m=y0(n+1)+((((x0(n+1)-x0(n))*M(n))/6+((y0(n+1)-y0(n))/(x0(n+1)-x0(n))))*(l-
Листинг 4, лист 2 - Код программы
x0(n+1)));
figure(1);
plot(l,m,'b');
hold on;
end
end
l=x0(i):0.1:x0(i+1);
m=(1/(6*h(i)))*((M(i)*(x0(i+1)-l).^3)+M(i+1)*(l-x0(i)).^3)+(1/h(i))*((y0(i)-((M(i)*h(i)^2)/6))*(x0(i+1)-l)+(y0(i+1)-((M(i+1)*h(i)^2)/6))*(l-(x0(i))));
figure(1);
plot(l,m,'b');
hold on;
i=i+1;
end
k=k+1;
end
x
y
figure(1);
hold on;
plot(x0,y0,'r');
plot(x0,y0,'o');
axis([-20 20 -20 20]);
xlabel('x');
ylabel('y');
grid on;
plot(x,y,'*');
Листинг 4, лист 3 - Код программы
Графики для интерполяции кубическим сплайном, построенные с помощью программы MatLab, представлены на рисунке 10.
Рисунок 10 - Интерполяции кубическим сплайном для второй функции
Значения функции в расчетных точках приведены в таблице 2.
Таблица 2 - Значения функции в расчетных точках
0 |
Точки вычисления f(x) |
|||||||||
1 |
x |
-8 |
-4 |
-1.5 |
0 |
1 |
2 |
4 |
6 |
|
y |
0.2679 |
2.2273 |
9.6667 |
0.6875 |
-0.0625 |
3.7 |
5.75 |
4.2143 |
||
2 |
x |
-8 |
-4 |
1 |
2 |
3.5 |
6 |
10 |
||
y |
3.3437 |
6.3967 |
-2.2984 |
-4.1316 |
-3.4994 |
-2.7793 |
-7.7682 |
Кусочно-квадратичная интерполяция позволяет из набора значений получить некоторую графическую зависимость и рассчитать значения в промежуточных точках. При столкновении с научными и инженерными расчётами, приходится оперировать наборами значений, полученных опытным путём или методом случайной выборки. Как правило, на основании этих наборов требуется построить функцию, на которую могли бы с высокой точностью попадать другие получаемые значения, для этого подходит одна из разновидностей аппроксимации - интерполяция.
3. Решение обыкновенных дифференциальных уравнений
Дифференциальные уравнения являются основным математическим инструментом моделирования и анализа разнообразных явлений и процессов в науке и технике.
Методы их решения подразделяются на два класса:
аналитические методы, в которых решение получается в виде аналитических функций;
численные (приближенные) методы, где искомые интегральные кривые получают в виде таблиц их численных значений.
Применение аналитических методов позволяет исследовать полученные решения методами математического анализа и сделать соответствующие выводы о свойствах моделируемого явления или процесса. К сожалению, с помощью таких методов можно решать достаточно ограниченный круг реальных задач. Численные методы позволяют получить с определенной точностью приближенное решение практически любой задачи.
Решить дифференциальное уравнение
(23)
численным методом означает, что для заданной последовательности аргументов и числа , не определяя аналитического вида функции , найти значения , удовлетворяющие начальным условиям:
.
3.1 Метод Эйлера
Этот метод является сравнительно грубым и применяется в основном для ориентировочных расчетов. Однако идеи, положенные в основу метода Эйлера, являются исходными для ряда других численных методов.
Пусть дано обыкновенное дифференциальное уравнение (ОДУ) с начальными условиями (задача Коши):
численный дифференциальный программный интерполяция
(24)
и удовлетворяются условия существования и единственности решения.
Требуется найти решение задачи Коши (24) на отрезке . Найдем решение в виде таблицы . Для этого разобьем отрезок на n равных частей и построим последовательность
,
где - шаг интегрирования.
Проинтегрируем исходное уравнение на отрезке :
Полученное соотношение можно переписать как
.(25)
Если считать подынтегральную функцию постоянной на участке и равной значению в начальной точке этого интервала , то получим
.
Подставляя полученный результат в формулу , получим основную расчетную формулу метода Эйлера:
.(26)
Вычисление значений осуществляется с использованием формулы следующим образом. По заданным начальным условиям и y0, полагая в выражении (26), вычисляется значение
.(27)
Далее, определяя значение аргумента x по формуле , используя найденное значение y1 и полагая в формуле (26) , вычисляем следующее приближенное значение интегральной кривой как
.(28)
Поступая аналогичным образом при , определяем все остальные значения yk, в том числе последнее значение
,(29)
которое соответствует значению аргумента .
Таким образом, соединяя на координатной плоскости точки отрезками прямых в качестве приближенного представления искомой интегральной кривой , получаем ломанную линию с вершинами в точках .
Метод Эйлера может быть применен к решению систем дифференциальных уравнений.
Пусть задана система двух уравнений первого порядка:
(30)
с начальными условиями
.
Необходимо найти решение этой задачи Коши. Проводя аналогичные рассуждения, получаем расчетные формулы вида:
(31)
где h - шаг интегрирования.
При расчетах полагается, что и . В результате применения расчетной схемы (31) получается приближенное представление интегральных кривых и в форме двух ломанных Эйлера, построенных по полученным таблицам . Точность метода Эйлера .
3.2 Решение ОДУ методом Эйлера
ОДУ первого порядка (задача Коши):
ОДУ и начальные условия |
Отрезок |
Шаг |
||
4 |
от -2 до 0 |
0,2 |
С помощью программы MatLab напишем программу для решения ОДУ методом Эйлера. Результат работы программы представлен на рисунке 11. График показан на рисунке 12. Функция SP3 представлена в листинге 5.
t0=0:0.2:2;
n=length(t0);
y0=zeros();
y0(1)=1.251;
h=0.2;
t=t0;
i=1;
for t=-2:0.2:-0.2
y0(i+1)=y0(i)+h*(y0(i) - 2*log(t+4) + 2/(t+4));
i=i+1;
end
SP3(t0, y0);
y0
t0
Листинг 5, лист 1 - Код программы
function SP3(t0, y0)
n = length(t0) -1;
h = ones(1,n);
D = ones(1,n-1);
A = ones(1,n-1);
B = ones(1,n-1);
C = ones(1,n-1);
i = 1;
while (i<=n)
h(i)=t0(i+1)-t0(i);
i=i+1;
end
i=1;
while (i<=n-1)
D(i)=6*((y0(i+2)-y0(i+1))/h(i+1)-(y0(i+1)-y0(i))/h(i));
i=i+1;
end
A(1)=0;
i=2;
while (i<=n-1)
A(i)=h(i);
i=i+1;
end
i=1;
while (i<=n-1)
B(i)=2*(h(i)+h(i+1));
i=i+1;
end
i=1;
while (i<=n-2)
C(i)=h(i+1);
i=i+1;
end
Q=zeros(1,n);
R=zeros(1,n);
i=1;
while (i<=n-1)
Q(i+1)=-(C(i)/(B(i)+A(i)*Q(i)));
R(i+1)=(D(i)-A(i)*R(i))/(B(i)+A(i)*Q(i));
i=i+1;
end
M=zeros(1,n-1);
M(n-1)=R(n);
Листинг 5, лист 2 - Код программы
i=n-2;
while (i>=1)
M(i)=Q(i+1)*M(i+1)+R(i+1);
i=i-1;
end
M = [0, M, 0];
k=1;
while(k<n)
i=1;
while(i<=n)
l=t0(i):0.02:t0(i+1);
m=(1/(6*h(i)))*((M(i)*(t0(i+1)-l).^3)+M(i+1)*(l-t0(i)).^3)+(1/h(i))*((y0(i)-((M(i)*h(i)^2)/6))*(t0(i+1)-l)+(y0(i+1)-((M(i+1)*h(i)^2)/6))*(l-(t0(i))));
plot(l,m,'b');
hold on;
i=i+1;
end
k=k+1;
end
hold on;
t0
y0
plot(t0,y0,'r');
plot(t0,y0,'o');
xlabel('t');
ylabel('y');
grid on;
end
Листинг 5, лист 3 - Код программы
Рисунок 11 - Таблица значений после окончания работы программы
Рисунок 12 - График функции
3.3 Решение ОДУ методом Эйлера-Коши
ОДУ первого порядка (задача Коши)
ОДУ и начальные условия |
Отрезок |
Шаг |
||
4 |
от -4,5 до -0,5 |
0,4 |
С помощью программы Matlab напишем программу для решения ОДУ методом Эйлера. Результат работы программы представлен на рисунке 13. График показан на рисунке 14. Функция lagr представлена в листинге 6.
t0=-4.5:0.4:-0.5;
n=length(t0);
y0=zeros(1,n);
Листинг 6, лист 1 - Код программы
y1=zeros(1,n);
y0(1)=0.049;
h=0.4;
i=1;
t=t0;
for t=-4.5:0.4:-0.9
y1(i+1)=y0(i)+h*(-2*y0(i)/t);
t1=t+h;
y0(i+1)=y0(i)+(h/2)*(-2*y0(i)/t+(-2*y1(i+1)/t1));
i=i+1;
end
t0
y0
lagr(t0,y0);
function lagr(t0, y0)
t=-4.5:0.04:-0.5;
n = length(t0);
n1 = length(t);
L=ones(1,n1);
k=1;
l=length(t);
while(k<=l)
S=0;
i=1;
while(i<=n)
P=1;
j=1;
while(j<=n)
C=t0(i)-t0(j);
if(i==j)
j=j+1;
else
P=P*(t(k)-t0(j))/C;
j = j+1;
end
end
S=S+P*y0(i);
i=i+1;
end
L(k)=S;
k=k+1;
end
hold on;
Листинг 6, лист 2 - Код программы
plot(t,L,'b');
xlabel('t');
ylabel('y');
grid on;
plot(t0,y0,'r');
end
Листинг 6, лист 3 - Код программы
Рисунок 13 - Таблица значений после окончания работы программы
Рисунок 14 - График функции
Были рассмотрены 2 метода решения ОДУ: Эйлера и Эйлера - Коши. В методе Эйлера происходит движение не по интегральной кривой, а по касательной к ней. На каждом шаге касательная находится уже для новой интегральной кривой (что и дало название методу - метод ломаных), таким образом, ошибка будет возрастать с отдалением x от x0. То есть метод дает низкую точность. Метод Эйлера-Коши базируется на предыдущем, однако здесь апостериорная погрешность контролируется на каждом шаге вычисления, что повышает точность.
Заключение
Задачи, на которые ответ нужно дать в виде числа, как известно, решаются с помощью математических методов. На сегодняшний день существует три основных группы таких методов: аналитические, графические и численные.
При использовании аналитических методов решение задачи удается выразить с помощью формул. Например, если задача состоит в решении простейших алгебраических, тригонометрических, дифференциальных и т.д. уравнений, то использование известных из курса математики приемов сразу приводит к цели.
Преимущество аналитических методов: в результате применения аналитических методов за небольшой отрезок сразу получается точный ответ.
Недостаток аналитических методов: аналитические методы применимы лишь к небольшому числу, как правило, не очень сложных по своей структуре задач. Так, например, до сих пор не удалось решить в общем виде уравнение пятой степени.
Основная идея графических методов состоит в том, что решение находится путем геометрических построений. Например, если уравнение f(x) = 0 не удается решить аналитически, то строят график функции y = f(x) и абсциссу точки пересечения его с осью OX берут за приближенное значение корня.
Недостаток графических методов: в результате применения графических методов ответ получается с погрешностью, недопустимой в силу своей большой величины.
Несмотря на указанные недостатки, численные методы в настоящее время играют определяющую роль в развитии научно-технического прогресса, являясь основным аппаратом исследования инженерно- технических и экономических задач, связанных с расчетом, проектированием, управлением и оптимизацией конструкций, аппаратов и технологических процессов. Численные методы широко используются для математического моделирования природных явлений.
Библиографический список
1. Вержбицкий В.М. Численные методы. Линейная алгебра и нелинейные уравнения. М.: Оникс 21 век, 2005. - 636 с.
2. Вержбицкий В.М. Численные методы. Математический анализ и обыкновенные дифференциальные уравнения. М.: Оникс 21 век, 2005. - 400 с.
3. Бахвалов Н.С. Численные методы / Н.С. Бахвалов, Н.П. Жидков, Г.М. Кобельков - М.: Бином. Лаборатория знаний, 2008. - 432 с.
4. Ракитин В.И. Практическое руководство по методам вычислений / Ракитин В.И. - М.: Москва. Высшая школа 1998г. - 374 с.
Размещено на Allbest.ru
...Подобные документы
Решение уравнения методом половинного деления. Программа в Matlab для уравнения (x-2)cos(x)=1. Решение нелинейных уравнений методом Ньютона. Интерполяция заданной функции. Решение системы линейных алгебраических и обыкновенных дифференциальных уравнений.
курсовая работа [1,4 M], добавлен 15.08.2012Численные методы решения задач, сводящиеся к арифметическим и некоторым логическим действиям над числами, к действиям, которые выполняет ЭВМ. Решение нелинейных, системы линейных алгебраических, обыкновенных дифференциальных уравнений численными методами.
дипломная работа [1,4 M], добавлен 18.08.2009Составление алгоритма и программного обеспечения для реализации конечноразностных интерполяционных формул Ньютона, Гаусса и Стирлинга. Описание метода полиномиальной интерполяции. Изучение метода оптимального исключения для решения линейных уравнений.
курсовая работа [19,8 K], добавлен 25.12.2013Решение линейных дифференциальных уравнений численными и символьными методами в рамках пакета компьютерной математики MathCAD. Сравнения результов решений и применение их при исследовании функционирования автоматических систем и электрических агрегатов.
контрольная работа [51,5 K], добавлен 07.05.2009Численные методы решения нелинейных уравнений, систем линейных и нелинейных алгебраических уравнений, дифференциальных уравнений, определенных интегралов. Методы аппроксимации дискретных функций и методы решения задач линейного программирования.
методичка [185,7 K], добавлен 18.12.2014Роль интерполяции функций в вычислительной математике. Реализация интерполирования функций полиномом Лагранжа в программном продукте MatLab. Интерполяционная формула Лагранжа. Интерполяция по соседним элементам, кубическими сплайнами. Анализ результатов.
курсовая работа [1,4 M], добавлен 10.06.2012Численные методы решения задач. Решение алгебраических и трансцендентных уравнений. Уточнение корня по методу половинного деления. Решение систем линейных уравнений методом итераций. Методы решения дифференциальных уравнений. Решение транспортной задачи.
курсовая работа [149,7 K], добавлен 16.11.2008Методика и основные этапы построения ранжированных переменных, сферы и особенности их практического применения. Порядок построения графиков в декартовой системе. Приведение примеров решение нелинейных уравнений и их систем при помощи решающего блока.
контрольная работа [364,4 K], добавлен 27.03.2011Решение типовых задач с помощью языка программирования Turbo Pascal и табличного процессора Microsoft Excel 2007. Обратная геодезическая задача, прямая угловая задача, обратная геодезическая засечка, решение системы линейных уравнений методом Гаусса.
курсовая работа [1,3 M], добавлен 11.01.2011Суть метода Рунге-Кутта и его свойства. Решение дифференциальных уравнений первого порядка. Вычислительный блок Given/Odesolve. Встроенные функции rkfixed, Rkadapt, Bulstoer. Решения линейных алгебраических уравнений в среде MathCad и Microsoft Excel.
курсовая работа [1,1 M], добавлен 02.06.2014Итерационные методы решения нелинейных уравнений, системы линейных алгебраических уравнений (СЛАУ). Решение нелинейных уравнений методом интерполирования. Программная реализация итерационных методов решения СЛАУ. Практическое применение метода Эйлера.
курсовая работа [1,6 M], добавлен 20.01.2010Назначение и возможности пакета MATLAB, его основные составляющие. Набор вычислительных функций. Роль интерполяции функций в вычислительной математике. Пример интерполяции с четырьмя узлами. Интерполирование и сглаживание, схемы решения задач в MATLAB.
курсовая работа [594,5 K], добавлен 28.12.2012Исследование методов интерполяции функции и разработка программного продукта для автоматизации расчётов, выполняемых в данных методах. Обоснование выбора языка программирования. Требования к программе и программному изделию. Организация работы с ПЭВМ.
дипломная работа [2,1 M], добавлен 16.06.2017Математическое описание численных методов решения уравнения, построение графика функции. Cтруктурная схема алгоритма с использованием метода дихотомии. Использование численных методов решения дифференциальных уравнений, составление листинга программы.
курсовая работа [984,2 K], добавлен 19.12.2009Решение в среде Microsoft Excel с помощью программной модели "Поиск решения" транспортной задачи, системы нелинейных уравнений, задачи о назначениях. Составление уравнения регрессии по заданным значениям. Математические и алгоритмические модели.
лабораторная работа [866,6 K], добавлен 23.07.2012Разработка программы для решения нелинейных уравнений различными численными методами: с помощью дискриминанта и таблицы Горнера, теоремой Виетта. Требования к интерфейсу. Компоненты среды Delphi, использованные в программе. Реализация и тестирование.
курсовая работа [1,3 M], добавлен 20.04.2011Особенности решения уравнений с одной переменной методом половинного деления. Оценка погрешности метода простой итерации. Суть решения уравнений в пакете Mathcad. Векторная запись нелинейных систем. Метод Ньютона решения систем нелинейных уравнений.
курсовая работа [2,1 M], добавлен 12.12.2013Решение дифференциальных уравнений с использованием классических алгоритмов численных методов Эйлера и Рунге-Кутта 4-го порядка. Команды, используемые при решении обыкновенных дифференциальных уравнений в системе вычислений. Результат работы программы.
курсовая работа [226,6 K], добавлен 05.04.2013Понятие и характеристика некоторых методов интерполяции. Вычисление значения функции между заданными точками несколькими методами. Алгоритм линейной интерполяции. Алгоритм локальной интерполяции по формуле Лагранже. Инструкция пользования программой.
курсовая работа [186,5 K], добавлен 30.05.2015Схема и основные параметры элементов цепи. Вывод системы дифференциальных уравнений. Реализация алгоритма на языке программирования высокого уровня Pascal. Решение дифференциальных уравнений в пакете MathCAD. Решение интерполяции в пакете Excel.
курсовая работа [375,4 K], добавлен 06.01.2011