Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЭВМ

.pdf
Скачиваний:
25
Добавлен:
21.05.2015
Размер:
877.19 Кб
Скачать

Тогда итерационная последовательность xn = f(xn-1) (n=1,2,…) сходится при любом начальном члене x0 [a;b]. Для нахождения корня (2.4) с точностью нужно продолжить итерации до тех пор, пока не выполнится условие: |xn – xn-1| (1–q)/q, где q можно получить как верхнюю грань |f (x)| при x [a;b]. Алгоритм решения уравнения (2.4) иллюстрирован следующей блок-схемой:

Метод

 

x1:=x

итераций

 

 

x:=f(x)

 

 

Ввод a, b, ER

да

нет

 

|x-x1|<ER

 

 

x:=(a+b)/2

 

 

 

Вывод x

Конец

Пример выполнения задания №1 Определить методами хорд и простой итерации корни

нелинейного уравнения с одной неизвестной: x3 ln x 1.5 0 .

Решение. Для определения области, содержащей все корни уравнения и приблизительного определения их зна-

чений построим графики двух функций: u(x)= -x 3 и v(x)=lnx+1.5.

По рис. 2.4 единственный корень находится в интервале [0;1]. Исходными данными для программы определения корней уравнения equip.pas являются:

21

 

 

 

 

 

- границы области, со-

Y

y2=v(x)

 

 

держащей

единственный

3

 

 

корень

уравнения

 

x0=0,

 

 

 

x9=1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

-

 

шаг

итераций

для

 

 

 

 

 

 

1

 

 

 

 

определения отрезков отде-

 

 

 

 

 

 

 

 

 

 

ления корней H=0.1;

 

 

0

 

 

 

X

-

величина,

регулиру-

1

2

3

4

 

 

 

 

 

 

 

 

 

 

 

 

 

ющая

 

погрешность

вычис-

 

y1=u(x)

 

 

 

ления корня E=0.0001;

 

 

 

 

 

-

максимальное

число

 

 

 

 

итераций

при

уточнении

 

 

 

 

 

Рисунок 2.4

 

 

 

корня

 

методом

простой

 

 

 

итерации m=30.

 

 

 

 

 

 

 

 

 

 

 

Результаты выполнения программы.

 

 

 

 

Уточнение корней по методу дихотомии:

 

 

 

x[1]=0,4510742

F(x)=-0.0004676.

 

 

 

 

 

 

Уточнение корней по методу простой итерации:

 

 

x[1]=0.4511557

F(x)=-0.0000564.

 

 

 

 

 

 

2.2 Элементы линейной алгебры

 

 

 

 

 

 

2.2.1 Общие сведения

Успешное решение большинства научно–технических задач в значительной степени зависит от умения быстро и точно получать решение систем линейных алгебраических уравнений.

Многие методы решения нелинейных задач также сводятся к решению некоторой последовательности линейных систем.

22

В линейной алгебре рассматриваются четыре класса основных задач:

–решение систем линейных алгебраических уравнений (СЛАУ);

–вычисление определителей;

–нахождение обратных матриц;

–определение собственных значений и собственных векторов матриц.

Эти методы имеют важное прикладное значение как сами по себе, так и в качестве вспомогательных средств при реализации многих алгоритмов вычислительной математики, математической физики, обработки результатов экспериментальных исследований.

Многообразие численных методов решения СЛАУ можно разделить на прямые (точные) и итерационные.

Прямые методы характеризуются тем, что дают решение системы за конечное число арифметических операций. Если все операции выполняются без ошибок округления, то решение получается точным.

Итерационные методы являются приближенными. Они дают решение системы как предел последовательности приближений, вычисляемых по единообразной схеме.

2.2.2 Методы решения линейных алгебраических уравнений. Метод Гаусса

Метод Гаусса относится к прямым методам решения СЛАУ. Алгоритм метода состоит из двух этапов.

Первый этап называется прямым ходом метода. Так для СЛАУ:

23

a x

 

a

 

 

x

 

 

... a

 

 

x

 

 

a

 

 

1

,

 

 

 

11

 

1

 

12

 

 

2

 

1n

 

 

1

 

1,n

 

 

 

a 21x1 a

22x2

... a 2n x1

a 2,n 1

,

(2.7)

..........

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

n1

x

1

a

n 2

x

2

... a

nn

x

1

a

n,n 1

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

последовательно исключим неизвестные, начиная с x1.

В результате получим СЛАУ с верной треугольной матрицей, у которой все элементы ниже главной диагонали равны нулю.

x1 a121 x2 a131 x3

... a1n1 x n

a1,n1 1

,

 

 

x2 a 232 x3

... a 22n xn

a 2,n2 1

 

 

 

,

(2.8)

 

 

 

 

 

...................................

 

 

x n

n

 

 

 

 

a n,n 1.

 

 

Запишем выражения для неизвестных xk и преобразования элементов расширенной матрицы системы.

 

 

 

n

 

 

 

 

 

x k

k

 

 

k

 

 

 

 

a k,n 1

a kj

 

x j ,

 

 

 

 

j k 1

 

 

 

 

 

a kjk a kjk 1 / a kkk 1 ,

 

 

 

 

 

 

 

 

 

(2.9)

 

 

 

 

 

 

 

 

 

aijk aijk 1 aikk 1 a kjk , k i n, k j n 1

 

Второй этап решения СЛАУ называется обратным ходом метода Гаусса и состоит в последовательном определении неизвестного xk.

Контроль полученных решений можно провести путем их подстановки в исходную СЛАУ и вычисления невязок rk, разностей между правыми и левыми частями уравнений:

24

n

rk a k1n 1 a kjx j (2.10) j 1

При малой погрешности решений величины rk будут близки к нулю.

2.2.3 Метод Зейделя

Если после преобразования системы (2.7) к виду:

x1 (a1,n 1

a11x1

a12x2

...

a1n xn )/a11 x1 ,

 

 

 

x2 (a 2,n 1

a 21x1

a 22x 2

 

a 2n x n ) / a 22 x2

 

 

 

,

(2.11)

 

 

 

 

 

 

.............................................................................

 

 

 

 

 

 

 

 

 

 

xn (a n,n 1 - a n1x1 - a n2x2 -

- a nn x n )/a nn x n ;

 

 

 

 

 

 

задать столбец начальных приближений x0 , x0 ,..., x0

и

 

 

 

 

1

2

n

 

подставить их в правые части уравнений системы (2.11), можно получить новые приближения x10 , x02 ,..., x0n . Продолжая подобные действия до тех пор, пока не будут выполнены условия | x(km 1) x(km) | , ( – заданная погрешность,

k=1,2,…,n) можно получить итерационный процесс, являющийся обобщением метода простых итераций (п.2.2) на системы уравнений. Если использовать приближения к решениям, найденные при выполнении текущей итерации, то можно организовать итерационный процесс, известный как метод Зейделя, который приводит к ускорению сходимости:

x1(m 1)

1 (x1(m) , x(2m) ,..., x(nm) ),

 

 

x(2m 1)

2

(x1(m 1) , x(2m) ,..., x(nm) ),

 

 

 

(2.14)

.........................................

 

 

 

x(m 1)

 

n

(x(m 1)

, x(m 1)

,..., x(m) ).

 

n

 

1

2

n

 

 

25

Пример выполнения задания N2

 

 

 

Методами

2.34x1 4.21x2

11.61x3

14.41

 

Гаусса

и Зей-

 

деля

решить

8.04x1

5.22x2

0.27x3

6.44

 

(2.13)

 

систему

урав-

3.92x1

7.99x2

8.37x3

55.56

 

 

нений (2.13) с

 

 

 

 

 

 

 

 

точностью =0.001.

Решение. В соответствии с методом Гаусса вводим коэффициенты расширенной матрицы в программу

GAUSS.PAS.

В результате выполнения программы получаем значения корней:

x[1]=2.293021; x[2]=-4.815522; x[3]=0.967185.

Для решения по методу Зейделя преобразуем исходную

систему

так,

8.04x1 5.22x

 

0.27x3

6.44

 

чтобы

диаго-

2

 

нальные

коэф-

6.26x1

12.2x2

 

 

 

(2.14)

3.24x3 69.97

фициенты бы-

2.34x

4.21x

 

11.61x

 

14.41

 

ли по возмож-

1

 

2

 

3

 

 

 

 

 

 

 

ности преобладающими. С этой целью первым уравнением преобразован-

ной системы (2.14) возьмем второе уравнение исходной, третьим - первое, а вторым - сумму первого с третьим. В качестве исходных данных для программы ZEID.PAS (Приложение 2) вводим число уравнений системы n=3, максимальное число итераций m=30, точность решения системы E=0.001, коэффициенты расширенной матрицы системы

(3.14).

Результаты решения по методу Зейделя:

x[1]=2.293182, x[2]=-4,815438, x[3]=0.967187, получено на 10-ом шаге.

26

2.3 Приближение функций

Основу всякой вычислительной работы составляет вычисление значений функций. При этом последняя может быть задана тремя различными способами: аналитическим выражением, в табличном виде и неявно - как решение некоторого уравнения.

Если функции задаются таблично значениями в некоторых точках, называемых узлами, то возникает задача определения их значений в промежутках таблицы.

В таких случаях выбирают некоторую модельную функцию (например, многочлен), которая является хорошим приближением к исходной в промежутках таблицы.

Критерий приближения или согласия определяет тип задачи приближения. Если требуется, чтобы приближающая функция совпадала с узловыми значениями - это задача интерполирования. Если же постулируется условие минимальности суммы квадратов отклонений между заданной функцией и приближающей в узловых точках, то - это задача аппроксимации.

2.3.1 Интерполяция

Использование в качестве модельных функций многочленов удобно, ввиду их простоты и возможности решения задачи численного дифференцирования и интегрирования.

Иллюстрируем данный способ приближения функций интерполяционным многочленом Лагранжа в виде:

 

n

 

n

x x j

 

 

 

 

P (x) f

 

 

 

 

 

,

j i .

(2.15)

 

 

x

 

n

i 0

i

j 0

x

i

j

 

 

 

 

 

 

 

 

 

 

27

Программа LAGR.PAS реализует алгоритм интерполяции функции многочленом Лагранжа.

2.3.2 Метод наименьших квадратов

Если некоторая функция, заданная таблично (табл. 2.1), получена в ходе эксперимента, то использование в качестве приближающей функции многочлена Лагранжа не всегда оправдано. Значения экспериментальной функции могут быть сомнительными в силу погрешности измерения, а сама функция может зависеть от многих случайных факторов. Поэтому, совпадение приближающей и исходной функций в узлах таблицы вовсе не означает совпадения характеров их поведения.

Таблица 2.1

x

x1

x2

xn

y

y1

y2

yn

Сформулируем задачу приближения так, чтобы с самого начала обязательно учитывался характер исходной функции: найти функцию заданного вида: y=F(x), которая в точ-

ках x1,x2…xn принимает значения y1 , y2 ,..., yn как можно

более близкие к табличным значениям y1,y2,…,yn. Тогда требование близости можно сформулировать так, чтобы

расстояние между точками M(y1,y2,…,yn) и M(y1 , y2 ,..., yn ) , было наименьшим. Это равносильно условию, в соответ-

ствии

с

 

 

 

 

 

которым,

 

 

 

 

сумма

квадратов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(y

y

)2 (y

2

y

2

)2 ... (y

n

y

n

)2

должна

быть

1

1

 

 

 

 

 

 

 

 

 

 

 

наименьшей.

В качестве приближающих функций можно использовать:

28

линейную- y=ax+b, степенную- y=a x b , показательную-

y=a ebx и другие, где a,b- параметры, выбор которых определяет степень близости приближающей и исходной функций.

Для случая приближающей функции с двумя парамет-

 

 

 

 

 

рами F(xi , a, b) yi

, i=1,2,…,n необходимое

условие экс-

тремума:

 

 

 

n

F(xi ,a, b)]Fa (xi

 

[yi

, a, b) 0,

 

i 1

 

 

(2.16)

n

 

 

 

 

[yi

F(xi ,a, b)]Fb (xi

, a, b) 0.

 

i 1

 

 

 

Решив систему (2.16) относительно параметров а,b, можно получить конкретный вид искомой функции F(x,a,b).

Например, для случая линейной регрессии система (2.16) примет вид:

M

2

* a M

* b M

,

 

x

 

x

 

 

xy

(2.17)

 

* a b M

 

 

M

,

 

 

x

 

 

y

 

 

 

где Mx n1 xi ; M y n1 yi ; Mxy n1 xi yi ; Mx2 n1 xi 2 .

Из двух разных приближений лучшим надо считать то, для которого сумма квадратов отклонений

n

[yi F(xi , a, b)]2 (2.18)

i 1

имеет наименьшее значение.

Пример выполнения задания N 3

1) Составить интерполяционный многочлен Лагранжа для функции, заданной таблично и определить значения в промежуточных точках. Построить график, отметив на нем

29

узловые точки. Уплотнить заданную таблицу с помощью программы LAGR.PAS.

2) Построить линейное уравнение регрессии для заданной функции. С помощью программы MNK.PAS в соответствии с принципом наименьших квадратов найти наилучшее приближение заданной функции.

Таблица 2.2

 

 

x

 

1

 

 

2

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y=f(x)

 

0.8

 

2.5

 

5.2

 

 

 

 

 

 

 

 

 

 

 

 

Решение. 1) Строим многочлен Лагранжа в соответ-

ствии с формулой (2.15):

 

 

 

 

 

 

 

P (x) 0.8

(x 2)(x 3)

2.5

(x 1)(x 3)

5.2

(x 1)(x 2)

 

 

 

 

2

 

 

(1 2)(1

3)

 

(2 1)(2 3)

 

(3 1)(3 2)

 

 

 

 

 

 

 

0.4(x 2 5x 6) 2.5(x 2

4x 3) 2.6(x 2

3x 2)

 

0.5x 2

0.2x 0.1;

 

 

 

 

 

 

 

 

P2 (1.5) 1.525 , P2 (2.5) 3.725

 

 

 

 

Для расчета по программе LAGR.PAS вводим количество узлов n=3, крайние значения узлов и шаг уплотнения табл. 2.2: x0=1, x9=3, H=0.5.

Результаты выполнения программы LAGR.PAS:

X

P

PI

PII

1

0.8

1.2

1

1.5

1.525

1.7

1

2

2.5

2.2

1

2.5

3.725

2.7

1

3

5.2

3.2

1

 

 

 

 

В третьем и четвертом столбцах приведены значения первой PI и второй PII производных многочлена Лагранжа, вычисленные в процедуре PL. Как видно значения в проме-

30