Министерство образования Российской Федерации ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Кафедра информатики
Ю.А. Кудинов...
90 downloads
365 Views
1MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Министерство образования Российской Федерации ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Кафедра информатики
Ю.А. Кудинов О.Г. Габдуллина
МЕТОДИЧЕСКИЕ УКАЗАНИЯ для вечерней и заочной формы обучения Основы математического моделирования
Оренбург 1999
ББК 22.18 в 6 97 К-88 УДК 519.8 (07)
1 Приближенное решение алгебраических и трансцендентных уравнений Представим уравнение в виде f(x)=0, где f- заданная функция. Такие уравнения могут быть алгебраическими или трансцендентными. Примеры алгебраических уравнений: 2x3-1.5x2+1=0, x3+2 x -4=0, 1 x
x2- + x 2 − 1 =0, Примеры трансцендентных уравнений: sinx-ex+3=0, x2+tgx=0. Если алгебраическое уравнение сложно, то его корни можно определить только приближенными методами. На практике коэффициенты уравнения определяются приблизительно, и, следовательно, сама задача о точном определении корней уравнения теряет смысл. Решение уравнения вида f(x)=0 приближенными методами состоит из двух этапов: − отделение корней, т. е. определение отрезков [α, β], в которых имеется только один корень; − уточнение приближенных значений корней, т. е. определение корней на каждом отрезке [α, β] с заданной степенью точности.
1.1 Отделение корней Пусть дано уравнение f(x)=0
(1.1)
где функция f(x) определена и непрерывна на некотором интервале a<x
Корень заведомо будет единственным, если производная f'(x) существует и сохраняет постоянный знак внутри интервала (α, β), т. е. если f'(x)>0 ( если f'(x)<0 ) при α<x<β. Процесс отделения корней начинается с установления знаков функций f(x) в граничных точках x= a и x= b интервала a<x
(1.2)
и произошло n+1 перемен знаков функции на интервале a<x
b−a , где n- число отрезков [αk, αk+1], где k=0,…,n-1. n
y f(a)
f(b) a
α0 f(α0)
b
х
Рисунок 1 f(a)>0, f(α0)<0, f(b)>0 – получили три перемены знаков для многочлена второй степени, следовательно на отрезках [a, α0], [α0, b] находятся изолированные корни. б) Если существует непрерывная производная f (x), и корни уравнения f (x)=0 определены, то процесс отделения корней уравнения f(x)=0 можно 3
упорядочить. Для этого достаточно подсчитать лишь знаки функции f(x) в точках нулей ее производной и в граничных точках x= a, и x= b в соответствии с рисунком 2. y f(x) x0
f'(x3)=0 x1
x2
x3
х
Рисунок 2 Второй способ – графическое отделение корней: действительные корни уравнения f(x)=0 приближенно определяются как абсциссы точек пересечения графика функции y= f(x) с осью x. Если f(x) состоит из простых функций, то уравнение f(x)=0 заменяют равносильным уравнением φ(x)= ψ(x). Тогда, построив графики функций y=φ(x) и y=ψ(x), искомые корни получим как абсциссы точек пересечения этих графиков. Пример. Дано уравнение x*lgx-1=0. графическим способом отделить корни данного уравнения. 1 способ. Строим график функции y=x*lgx-1; y
-f(x) x 1
2
3 Рисунок 3
2 способ. Выбираем отрезок с изолированным корнем – [2, 3]. Уравнение 1 x
1 x
f(x)=0 приведем к виду φ(x)=ψ(x): lgx= , где φ(x)=lgx, ψ(x)= , построим графики y=lgx , y=
4
1 . x
y
y=
1
1 x
2 ξ 3
y=lgx
х
Рисунок 4- Отрезок с изолированным корнем [2, 3].
1.2 Уточнение приближенных корней Уточнение приближенных корней с заданной степенью точности осуществимо численными (приближенными) методами: методом половинного деления, методом хорд, методом Ньютона (метод касательных).
1.2.1 Метод половинного деления Пусть дано уравнение f(x)=0, где функция f(x) непрерывна на отрезке [a, b]. Отрезок [a, b] содержит изолированный корень, тогда f(a)*f(b)<0. Для нахождения корня уравнения, принадлежащего отрезку [a, b], делим отрезок пополам. c=
a+b 2
(1.3)
Если f(c)=0, то ξ=(a+ b)/2 является корнем уравнения. Если f(c)≠0, то выбираем ту из половинок [a, c] или [c, b], на концах которой функция имеет противоположные знаки, т. е. f(a)*f(c)<0 (f(c)*f(b)<0). Выбранную половину вновь делим пополам, повторяя те же рассуждения, и т. д. Процесс дробления отрезка прекращаем при условии │an-bn│≤ε, где εзаданная погрешность, тогда приближенное значение корня определяется по формуле:
5
x0=
an + bn 2
(1.4)
В результате получаем последовательность вложенных друг в друга отрезков [a, b], [a1, b1], [a2, b2],…,[an, bn]… таких, что f(an)*f(bn)≤0 (n=1, 2,…) где
bn-an=
(1.5)
b−a . 2n
( 1.6)
Так как левые концы a, a1, a2,…an образуют монотонно возрастающую последовательность, а правые b, b1, b2,…bn – монотонно убывающую, то ,в силу равенства (1.6), получим предел ξ= lim a n = lim bn n →∞
(1.7)
n →∞
Тогда неравенство (1.5) будет иметь вид f(ξ)2≤0, т. е . f(ξ)=0, следовательно, ξ является корнем уравнения. Геометрическая интерпретация метода показана на рисунке 5. y f(b) a
с ξ f(c)
f(a)
b
x
Рисунок 5
1.2.2 Метод хорд Пусть дано уравнение f(x)=0, где функция f(x) непрерывна на отрезке [a, b]. Отрезок [a, b], имеющий изолированный корень, будем делить в отношении –f(a)/f(b) (рис. 6). y
B f(b) h a
6
c
ξ
b
x
f(a) A Рисунок 6 Из подобия треугольников аАС и bBC имеем −
f (a ) h , = f (b) b − a − h
(1.8)
определяем h h=-
f (a) (b − a) . f (b) − f (a)
(1.9)
Тогда с=a+h или с=a-
f (a) (b − a) f (b) − f (a)
(1.10)
(1.10) – формула приближенного значения корня, полученного по методу хорд. Точка С- это новое приближение корня. Если f(с)≤ε, где ε - заданная погрешность метода, тогда т.С является приближенным значением корня уравнения f(x)=0. Далее применяем тот же процесс к тому из отрезков [a, c] или [c, b], на концах которого функция имеет противоположные знаки. y f(b) a f(a)
c f(c)
c1
ξ
b
x
Рисунок 7- Геометрическая интерпретация метода хорд.
1.2.3 Метод Ньютона (касательных) Пусть корень ξ уравнения f(x)=0 отделен на отрезке [a, b]. На данном отрезке первая и вторая производные f'(x) и f''(x) непрерывны и сохраняют 7
постоянные знаки. Зададим n-е приближение корня xn, тогда можно записать, что ξ=xn+ hn
(1.11)
где hn- малая величина. f(ξ)=0 или f(xn+hn)=0
(1.12)
Применяя формулу Тейлора, получим f(xn+ hn)≈ f(xn)+ f'(xn)*hn=0
(1.13)
тогда hn=-
f ( xn ) f ' ( xn )
(1.14)
Подставим (1.14) в (1.11), с учетом (1.13) получим xn+1=xn-
f ( xn ) (n=0, 1, 2,..) f ' ( xn )
(1.15)
где xn+1- новое приближение корня. Если f(xn+1)≤ ε, тогда xn+1- корень уравнения f(x)=0 с заданной степенью точности ε. Геометрически метод Ньютона эквивалентен замене дуги кривой y= f(x) касательной, проведенной в некоторой точке кривой в соответствии с рисунком 8. y М
a
xn+1 xn = b
x
Рисунок 8 Где xn-xn+1=h.. xn+1- точка пересечения касательной к т. М с осью Х. При выборе начального приближения xn необходимо задавать xn в той части отрезка [a, b], в которой выполняется условие f(xn)*f"(xn)>0. 8
Из формулы (1.15) видно, что, чем численное значение f'(x) в окрестности данного корня, тем меньше поправка, которую надо учитывать в первом приближении, а, значит, быстрее сходимость.
1.3 Пример решения уравнений с помощью табличного процессора EXCEL 1.3.1 Отделение корней. Рассмотрим пример. Найти корни уравнения ex-3x2+3=0 , используя табличный процессор Excel . Для отделения корней уравнения ex-3x2+3=0 протабулируем функцию y=ex-3x2+3 на отрезке [-10; 10]. Для этого разделим отрезок [-10; 10] на 20 частей и найдем шаг: h=(-10+10)/20=1. В ячейку В2 внесем значение начала отрезка х=-10. В клетку С3 запишем формулу =В2+1. В ячейке В2 вычисляются значения функции =exp(B2)3*B2^2+3. Затем формулы из ячеек С2 и В3 копируются до конца отрезка х=10 в соответствии с рисунком 9. 1 2 3
A
B
X Y
-10 =exp(B2)3*B2^2+3
C D Отделение корней Копируем формулы до =B2+1 получения конца отрезка Х=10 =exp(C2)3*C2^2+3
4 Рисунок 9 Получим следующую таблицу: Таблица 1 X Y
-10 -297
-9 -240
-8 -189
-7 -143
-6 -104
-5 -71
-4 -44
-3 -23
0 4
1 2.7
2 -16
3 -3.9
4 9.5
5 76.41
6 298
7 952
8 2791
-2 -8
-1 0.36
9 10 7863 21729
По заданным значениям построим график функции в соответствии с рисунком 10.
9
y
-2 –1 1 2 -- -8
3
х
Рисунок 10 Из таблицы значений и по построенному графику видно, что на промежутке [-10; 10] существуют корни уравнения на отрезках [-2;1], [1;2] и [3;4], т. к. значения функции на концах отрезков имеют разные знаки.
1.3.2 Пример (метод половинного деления) Уточним корень уравнения на отрезке [3;4] методом половинного деления. Для демонстрации этого метода используем табличный процессор Exel в соответствии с рисунком 11. В столбце А вычисляются координаты середины отрезков, в столбце С – координаты другого конца отрезка, удовлетворяющего условию f(Ai)*f(Ci)<0, в столбце В вычисляется значение функции в середине отрезка. В столбце D проверяется условие окончания итераций – если длина отрезка меньше заданной точности – продолжать итерации, в противном случае записать в ячейку Dn – 0. Значение корня получается в ячейках Аn и Сn. A 1 2 3 4
0,001 Вычисление середины отрезка 3
5
=(A3+C3)/2
10
B C Деление отрезка пополам Вычисление функции
Выбор левой либо правой половины 4
=exp(A4)3*A4^2+3 =exp(B4*B5<0 =если(B4*B5<0; ;A4;C4) A4;C4)
D Проверка условия окончания итераций
=если(abs(A5C5)<(A2;0;abs(A5-
C5)) 6 Строку 5 копировать до появления "0" в ячейке D(n) … … … … N Значение корня Значение корня 0 3,5498 3,5488 Рисунок 11 В результате вычислений получим таблицу следующего вида (таблица 2). Таблица 2 A 1 2 3 4 5 6 … n
B C Деление отрезка пополам
0,001 Вычисление середины отрезка 3 3,5 3,75 … 3,5498
D
Вычисление функции
Выбор левой либо правой точки
Проверка условия и сходимость
-3,914 -0,634 3,333 … 0,003
4 4 3,5 … 3,5488
0,5 0,25 … 0
1.3.3Пример (метод Ньютона ) Уточним 1 корень уравнения е^x-3*x^2+3=0 методом Ньютона на отрезке [-2, 1]. Найдем первую и вторую производные функции f(x)=e^x-3x^2+3: f'(x)=e^x-6x f''(x)=e^x-6 , и определим корни f(x) и f(x) на отрезке [-2, 1]. Расчет можно произвести в электронных таблицах в соответствии с рисунком 12. В ячейку A1 запишем значение правого конца отрезка , в ячейку A2 – значение левого . в ячейках в1:в2 вычисляются значения функции на концах отрезка , в ячейках с 1: D2 – значения первой и второй производной. в клетках Е1:Е2 проверяется неравенство f(x) f*(x) >0. Для начального приближения выберем точку х= -2 (f(-2)*f '' (-2)>0). Итерации производим в excel в соответствии с рисунком 12.
1
A -2
2
1
3 4
=A1-B1/D1
B C =exp(A1)=exp(A1)3*A1^2+3 6*A1 =exp(A2)=exp(A2)3*A2^2+3 6*A2 Метод Ньютона
D =exp(A1) -6 =exp(A2) -6
E =B1*D 1 =B2*D 2
11
5 6
=A4-(exp(A4)=если(abs(A53*A4^2+3/exp(A4)A4)<0;A5;0) 6*A1) Копировать строку 5 до получения значения корня в столбце В, либо прекратить итерации придостижении предельного числа N=10 Рисунок 12
2 Приближенные методы решения систем линейных алгебраических уравнений Методы решения систем линейных алгебраических уравнений разделяются на две группы: точные методы, представляющие собой конечные алгоритмы для вычисления корней системы, и приближенные (итерационные) методы. Рассмотрим метод итерации и метод Зейделя. Для решения систем линейных уравнений итерационными методами необходимо, чтобы исходная система уравнений отвечала определенным условиям, иначе она должна быть приведена к специальному виду. Исследование сходимости итерационных методов требует знаний из алгебры матриц.
2.1 Алгебра матриц, основные определения, норма матрицы Система m*n чисел, расположенных в прямоугольной таблице из m строк и n столбцов а11 а12 а13…а1n а21 а22 а23…а2n А=………………… , аm1 аm2 аm3…аmn называется матрицей. Матрица называется квадратной, если m= n. С квадратной матрицей связан определитель: a11 a12 a13…a1n a21 a22 a23…a2n detA= ……………… am1 am2 am3…amn Квадратная матрица называется вырожденной (особенной), если определитель ее равен нулю. Под абсолютной величиной (модулем) матрицы A=(aij) будем понимать 12
матрицу |A|=(|aij|), где |aij|- модули элементов матрицы А. Если А и В- матрицы, для которых операции А+В и АВ имеют смысл, то: 1) |A+B|≤|A|+|B|; 2) |AB|≤|A||B|; 3) |αA|=|α||A|, где |α| - число. Под нормой матрицы А понимается действительное число ||А||, удовлетворяющее условиям: 1) ||A||≥0, причем ||A||=0 тогда и только тогда, когда А=0; 2) ||αA||=|α|||A||; 3) ||A+B||≤||A||+||B||; 4) ||AB||≤||A||||B||. Рассмотрим три нормы матрицы: n
1) m- норма, ||A||m= max ∑ | a ij |, i = 1,..., n ; i
j =1
n
2) l- норма, ||A||l= max ∑ | aij |, j = 1,..., n; j
3) k-норма, ||A||k=
i =1
n
n
i =1
j =1
∑∑
| aij |2 .
Пример: Вычислить нормы матрицы. А= 1 -2 3 4 ||A||m=max(|1|+|-2|,|3|+|4|)=max(3,7)=7; ||A||l=max(|1|+|3|,|-2|+|4|)=max(4,6)=6; ||A||k= 1 + 4 + 9 + 16 = 30 ≈ 5.6. Норма матрицы потребуется для оценки сходимости метода итераций. Для проверки условия окончания итерационного процесса введем понятие нормы вектора и нормы вектора разностей. Пусть дан вектор x1 x x = 2 ... x n
Тогда в линейном пространстве Rn n- мерных векторов норма вектора определяется: ||X||m=max|xi|; ||X||l=|x1|+|x2|+…+|xn| ||X||k=
n
∑| x i =1
i
(2.1)
|2 .
13
Пример. Вычислить нормы вектора 1 x = − 3 − 5
||X||m=5; ||X||l=|1|+|-3|+|-5|; ||X||k= 12 + | −3 |2 + | −5 |2 ≈ 5.9. Пример. Вычислить норму вектора разностей Пусть даны два вектора:
x
(1)
2 2 .4 ( 2) = 4 , x = 3.7 , 3 2 .8
Норма вектора разностей x(1)=x(2) определяется: | 2 − 2 .4 | 0 .6 ∆X = max | 4 − 3.7 | = max 0.3 = 0.6. | 3 − 2 .8 | 0 .2
2.2 Вырожденные матрицы, плохо обусловленные системы уравнений Если матрица А вырожденна, т. е. DetA=0, то 1. Система уравнений не совместна, т. е. не имеет ни одного решения в соответствии с рисунком 13. Пример.
4x+6y=10 2x+3y=6 y 2
3 14
x
Рисунок 13
2. Система имеет бесконечное множество решений в соответствии с рисунком 14. 4x+6y=12; 2x+3y=6. y 2 f2
f1 3
x
Рисунок 14 3. Если определитель системы близок к нулю, т. е. c точки зрения практических вычислений могут существовать почти вырожденные системы, при решении которых получаются недостоверные значения неизвестных. Пример. 5x+7y=12; (2.2) 7x+10y=17. Det=50-49=1. Решение системы x=1, y=1, но в то же время при x=2.45, y=0 получим: 5x+7y=12.075 7x+10y=16.905 т. е. c геометрической точки зрения две прямые близки друг к другу. Итерационный метод, в результате, может дать недостоверный результат в соответствии с рисунком 15.
15
y 1 1
2.45
x
Рисунок 15 Система (2.1) называется плохо обусловленной определитель системы det<1.
системой,
если
2.3 Метод итераций Рассмотрим систему из трех уравнений с тремя неизвестными a11x1+a12x2+a13x3=b1 a21x1+a22x2+a23x3=b2 a31x1+a32x2+a33x3=b3
(2.3)
Предположим, что а11≠0, а22≠0, а33≠0. Преобразуем систему (3.1) к эквивалентному виду, выразив в каждом уравнении неизвестные xi (i=1, 2, 3) стоящие на главной диагонали: a12 a b x2 − 13 x3 + 1 x1 = − a11 a11 a11 a21 a b x1 − 23 x3 + 2 , x2 = − a22 a22 a22 a a b x3 = − 31 x1 − 32 x2 + 3 a33 a33 a33
(2.4)
Введем обозначения α ij = −
aij aii
, βi =
bi , гдеi, j = 1,..,3. aii
(2.5)
Перепишем систему (2.4) с учетом введенных обозначений x1=α12x2+α13x3+β1 x2=α21x1+α23x3+β2 x3=α31x1+α32x2+β3 16
(2.6)
Систему (2.6) будем решать методом последовательных приближений. Выбираем произвольно начальное приближение к решению системы x(0)=(x10, x20, x30).
(2.7)
Подставив в (2 .6) получим новое приближение x(1): x11=α12x20+α13x30+β1 x21=α21x10+α23x30+β2 x31=α31x10+α32x20+β3
(2.8)
Этим заканчивается первая итерация. На втором шаге начальные приближения х10, х20, х30 заменяются на х11, х21, х31 и процесс (2.8) повторяется вновь для вычисления второго приближения х(2)=(х12, х22, х32) и т. д. Итерационный процесс продолжается до тех пор, пока все xi(k+1) не станут достаточно близки к хi(k). Критерий близости между х(k) и x(k+1) приближениями оцениваются по формуле ||x(k+1)-x(k)|| ≤
1− || α || ε || α ||
(2.9)
где ||x(k+1)-x(k)||- норма вектора разностей; ||α||- одна из норм матрицы α системы (2.8); ε – заданная погрешность. Пример. Решить систему 3.5x1+1.2x2-0.5x3=5, 0.1x1+5x2+2x3=11, 2x1-0.3x2+7x3=14.
(2.10)
Приведем систему к эквивалентному виду (2.6). х1=-0.34х2+0.14х3+1.42, х2=-0.02х1-0.4х3+2.2, х3=-0.29х1+0.04х2+2. За начальное приближение корней произвольные значения: х10=1; х20=2; х30=2.
системы
(2.11) (2.11)
принимаем 17
Подставляем эти значения в правые части уравнений (2.11). х11=-0,34*2+0.14*2+1.42=1.02, х21=-0.02*1-0.4*2+2.2=1.42, х31=-0.29*1+0.04*2+2=2.21.
(2.12)
Пусть погрешность метода ε=0.01. Определим норму вектора разностей. | 1.02 − 1 | 0.02 ||x -x ||=max | 1.42 − 2 | = 0.58 = 0.58 | 2.21 − 2 | 0.21 (1)
(0)
(2.13)
Определим одну из норм матрицы α, введя нулевые коэффициенты на главной диагонали: 0 -0.34 0.14 α=-0.02 0 -0.4 , -0.29 0.04 0 0+ | −0.34 | + | 0.14 | 0.48 || α ||m = max | −0.02 | +0+ | −0.4 | = 0.42 = 0.48. | −0.29 | + | 0.04 | +0 0.33
(2.14)
(2.15)
С помощью (2.9) проверим условие окончания процесса итерации. 0.58 ≤
1 − 0.48 0.01 0.48
(2.16)
Условие не выполняется, процесс итерации следует повторить. Сходимость процесса итерации возможна только для определенного класса систем уравнений. Приведем без доказательства достаточное условие сходимости. Если для эквивалентной системы (2.8) выполнено по крайней мере одно из условий n
∑| α
1.
j =1
2.
n
∑| α i =1
ij
ij
|< 1, (i = 1,2,..., n)
|< 1, ( j = 1,2,..., n)
т. е. одна из норм матрицы α меньше 1, то процесс итерации (2.9) сходится к единственному решению этой системы, независимо от выбора начального приближения. 18
Следствие. Для системы (2.3) метод итерации сходится, если выполнены неравенства n
|aij|> ∑ | aij |, (i = 1,2,..., n) .
(2.17)
i≠ j
Т. е. если модули диагональных коэффициентов для каждого уравнения системы больше суммы модулей всех остальных коэффициентов. Теорема сходимости накладывает жесткие условия на коэффициенты данной линейной системы. Например. x1-4x2+x3=3 1) 2x1+3x2-0.5x3=5 2) -4x1+1.5x2-3.5x3=7 3) Система не отвечает условиям теоремы сходимости: следствие теоремы сходимости не выполняется. Однако, если detA≠0, то с помощью линейного комбинирования уравнений системы последнюю можно привести к виду, удобному для итераций. Выполним следующие преобразования: в первом уравнении коэффициент при х2 по модулю больше суммы модулей остальных коэффициентов, примем данное уравнение за второе уравнение системы. Первое уравнение получим, суммируя первое и второе уравнения, третье получим суммируя все три уравнения системы. В линейной комбинации должны участвовать все уравнения исходной системы. Получим 3x1-x2+0.5x3=8 1)+2) x1-4x2+x3=3 -x1+0.5x2-3x3=15 1)+2)+3) Новая система отвечает условиям теоремы сходимости, следовательно, можно применить метод итераций.
2.4 Метод Зейделя Метод Зейделя представляет модификацию метода итерации: при вычислении (k+1)-го приближения неизвестной xi учитываются уже вычисленные ранее (k+1) приближения х1, х2,…,хi-1, т. е. Система (2.8) будет иметь вид x11=α12x20+α13x30+β1, x21=α21x11+α23x30+β2 , x31=α31x11+α32x21+β3, Решим систему
(2.18)
методом Зейделя. Выберем начальные приближения 19
корней системы: x10=1, x20=2, x30=2. Схема Зейделя для эквивалентной системы
имеет вид
x11=-0.34x20+0.14x30+1.42, x21=-0.02x11-0.4x30+2.2, x31=-0.29x11+0.04x21+2. Определим вектор первых приближений х(1). х11=-0,34*2+0,14*2+1,42=1,02, х21=-0,02*1,02-0,4*2+2,2, х31=-0,29*1,02+0,04*1,38+2=1,76.
(2.19)
(2.20)
Оценка погрешности метода Зейделя определяется по формуле (2.9). Теорема сходимости метода итерации остается верной и для метода Зейделя.
2.5 Пример решения СЛАУ табличным процессором EXCEL Найти решение системы линейных алгебраических уравнений методом итераций с точностью е=0.001. 5х1-х2+2х3=8; х1+4х2-х3=-4; х1+х2+4х3=4. Решение. Проверим условие сходимости итераций: |5| > |-1| + |2| |4| > |1| + | -1| |4| > | | + |1| Условие выполнено. Представим систему в приведенном виде и запишем последовательность итераций: x1(k+1)=0*x1 k +0,2*x2 k -0,4*x3 k +1,6; x2(k+1)=-0,25*x1 k +0*x2 k -0,25*x3 k -1; x3(k+1)=-0,25*x1 k -0,25*x2 k +0*x3 k +1. В качестве начального приближения примем вектор-столбец свободных членов. Итерации будем проводить с помощью электронного процессора Exel (рис.16). В ячейки А3:С5 заносятся коэффициенты приведенной системы. В столбце D3:D6 вычисляется норма матрицы приведенной системы. В столбец В8:В10 записываются начальные приближения. В клетках С8:С10 вычисляются k=1 приближения. В столбец D8:D11 записываются формулы для вычисления вектора разности. В клетке Е9 проверяется условие окончания итераций. Точность записывается в ячейку А7. После заполнения таблицы следует вызвать команду меню Сервис_Параметры_Вычисления и отметить флажок итерации. 20
A
B
1 2 3
0
0,2
4
-0.25
0
5 6 7
-0.25
-0.25
0.001
8
X1
Ввод k-го рпиближен ия 1.6
9
X2
-1
10
X3
1
C D Решение СЛАУ методом итераций Вычисление корня матрицы -0,4 =СУММ(abs(A 3:C3)) 0.25 Рисунок 16, лист 1 0 =max(D3:D5) Вычисление Вычисление k+1 корня вектора приближения разности =0*B8+0.2*9=abs(C8-B8) 0.4*B10+1.6 ==abs(C9-B9) 0.25*B8+0*B9+ 0.25*B10-1 =-0.25*B80.25*B9+0*B10 +1
11
E
Проверка условия окончания итерации =если(D11≤(D6/(1 D6)*A7;истина; D6/(1-D6)*D11)
=abs(C10-B10) =макс(D8:D10)
Рисунок 16, лист 2 Затем в ячейки В8:В10 внести изменения: в клетку В8 записать формулу =С8, в клетку В9 - =С9, В10 - =С10.
3 Приближение функций 3.1 Постановка задачи о приближении функций. Пусть на некотором множестве задана система функций φ0(х), φ1(х),…, φm(x)… Потребуем, чтобы функции были гладкими (например, непрерывно дифференцируемыми). Данная система функций называется основной, тогда многочлен Qm(x)=c0φ0(x)+c1φ1(x)+ +cmφm(x),
(3.1)
где с0, с1,…, сm – неизвестные постоянные коэффициенты, называется обобщенным многочленом порядка m. Например, если основная система имеет вид φ0(х)=1, φ1(х)=х,…,φm(x)=xm, то Qm(x)=c0+c1x+…+cmxm представляет алгебраический многочлен степени m. 21
Если φ0(х)=1, φ2m(x)=sinmx,…, то
φ1(х)=cos(x),
φ2(x)=sin(x),…,
φ2m-1(x)=cosmx,
Qm(x)=a0+a1cosx+b1sinx+…+amcosmx+bxsinmx
(3.2)
называется тригонометрическим многочленом порядка m. Задача о приближении функции: дана функция f(x), требуется заменить f(x) обобщенным многочленом Qm(x) данного порядка m так, чтобы отклонение функции f(x) от обобщенного многочлена Qm(x) на указанном множестве X={x} было наименьшим. При этом Qm(x) в общем случае называется аппроксимирующим. Если множество Х состоит из отдельных точек х0, х1,…, хn, то приближение называется точечным. Если же Х есть отрезок a≤x≤b, то приближение называется интегральным. В зависимости от критерия приближения функций f(x) и Qm(x) рассматривают задачи: интерполирование функции, среднеквадратичное приближение, сплайн-интерполяция и т. д.
3.2 Интерполирование функции 3.2.1 Постановка задачи интерполирования Пусть функция f(x) задана таблично: Таблица 3 X F(x)
X0 Y0
X1 Y1
X2 Y2
… …
Xn Yn
В процессе решения задачи необходимо для некоторой промежуточной точки х получить значение f(x). Так как вид функции f(x) неизвестен, требуется найти многочлен Qm(x), который в заданных точках х0, х1,…, xn совпадал со значениями функции f(x), т. е. Qm(x0)=f(x0), Qm(x1)=f(x1), Qm(xn)=f(xn),
(3.3)
где Qm(x)=c0φ0(x)+c1φ1(x)+…+cmφm(x) называется интерполяционным многочленом. Условие называется условием интерполяции. Точки х0, х1,…, хn называются узлами интерполяции. В остальных точках отрезка [x0, xn] области определения функции f(x) многочлен Qm(x) приближенно представляет 22
значения f(x) с той или иной степенью точности. Задача построения Qm(x) при условии (3.3) называется задачей интерполирования. Условие (3.3) необходимо, но не достаточно для нахождения единственного многочлена Qm(x), так как при данном условии через точки f(xi) (i=0,…,n) можно провести более одного Qm(x):
y
Q"m(x)
x0
x1
Q'm(x)
x3
x4
x5
x
Рисунок 17 Для получения единственного решения необходимо чтобы порядок многочлена Qm(x) совпадал с числом узлов интерполяции m=n, т. е. Имел вид Qn(x)=c0φ0(x)+c1φ1(x)+…+cnφn(x). Для определения неизвестных постоянных коэффициентов с0, с1,…, сn используем уравнение (3.3). с0φ0(x0)+c1φ1(x0)+…+cnφn(x0)=f(x0) с0φ0(x1)+c1φ1(x1)+…+cnφn(x1)=f(x1) …………………………………….. с0φ0(xn)+c1φ1(xn)+…+cnφn(xn)=f(xn)
(3.4)
Система (3.4) – система линейных алгебраических уравнений относительно неизвестных с0, с1,…, сn. Данная система имеет единственное решение, если определитель системы не равен нулю: φ0(x0) φ1(x0) … φn(x0) φ0(x0) φ1(x0) … φn(x0) …………………………. φ0(x0) φ1(x0) … φn(x0)
≠0
(3.5)
Система функций φ0(x), φ1(x), φ2(x),…, φn(x) должна быть линейно независимой. 23
Таким образом для решения задачи интерполирования необходимо выполнение следующих условий: − Интерполяционный многочленQm(x) должен совпадать со значениями функции f(x) в узлах интерполяции; − Порядок многочлена Qm(x) равен числу узлов интерполяции; − Система функций φ0(х), φ1(х), φ2(х),…, φт(х) должна быть линейно независимой. Решим систему (3.3) используя правило Крамера, тогда многочлен Qn(x) в виде Qn(x)=
∆0 ∆ ∆ ϕ 0 ( x) + 1 ϕ1 ( x) + ... + n ϕ n ( x) , ∆ ∆ ∆
(3.6)
где ∆i (i=0,…,n)- дополнительные определители системы (3.4), ∆определитель системы (3.4). Раскрывая определители, окончательно преобразуем интерполяционный многочлен Qn(x): Qn(x)=f(x0)Ф0(х)+f(x1)Ф1(x)+…+f(xn)Фn(x)
(3.7)
где Фi(х) являются линейной комбинацией функций φ0(х), φ1(х),…, φn(x). Учитывая интерполяционное условие (3.3), функции Фi(х) должны обладать следующим свойством: 1, i = j 0, i ≠ j
Фi(xj)=
(3.8)
3.2.2 Интерполяционный многочлен Лагранжа В качестве конечной совокупности функций φ0(х), φ1(х),…, φn(x) возьмем линейно независимую последовательность 1, x, x2,…, xn. Введем обозначения Qn(x)=Ln(x). Интерполяционный многочлен будет иметь вид: Ln(x)=c0+c1x+…+cnxn.
(3.9)
Используя интерполяционное условие (3.3), составим систему уравнений с0+с1x0+c2x02+…+cnx0n=f(x0) с0+с1x1+c2x12+…+cnx1n=f(x1) …………………………….. с0+с1xn+c2xn2+…+cnxnn=f(xn) 24
(3.10)
Определителем данной системы является определитель Вандермонда: 1 x0 x02 … x0n 1 x1 x12 … x1n = ∏ ( xi − x j ) ≠ 0
∆=
(3.11)
i≠ j
……………….. 1 xn xn2 … xnn и, следовательно, система имеет единственное решение. Функцию (3.8) из выражения (3.7) представим в виде Фi(x)=A(x-x0)(x-x1)…(x-xi-1)(x-xi+1)…(x-xn)
(3.12)
где А- неизвестный постоянный коэффициент, Х- промежуточная точка между узлами интерполяции. Учитывая свойство (3.8), подставим х=хi и (3.12) и определим коэффициент А: A(xi-x0)(xi-x1)…(xi-xi-1)(xi-xi+1)…(xi-xn)=1, A=
1 , ( xi − x0 )( xi − x1 )...( xi − xi −1 )( xi − xi =1 )...( xi − xn )
(3.13)
Интерполяционный многочлен (3.7) с учетом (3.12) и (3.13) запишем в виде: f ( x0 )
(Qn(x))Ln(x)=
( x − x1 )( x − x2 )...( x − xn ) ( x − x0 )( x − x2 )...( x − xn ) + .... + f ( x1 ) ( x0 − x1 )( x0 − x2 )...( x0 − xn ) ( x1 − x0 )( x1 − x2 )...( x1 − xn )
( x − x0 )( x − x1 )...( x − xn −1 ) .. + f ( xn ) ( xn − x0 )( xn − x1 )...( xn − xn −1 )
(3.14)
Ln(x) называется интерполяционным многочленом Лагранжа.
3.2.3 Решение задачи интерполирования в табличном процессоре EXCEL Пример. Построить многочлен Лагранжа 3-й степени, если заданы значения в 4-х узлах интерполяции: Таблица 4 xi yi
-1 -1
2 3
3 2
5 4 25
Решение: Многочлен запишется так – L3 ( x) = y0
Лагранжа
для
четырех
узлов
интерполяции
( x − x1 )( x − x2 )( x − x3 ) ( x − x0 )( x − x2 )( x − x3 ) + y1 + ( x0 − x1 )( x0 − x2 )( x0 − x3 ) ( x1 − x0 )( x1 − x2 )( x1 − x3 )
( x − x0 )( x − x1 )( x − x3 ) ( x − x0 )( x − x1 )( x − x2 ) + y2 + y3 ( x2 − x0 )( x2 − x1 )( x2 − x3 ) ( x3 − x0 )( x3 − x1 )( x3 − x2 )
(3.15)
Для вычисления значения многочлена в точке х можно воспользоваться электронными таблицами Exel в соответствии с рисунком 18. В ячейки А3:А6 и В3:В6 записываются соответствующие значения yi и xi. В ячейки С3:С6 – формулы для вычисления pi(x). В столбце D3:D7 вычисляется значение n
L3 ( x) = ∑ yi pi ( x). i =0
A 1 2 3
yi -1
4
3
5
2
6
4
7
B
C D Вычисление многочлена Лагранжа xi X -1 =$D$2-B3 =A3*(C5*C4*C6)/((B3-B4)*(B3B5)*(B3-B6) 2 Копировать С3 в С6 =A4*(C3*C5*C6)/((B4-B3)*(B4B5)*(B4-B6) 3 =A5*(C3*C4*C6)/((B5-B3)*(B5B4)*(B5-B6) 5 =A6*(C3*C4*C5)/((B6-B3)*(B6B4)*(B6-B5) Значение L3(x) =СУММ(D3:D6) Рисунок 18
4 Варианты лабораторных работ для решения алгебраических и трансцендентных уравнений Задания: На отрезке [-10, 10] определить корни следующих уравнений: 1. x-sinx=0,25 2. x^3–3x^2–9x–8=0 3. 3x–cosx–0,5=0 4. x^3 –6x –8=0 5. x^2+4sinx=3 6. x^3-3x^2+6x+3=0 7. x^2 –20sinx =3 8. x^3 – 0,1x^2+0,4x-1,5=0 9. 1,8x^2-sin10x=1 10. x^3+x-5=0 11. 0,2x-2cosx-0.3=0 26
12. x^3-4x-6=0 13. x+lgx=0.5 14. x^3+4x-6=0 15. 2x-lgx-7=0 16. x^3-2x+4=0 17. x^4-3x-20=0 18. x^3+3x+5=0 19. x+e^x=0 20. x^3-2x-7=0 21. e^x-x-2=0 22. lnx+0,5x-1=0 1 -lnx=0 1 + x^2 x -lnx=0 24. 2+ x
23.
25. x^5-x-2=0 26. 2-lnx-x=0 27. sinx-1,5x+2=0 28. cosx-x=0 29. lnx+x-2=0 30. xsinx+1=0
5 Варианты лабораторных работ для решения систем линейных алгебраических уравнений Найти решение системы линейных уравнений методом итераций с точностью е=10-3: 1. 5x1+0x2+x3=11 1x1+3x2-x3=4 3x1+2x2+10x3=6 2. 2x1+0x2-x3=-3 -x1+3x2+x3=2 x1-x2+4x3=3 3. 2x1+0x2-x3=1 x1-3x2+x3=2 x1+x2+3x3=4 4. 5x1+x2-x3=-5 -x1+3x2+x3=5 x1-2x2+4x3=1 27
5. 3x1+x2-x3=-1 -2x1+4x2+x3=5 x1+x2+3x3=-3 6. 3x1+x2-x3=6 2x1+4x2+x3=9 x1-x2+3x3=4 7. 2x1-x2+0x3=-2 2x1+5x2-2x3=-4 x1-x2+3x3=2 8. 3x1-x2+x3=1 0x1+2x2-x3=3 -1x1+x2+5x3=-5 9. 4x1+x2+x3=7 2x1+3x2+0x3=7 x1-x2+5x3=11 10. 2x1+0x2-x3=1 x1+x2+x3=-5 x1+x2+x3=6 11. 2x1-x2+0x3=3 0x1+5x2+2x3=7 x1-2x2+3x3=4 12. 3x1+x2-x3=-1 1x1+5x2-x3=2 2x1+0x2+3x3=1 13. 3x1+0x2-x3=-1 2x1-5x2+x3=-2 2x1-2x2+6x3=1 14. 3x1+0x2-1x3=2 2x1-5x2+x3=1 2x1+2x2+5x3=-1 15. 3x1-x2+x3=1 3x1+5x2+x3=2 -1x1+2x2+4x3=-1 28
16. -4x1+2x2+x3=1 -1x1+5x2+x3=1 2x1+0x2+3x3=3 17. 5x1-x2-x3=-3 -x1+3x2+x3=-1 2x1-x2+4x3=1 18. 4x1+2x2+x3=3 3x1+5x2-x3=4 2x1+x2-4x3=6 19. 4x1+x2+2x3=-6 0x1+3x2+x3=-1 x1+2x2+4x3=-5 20. 3x1+x2+x3=6 0x1-2x2+x3=-3 2x1-x2+4x3=-1 21. 2x1-x2+0x3=-5 0x1-2x2+x3=-3 2x1-x2+4x3=-1 22. 2x1-x2+0x3=-5 2x1+5x2+x3=2 2x1+x2-x3=-7 23. x1+0x2-x3=0 -x1-x2+x3=1 4x1+x2+x3=4 24. 2x1+x2+x3=3 -5x1+x2-x3= -9 -2x1+x2-2x3= -2 25. 2x1-x2+x3=4 5x1+0x2+x3=11 1x1-x2+x3=2 26. x1+0x2-x3= -2 -x1+x2+x3=2 4x1+x2-x3=-5 29
27. 2x1+x2+x3=0 3x1+x2-x3=-5 -2x1+x2-2x3=1 28. 3x1-x2+x3=-4 -x1+3x2+x3=4 x1-x2+3x3=4 29. 5x1+x2-x3=8 -x1+3x2+x3=0 -x1+0x2+2x3=-5 30. 5x1-x2+x3=-6 -2x1+5x2+x3=13 3x1-x2+5x3=0
6 Варианты лабораторных работ для решения задач интерполирования Задания.
Построить
интерполяционный
полином
Лагранжа
Вычислить приближенное значение F(x) с помощью L(x) в точке х=
L(x).
x2 + x3 , 2
выполнить вычисления с помощью Exel. Таблица 5 1 2 3 4 5 6 7 8 9 10 30
xk yk xk yk xk yk xk yk xk yk xk yk xk yk xk yk xk yk xk yk
0.1 -0.1 -1 1.0 1.1 -2.0 -1.0 0.9 3 -14 1.0 0.3 -10.0 6.0 2.0 0.7 0.7 0.8 100 0.01
0.3 0.5 -0.5 2.2 1.2 -1.8 -0.5 0.7 3.2 -10 3.0 0.7 -8.0 3.0 3.0 1.2 1.2 1.0 110 0.03
0.4 0.8 0.1 1.7 1.4 -1.3 0 0.4 3.4 -8 7.0 0.9 -5.0 0.0 5.0 2.2 2.2 1.3 125 0.08
0.6 1.7 0.4 0.8 1.7 -1.0 0.3 0.8 3.7 -12 10.0 1.0 -2.0 -4.0 6.0 3.0 3.0 1.2 130 0.12
11 12 13
xk yk xk yk xk yk
-10 3 1 0.1 2.0 -15
Продолжение таблицы 5 14 -4 xk yk 3 15 xk 10.5 yk -6 16 xk 2 yk -3 17 xk -0.3 yk 5 18 xk -7.1 yk -4 19 xk 1 yk 10 20 xk -5 yk 0.2 21 xk 1.01 yk 2.7183 22 xk 1.00 yk 0.3642 23 xk 1.00 yk 1.17 24 xk 1.11 yk 3.03 25 xk 1.02 yk 0.5319 26 xk 1.02 yk 1.56 27 xk 1.00 yk 0 28 xk 1.04 yk 2.82 29 xk 1.10 yk 1.33 30 xk 1.15 yk 1.42 31 xk 1.08
-8 4 4 -0.2 3.2 -10
-5 0 9 -0.3 4.2 -8
-2 -2 15 0 5.6 -6
-3 4 11.5 -7 4 -2 0.1 5 0.2 -2 2 20 -4 0.25 1.02 2.7732 1.1 0.3329 1.06 1.27 1.13 3.09 1.05 0.4976 1.07 1.62 1.01 0.01 1.05 2.85 1.11 1.35 1.16 1.43 1.09
-2 5 12.5 -5 6 0 0.0 3 3.4 -2 3 15 -2 0.23 1.03 2.8011 1.15 0.3166 1.12 1.36 1.16 3.18 1.10 0.4536 1.09 1.69 1.02 0.0198 1.06 2.88 1.12 1.36 1.17 1.45 1.1
0 4 13.0 0 8 0 0.4 5 5.6 0 4 20 0 0.19 1.04 2.8292 1.2 0.3012 1.19 1.49 1.18 3.25 1.20 0.3624 1.14 1.72 1.03 0.0296 1.07 2.91 1.13 1.38 1.18 1.47 1.11 31
yk
32
2.9447
2.9743
3.0042
3.0344