Upload
xaviera-mcguire
View
54
Download
0
Embed Size (px)
DESCRIPTION
Теория и практика программирования задач на ЭВМ. Содержание курса. Введение в численные методы Методы решения СЛАУ Исчисление конечных разностей Задача интерполяции Интерполяционный многочлен Лагранжа Интерполяционный многочлен Ньютона Сплайн-интерполяция Метод наименьших квадратов - PowerPoint PPT Presentation
Citation preview
1
Теория и практика программирования
задач на ЭВМ
2
Содержание курса Введение в численные методы Методы решения СЛАУ Исчисление конечных разностей Задача интерполяции Интерполяционный многочлен Лагранжа Интерполяционный многочлен Ньютона Сплайн-интерполяция Метод наименьших квадратов Численное дифференцирование Численное интегрирование:
Методы прямоугольника Метод трапецииМетод парабол (метод Симпсона)
Введение в Matlab Примеры программной реализации
3
Список литературы
1. Формалев В.Ф., Ревизников Д.Л. Численные методы. – М.: ФИЗМАТЛИТ, 2004.
2. Руководство MATLAB3. А.А.Самарский, А.В.Гулин. Численные
методы М.: Наука, 1989.4. А.А.Самарский. Введение в численные
методы М.: Наука, 1982.5. Петров И.Б., Лобанов А.И. Введение в
вычислительную математику.
4
Введение в численные методы
Первое применение вычислительных методов принадлежит древним египтянам, которые умели вычислять диагональ квадрата за конечное количество действий. Они также могли находить квадратный корень из 2, скорее всего, с помощью алгоритма, в дальнейшем получившего название формулы Герона, а еще позднее — метода Ньютона: uk+1=1/2(uk+2/uk), u0=a
Пример. Решается задача Коши для обыкновенного дифференциального
уравнения 2-го порядка:u''(t) = u(t), u(0) = 1, u'(0) = - 1.Общее решение имеет видu(t) = 0,5[u(0) + u'(0)]et + 0,5[u(0) - u'(0)]e- t.
При заданных начальных данных точное решение задачи: u(x) = e-
t, однако малая погрешность δ в их задании приведет к появлению члена δe-t, который при больших значениях аргумента может существенно исказить решение.
5
Определение: Погрешность измерения — оценка отклонения измеренного значения величины от её истинного значения. Погрешность измерения является характеристикой (мерой) точности измерения.
6
Определение: Абсолютная погрешность измерения (англ. absolute error of a measurement) – погрешность измерения, выраженная в единицах измеряемой величины.
7
Определение: Относительное удлинение - это отношение приращенной в результате растяжения длины к первоначальной длине образца, выраженное в процентах
8
Определение: Относительная погрешность измерения (англ. relative error) – погрешность измерения, выраженная отношением абсолютной погрешности измерения к действительному или измеренному значению измеряемой величины.Примечание. Относительную погрешность в долях или процентах находят из отношений:
9
Численное решение систем линейных алгебраических уравнений
Пусть дана система линейных алгебраических уравнений (СЛАУ):
После (n-1)-го шага алгоритма Гаусса получаем следующую расширенную матрицу с контрольными суммами, содержащую верхнюю треугольную матрицу СЛАУ
10
Пример. Методом Гаусса решить СЛАУ:
11
Теория приближений
(1)
12
Исчисление конечных разностей
13
Задача интерполяции
14
Интерполяционный многочлен Лагранжа
15
Интерполяционный многочлен Ньютона
В случае равноудаленных центров интерполяции, находящихся на единичном расстоянии друг от друга, справедлива формула:
16
Сплайн-интерполяция
17
Кубический сплайн
18
Метод наименьших квадратов
19
Численное дифференцирование
20
21
Численное интегрирование
Впервые разработал И. Ньютон. Численное интегрирование основано на том, что функция заменяется интерполяционным многочленом:
F(x)=Р(х)Р(х)=a0+a1x1+a2x2+…+anxn
(строится по точкам, то есть P(xi)=F(xi)
22
Применение численных методов
Т.к. не все функции интегрируются аналитическими способами, то приходится применять численные методы.Функция y=F(x) заменяется интерполяционным многочленом P(x), который в точках xi равен значению функции
P(xi)=F(xi)
23
Геометрическая интерпретация
Интеграл – площадь криволинейной (подинтегральной) трапеции, одной из боковых сторон которой является кривая У= F(x)
a b x
у
24
Методы интегрирования
В зависимости от степени интерполяционного многочлена выбираются различные методы интегрирования, в частностиМетоды прямоугольника
1. Слева2. Справа
Метод трапецииМетод парабол (метод Симпсона)
25
Метод прямоугольника
Для методов прямоугольника выбирается интерполяционный многочлен 0-порядка
Р(х)=a0
26
Метод прямоугольника слева Р(х0)=у0
Для метода прямоугольника слева интерполяционный многочлен Р(хi)=уi
x
y
x0
a bx1 x2 xn
у1
у0
у2
27
Метод прямоугольника слева
1 1
)(x
x
o
x
x
o
o o
hydxydxxf
x
y
x0
a bx1 x2 xn
у1
у0
у2
28
Метод прямоугольника слева
На отрезке [a, b] интеграл будет равен площади n-прямоугольниковИнтеграл слева вычисляется по формуле:
nb
a
Ryyynabdxxf n
)...()( 110
29
Rn - погрешность
где Rn - погрешность, которая вычисляется по формуле:
nMabRn
2)( 12
)(max],[
1 xfMba
30
Метод прямоугольника справа Р(х0)=у1
Для метода прямоугольника справа интерполяционный многочлен Р(хi)=уi+1
x
y
x0
a bx1 x2 xn
y1
y2
yn
31
Метод прямоугольника слева
1 1
11)(x
x
x
xo o
hydxydxxf
x
y
x0
a bx1 x2 xn
y1
y2
yn
32
Метод прямоугольника справа
На отрезке [a, b] интеграл будет равен площади n-прямоугольников:Интеграл справа вычисляется по формуле:
nb
a
Ryyynabdxxf n
)...()(21
33
Rn - погрешность
где Rn - погрешность, которая вычисляется по формуле:
nMabRn
2)( 12
)(max],[
1 xfMba
34
Метод трапеций
x
y
x0
a bx1 x2 xn
35
Метод трапеций
Для метода трапеций выбирается интерполяционный многочлен 1-порядка
F(x)=P(x) =a0+а1х
и нам известно, что F(x0)=y0 , F(x1)=y1
Построим интерполяционный многочлен
)()( 001
0 xxnyyyxP
36
hyy
hxyxyhyhyxyxyhy
hxyyhxyyhy
hxyy
xyhxxhxhx
nyy
hyxy
xxnyy
xyhxxhxhx
nyy
hxydxxxnyy
ydxxfhx
x
hx
x
)2
(2
2
2)())((2
2)(
)2
222)((
)22
)(()2
)(2))(()((
)())(()(
1000110100010
001000
001
00
000001
000
0001
00
000001
00
0
0
0
01
0
0
0
2222222
2221
2
2222
22
37
Интеграл по методу трапеции
Таким образом, интеграл, вычисляемый по методу трапеции на отрезке [a, b] равен:
n1n1n0
b
a
b
a
R)y...y2yy(
nab
P(x)dxf(x)dx
x
y
b
38
Rn – погрешность
где Rn – погрешность для метода трапеций, вычисляемая по формуле:
2
3
12)( MnabRn
)(max],[
2 xfMba
39
Метод Симпсона (парабол).
у2
у0
у1
x
y
x0
a bx1 x2 xn
40
Метод Симпсона (парабол)
Для этого метода промежуток разбиваем на чётное количество частей и считаем, что нам известны 3 точки:
y0=F(x0)
y1=F(x1)
y2=F(x2)
у2
у0
у1
x
y
x0
a bx1 x2 xn
41
Метод Симпсона (парабол)
))()((22
2
)()(
00012
001
0
hxxxxh
yyy
xxhyyyxP
42
Метод Симпсона (парабол)
))()((2
2
)()(
00012
001
0
222
2
hxxxxh
yyy
xxhyyyxP
Убедимся в том, что P(x2)=F(x2):
Заметим, что x2=x0+2h P(x)=y0+2y1-2y0+y2-2y1+y0=y2
43
Метод Симпсона (парабол)
На отрезке [x0, x0+2h] интеграл вычисляется по формуле:
hyyydxxPdxxfhx
x
hx
x
)4(31)()( 210
0
0
0
0
22
44
Интеграл для метода Симпсона на отрезке [a, b] вычисляется по формуле:
b
ann
nn
Ryyy
yyyyynab
dxxf
)...(2
)...(4(3
)(
2242
123120
45
Rn – погрешность где Rn – погрешность,
вычисляемая по формуле:
)(max
,3 xfM IV
ba
nMabRn
180)( 35
46
47
Работа с матрицами в среде MatLab
48
49
Оператор двоеточия
50
Автоматическое создание матриц
zeros – нулевая матрица rand – двумерное равномерное
распределение randn – двумерное нормальное
распределение ones- матрица, состоящая из единиц
51
Удаление строк и столбцов
52
Команда format
53
Выражения
Переменные Числа
Операторы функции
Несколько специальных функций предоставляют значения часто используемых констант.
54
55
Метод наименьших квадратов
56
Кубическая интерполяция
57
Метод Симпсона
#include <iostream>#include <sstream>using namespace std;double FX(double x){return x+exp(x); }void main(){double a,b;cout<<"Vvedite granic integrirovaniya (a,b): ";cin>>a>>b;cout<<"Znachenie integrala Simpona: "<<(b-a)/6*(FX(a)+FX(b)+4*FX((a+b)/2));system("PAUSE"); }
quad('x+exp(x)', 0, 1)
Ответ: 2.21886 Ответ: 2.2183
58
Метод прямоугольников
double f(double x){ return sin(x); }double rectangle_integrate(double a, double b, int n, double (*f)(double) ){ double result, h; int i; h = (b-a)/n; result = 0.0; for(i=1; i <= n; i++){ result += f( a + h * (i - 0.05) ); } result *= h; return result;}int main(void){ double integral; integral=rectangle_integrate(0,2,100,f); printf("The value of the integral is: %lf \n", integral); system("PAUSE"); return 0; }
a=0; b=2;h = 0.05; f = inline('sin(x)') x = a:h:b; y = f(x); I = sum(h*y)
Ответ:1.424297 Ответ: 1.4161
59
Метод трапеций double INTEGR(double x){ return x*exp(x)+log(x)+1;}double trapez(double left, double right, double h){ double sum = 0; double runner;
for(runner = left + h; runner < right; runner += h) sum += INTEGR(runner); sum = (sum + 0.5*(INTEGR(left) + INTEGR(right))) * h; return sum;}int main(int argc, char ** argv){char c; double a, b; double h; printf("vvedit nizniy mezu integr : ");scanf("%lf",&a); printf("vvedit verhniy mezu integr : "); scanf("%lf",&b); printf("Enter integration step : "); scanf("%lf",&h); double trap = trapez(a, b, h); printf("vidpovid za metodom trapezii %10.10f.\n",
trap);scanf("%c",&c);scanf("%c",&c);return 0; }
Ответ: 676.9040549041.
MATLABx=1:0.1:5;y=x.*exp(x)+log(x)+1;trapz(x,y)
ans = 602.4365