Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЧисМетЗад.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
15.86 Mб
Скачать

Задание № 5

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

Для сокращения записи в задачах приводится только матрица коэффициентов А и столбец свободных членов b, записанный иногда в строчку. В задачах, содержащих параметр, матрица коэффициентов получается в результате сложения матриц D и kC, где k – параметр, изменяющийся по некоторому закону.

Вариант А

1.

Вариант

1

2

3

4

5

6

k

2

4

6

8

10

12

2.

Вариант

7

8

9

10

11

12

k

2

4

6

8

10

12

3.

Вариант

13

14

15

16

17

18

k

2

4

6

8

10

12

4.

Вариант

19

20

21

22

23

24

k

0,5

1,0

1,5

2,0

2,5

3,0

Вариант Б

1.

Вариант

1

2

3

4

5

6

k

2

4

6

8

10

12

2.

Вариант

7

8

9

10

11

12

k

0,02

0,04

0,06

0,08

0,10

0,12

3.

Вариант

13

14

15

16

17

18

k

1

3

5

7

9

11

4.

Вариант

19

20

21

22

23

24

k

1,5

3,5

5,5

7,5

9,5

11,5

3.3. Системы нелинейных уравнений

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

Метод простых итераций

Систему нелинейных уравнений можно кратко записать в векторном виде

f(x) = 0, (3.10)

или более подробно в координатном представлении

fk(x1, x2,  , xn) = 0, 1 kn. (3.11)

Такие системы решают практически только итерационными методами. Нулевое приближение в случае двух переменных можно найти графически: построить на плоскости (х1, х2) кривые f1(x1, x2) =0 и f2(x1, x2) = 0 и найти точки их пересечения. Для трёх или более переменных (а также для комплексных корней) удовлетворительных способов подбора нулевых приближений нет.

В методе простых итераций, называемом также методом последовательных приближений, нелинейная система (3.11) заменяется эквивалентной системой х = (х). Выбирается некоторое нулевое приближение х(0) и дальнейшие приближения отыскиваются по формуле

x(n+1) = (x(n)) (3.12)

или

(3,12,a)

Описанный выше в самой общей форме метод в литературе часто называют методом одновременных смещений или методом Якоби. Его сходимость можно улучшить, используя метод последовательных смещений или метод Гаусса – Зейделя. Отличие этого метода от предыдущего состоит в том, что только что найденные новые приближения в (k1)-ой точке (и всех предыдущих) используются для отыскания нового приближения в последующих точках (или для последующих переменных). Основным уравнением метода последовательных смещений является выражение

(3.13)

Метод Ньютона

Пусть известно некоторое приближение х(s) к корню Запишем исходную систему (3.10) в виде f(x(s) +  x) = 0, где  х = Разлагая эти уравнения в ряды и ограничиваясь первыми дифференциалами, т.е. линеаризуя функцию, получим

(3.14)

Эта система уравнений линейна относительно приращений Все коэффициенты этой системы выражаются через последнее приближение x(s). Решив эту систему (например, методом исключения), найдём новое приближение x(s+1) = x(s) +  x(s).

Методы спуска

Рассмотрим функцию (x) = образованную из исходной системы уравнений. Она неотрицательна и обращается в нуль в том и только в том случае, когда f(x) = 0. Таким образом, решение исходной системы уравнений (5.10) будет одновременно и минимумом скалярной функции многих переменных Ф(х).

Замечание 1. – В принципе, все вышеописанные методы решения систем нелинейных уравнений неявно "задействованы" в командах и функциях распространённых ныне математических пакетов. Правда, ни в документации этих пакетов, ни в литературе не указывается, для какого порядка систем "работоспособны" эти функции. Поскольку при их использовании необходимо задавать нулевые приближения, то, по-видимому, число уравнений системы не должно быть слишком велико.

Замечание 2. – Для систем уравнений невысокого порядка удобны пакеты Mathcad, Maple и Mathematica. Рассмотрим использование первого из них на следующем примере.

Пусть требуется решить следующую систему уравнений

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

f(x, y) : = cos(0.4y + x2) + x2 + y2 – 1.6 g(x, y) : = 1.5x2 -

i:= 0..100 j:= 0..100 xi := 0.02i yj := - 1 + 0.02j Fi, j := f(xi, yj)

Gi, j := g(xi, yj)

Как видно из сопоставления контурных линий, приведённых на последующем рисунке и соответствующих нулевому значению функций, эти линии пересекаются в двух точках: (х  1, у  0,45) и (х  0,8, у   0,3). Используя эти приближения, воспользуемся совокупностью команд Given и Find:

x : = 1.0 y : = 0.45

Given

cos(0.4y + x2) + x2 + y2 1.6

1.5x2

Для второго решения аналогично имеем

x : = 0.8 y : = - 0.25

Given

cos(0.4y + x2) + x2 + y2 1.6

1.5x2

В рамках Maple система нелинейных уравнений решается при помощи команды fsolve({eqn1, eqn2, …}, {v1, v2, …}, options), где аргумент options используется для указания примерных интервалов расположения корней. По сравнению с Mathcad данный пакет имеет то преимущество, что позволяет совмещать контурные графики и, тем самым, более точно устанавливать нулевые приближённые решения.

Для данного примера использование пакета Maple будет выглядеть так:

> restart; with(plots):

> v1 := contourplot(cos(0.4*y+x^2)+x^2+y^2-1.6, x=0..2,y= - 1.0..1.0, grid = [15, 15],

contours = [-0.5, 0, 0.5], numpoints = 1600, colour = blue):

> v2 := contourplot(1.5*x^2-y^2/0.36-1., x=0..2, y= - 1.0..1.0, grid = [15, 15],

contours = [-0.5, 0, 0.5], numpoints = 1600, colour = red):

> plots[display]([v1, v2]);

Результат этих действий показан на вышеприведённом рисунке. Конечно, здесь также имеется вполне определённый недостаток, связанный с тем, что графика Maple "не признаёт" координатной сетки. Тем не менее, рисунок очень нагляден, особенно если учесть, что значения контурных линий возрастает слева направо.

Дальнейшая процедура использования пакета вполне определена:

> fsolve({cos(0.4*y+x^2)+x^2+y^2-1.6=0, 1.5*x^2-y^2/0.36-1.=0}, {x, y},

x=1.0 . . 1.2, y=0.4 . . 0.5);

{x = 1.038629238, y = .4717259527}

> fsolve({cos(0.4*y+x^2)+x^2+y^2-1.6=0, 1.5*x^2-y^2/0.36-1.=0}, {x, y},

x=0.8 . . 1.2);

{x = .8745654831, y = - .2302758856}

Пример 3.1. Решить систему уравнений

Начальное приближение найти графически.

Из первого уравнения следует, что 0.6  x2 + y2  2.6. Поэтому график g(x, y) достаточно построить для значений x  [0.82, 1.4]. Кривую g(x, y) на этом промежутке построим по следующим точкам:

x

0.82

1.0

1.1

1.2

1.3

1.4

y

0.0

0.42

0.54

0.65

0.74

0.83

Введём обозначение

0.4y + x2 = q. (a)

Тогда из первого уравнения следует

cos(q) + x2 + y2 –1.6 = 0. (b)

Как видно из таблицы, нас интересуют значения q лишь в промежутке 0.6 < q < 2.3. Разрешим равенства (а) и (b) относительно x и y:

Придавая q различные значения, получим ряд точек на кривой f(x, y) = 0:

q

1.0

1.1

1.2

1.3

x

0.89

0.94

1.00

1.05

y

0.52

0.50

0.48

0.47

По данным таблиц строим график:

Из графика видно, что начальное приближение составляет: x0 = 1.04, y0 = 0.47. Полученное приближенное решение уточним по методу Ньютона

где

Все вычисления вносим в две таблицы, где x иy обозначают соответственно и .

Основная таблица

Вспомогательная таблица

x

1.04

1.03864

x

1.04

1.03864

y

0.47

0.47173

y

0.47

0.47173

f

 0.00084

0.00000

0.4y

0.188

0.18869

g

0.00879

0.00002

x2

1.0816

1.07877

fx'

0.09364

0.09483

= 0.4y + x2

1.2696

1.26746

fy'

0.55801

0.56172

cos()

0.29666

0.29870

gx'

3.12

3.11592

1.5 x2

1.6224

1.61816

gy'

 2.61111

 2.62072

y2

0.2209

0.22253

x

0.00271

0.00001

y2/0.36

0.61361

0.61814

y

 0.00344

0.00000

2 x

2.08

2.07728

 1.98549

 1.99889

2 xsin()

 1.98636

 1.98245

x

0.00136

0.00000

0.4sin()

 0.38119

 0.38174

y

 0.00173

0.00000

Ответ: x = 1.03864; y = 0.47173.

Этот ответ полностью совпадает с приведённым выше первым решением, однако второе решение при таком подходе не выявляется. Необходимо строить полный график функций, а не его отдельные линии.