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

КП

.pdf
Скачиваний:
6
Добавлен:
03.02.2018
Размер:
1.12 Mб
Скачать

 

 

 

 

 

 

 

21 1 + 10 2 + 1 3 = 21

 

 

 

 

 

 

Задание 1. {

10 1 + 1 2 + 21 3 = 1

 

 

 

 

 

 

 

 

 

 

 

 

1 1 + 21 2 + 10 3 = −20

 

 

 

 

 

 

Метод Крамера.

 

 

 

 

 

 

 

 

 

 

 

 

 

=

1

 

=

 

2

=

3

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21

 

10

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

∆=|10

1

 

21| = 210 + 210 + 210 − 1 − 9261 − 1000 = −9632

 

 

1

 

 

21

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21

 

10

 

 

1

 

 

 

 

 

 

 

21

 

21

1

 

 

1= |

1

 

 

1

 

 

 

21| = −13310

 

2= |10

1

21| = 7170

 

 

−20

21

 

 

10

 

 

 

 

 

 

 

1

 

−20

10

 

 

 

 

21

 

 

10

 

 

21

 

 

 

 

 

 

 

 

 

 

 

 

 

3= |10

 

1

 

 

 

 

 

1

| = 5538

 

 

 

 

 

 

 

 

 

 

 

1

 

 

21

 

 

−20

 

 

 

 

 

 

 

 

 

 

 

1

=

−13310

=

 

6655

= 1.382

2

=

7170

 

= −

3585

= −0.744

 

 

 

 

 

 

 

 

 

 

 

 

−9632

4816

 

 

 

−9632

 

 

 

 

4816

 

 

 

 

 

 

 

 

3

=

5538

 

= −

2769

= −0.575

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

−9632

4816

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Метод Гаусса.

Нашёл единицу в 1-ом столбце и поменял местами 3-ю и 1-ую строки. Умножил 1-ю строку на 10.

21

10

1

21

1

21

10 −20

10

210

100 −200

(10

1

21| 1 ) → (10

1

21| 1 ) → (10

1

21 | 1 ) →

1

21

10 −20

21

10

1

21

21

10

1

21

Вычел 1-ую строку из 2-ой строки и восстановил ее. Умножил 1-ую строку на 21.

10

210

100 −200

1

21

10

−20

21

441

210 −420

→ (10

1

21 |

1 ) → ( 0

−209

−79|201) → ( 0

−209

−79| 201 ) →

21

10

1

21

21

10

1

21

21

10

1

21

Вычел 1-ую строку из 3-ей строки и восстановил ее. Получил единицу в 2-ом столбце разделив 2-ую строку на -209. Умножил 2-ую строку на 21.

 

1

21

10

−20

1

21

10

 

−20

1

21

10

−20

 

 

 

79

 

201

 

 

1659| 4221) →

→ (

0

−209

−79

|

201

) → (

1

|

) → (

21

 

 

 

 

 

 

0

209

 

−209

0

209

−209

 

0

−431

−209 441

 

 

 

 

 

 

 

 

0

−431

−209

441

0

−431

−209

441

 

 

 

 

 

 

 

Вычел 2-ую строку из 1-ой строки и восстановил ее. Умножил 2-ую строку на - 431. Вычел 2-ую строку из 3-ей строки и восстановил ее. Получил единицу в 3-ем столбце разделив 3-ю строку на -9632/209. Умножил 3-ю строку на 431/209

 

 

 

 

431

 

 

41

 

 

 

 

 

 

 

431

 

 

 

41

 

1

0

 

431

 

 

41

 

 

 

1

 

0

 

 

 

 

1

0

 

 

 

 

 

 

209

 

209

 

 

 

 

209

 

209

 

 

 

 

209

 

209

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

→ 0

 

 

 

 

79

 

201

 

 

 

 

 

 

 

 

79

 

 

| 201

 

 

 

 

 

 

 

−34049|86631

1

 

 

 

 

0

 

1

 

 

 

 

 

 

 

0 −431

 

 

 

209

|

−209

 

 

 

 

209

 

 

−209

 

 

209

 

−209

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

−9632 5538

 

(0

−431 −209

441 )

(0

−431

 

−209

441 )

(0

0

 

 

 

209

 

209 )

 

1

0

 

431

41

 

 

 

 

 

 

431

 

41

 

 

 

 

 

1

0

431

 

41

 

 

 

 

 

 

 

 

 

 

 

209

 

 

209

 

 

 

 

1

0

 

 

209

 

 

 

 

 

209

 

 

 

209

 

 

 

 

 

 

 

 

 

 

 

 

79

 

201

 

 

 

 

209

 

201

 

 

 

 

 

 

79

 

201

 

 

 

 

0

1

 

 

 

 

 

 

 

 

 

 

79

 

 

 

 

 

 

0

1

 

 

 

 

 

 

 

 

 

209

|

−209

 

0

1

|

−209

 

 

 

 

209

|

 

−209

 

 

 

 

 

 

 

 

 

209

 

 

 

 

 

 

 

 

 

 

 

0

0

 

−9632 5538

 

 

0

0

−2769

 

 

 

0

0

 

431 −1193439

 

 

 

 

 

 

 

209

209 )

 

 

1

 

4816 )

 

(

209

 

1006544 )

 

 

 

 

 

 

(

 

 

 

 

(

 

 

 

 

 

 

 

 

 

 

 

 

 

Вычел 3-ю строку из 1-ой строки и восстановил ее. Умножил 3-ю строку на

79/209.

Вычел 3-ю строку из 2-ой строки и восстановил ее.

 

 

 

6655

 

1

0

0

 

6655

 

 

 

 

 

6655

1

0

0

4816

 

 

4816

 

 

1

0

0

4816

 

 

 

79

 

 

 

→ 0

1

79

 

201

 

0

1

 

 

 

201

 

0

1

0

−3585

 

209

 

209| −209

 

|

 

−209

| 4816

 

 

 

 

79

 

 

0

0

1

0

0

1

−2769

0

0

 

−218751

 

−2769

209

 

 

(

 

 

4816 )

(

 

 

1006544)

(

 

 

 

4816 )

66551 = 4816 = 1.382

35852 = − 4816 = −0.744

27693 = − 4816 = −0.575

Метод обратной матрицы.

∆=−9632

21 10 1 А=(10 1 21)

1 21 10

21 В=( 1 ) −20

Х=А-1

 

Для вычисления обратной матрицы найдем дополнительные миноры и

алгебраические дополнения матрицы А.

 

 

А11

= | 1

21| = −431

 

А21

= − |10

1 | = −79

 

21

10

 

 

 

21

10

А12

= − |10

21| = −79

 

А22

= |21

1 | = 209

 

1

10

 

 

 

1

10

А13

= |10

1 | = 209

 

А23

= − |21

10| = −431

 

1

21

 

 

 

1

21

А31

= |10

1 | = 209

 

А32

= − |21

1 | = −431

 

1

21

 

 

 

10

21

 

 

 

А33 = |21

10| = −79

 

 

 

 

 

 

10

1

 

 

 

Транспонированная союзная матрица:

 

 

 

−431

−79

209

 

 

 

 

С=( −79

209

−431)

 

 

 

 

 

209

−431

−79

 

 

 

А-1=СТ

 

 

 

 

431

 

79

 

 

 

−209

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9632

9632

 

 

9632

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

А−1

=

79

 

 

−209

431

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9632

9632

 

9632

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

−209

431

 

 

 

79

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

9632

 

9632

 

 

9632

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

431

 

 

 

79

 

 

 

−209

 

 

1293

 

−79

1045

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9632

 

9632

 

9632

 

21

 

1376

 

9632

2408

 

 

 

 

 

 

 

 

79

 

 

 

 

−209

431

 

 

 

237

 

 

209

 

2155

Х = А−1 В =

 

 

 

 

 

 

( 1

) =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9632

 

9632

 

9632

 

−20

 

1376

 

9632

2408

 

 

 

 

 

 

 

 

 

−209

431

 

 

 

79

 

 

 

 

−627

431

 

395

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

(9632

 

 

 

 

 

 

 

9632)

 

 

(1376

 

 

 

 

 

 

 

 

 

 

 

 

9632

 

 

 

 

9632

2408)

6655

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4816

=−3585

4816

−2769

( 4816 )

66551 = 4816 = 1.382

35852 = − 4816 = −0.744

27693 = − 4816 = −0.575

Метод LU-разложения.

A=B*C

11 = 21 21 = 10 22 = −3,76 31 = 1 32 = 20.50 33 = 121,9211 = 1 12 = 0,48 13 = 0,05 22 = 1 23 = −5,46 33 = 1

21

0

 

0

 

= (10

−3,76

0

)

1

20,52

121,92

1

0,48

0,05

 

С = (0

1

−5,46)

0

0

 

1

 

=

21

= 1 =

1−10 1

= 2,39

=

−21+20,52 2,39

= −0,575

 

 

 

1

21

2

−3,76

 

3

121,92

 

 

 

 

 

 

3 = 3 = −0.575 2 = 2,39− (−5,46 (−0,57)) = −0,7441 = 1 − (0,48 (−0,744) + 0,0476 (−0,575)) = 1,382

Блок-схемы:

Метод Крамера.

Метод Гаусса.

using System;

using System.Collections.Generic; using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ConsoleApp1

{

class Program

{

static void Main(string[] args)

{

int n; /* количество уравнений */

double[,] A = new double[3, 3]; /* матрица системы */ double[] b = new double[3]; /* вектор правых частей */ double[] x = new double[3]; /* вектор решения */ Console.Write("Введите количество уравнений(<=3) n -> "); n = Convert.ToInt32(Console.ReadLine());

if (n > 3 || n <= 1)

{

Console.WriteLine("Ошибка в размерности системы (n=2,3)"); Convert.ToInt32(Console.ReadLine());

return;

}

for (int i = 0; i < n; i++) for (int j = 0; j < n; j++)

{

Console.Write("A{0}{1} -> ", i, j);

A[i, j] = Convert.ToDouble(Console.ReadLine());

}

for (int i = 0; i < n; i++)

{

Console.Write("b{0} -> ", i);

b[i] = Convert.ToDouble(Console.ReadLine());

}

if (SLAU_kramer(n, A, b, x) == 1)

{

Console.WriteLine("Система не имеет решение"); Convert.ToInt32(Console.ReadLine());

return;

}

else

for (int i = 0; i < n; i++) Console.WriteLine("x" + i + " = " + x[i]);

Console.ReadLine();

}

private

static double det(int n, double[,] B)

{

if (n == 2)

return B[0, 0] * B[1, 1] - B[0, 1] * B[1, 0];

return B[0, 0] * (B[1, 1] * B[2, 2] - B[1, 2] * B[2, 1]) - B[0, 1] * (B[1, 0] * B[2, 2] - B[1, 2] * B[2, 0]) +

B[0, 2] * (B[1, 0] * B[2, 1] - B[1, 1] * B[2, 0]);

}

static void equal(int n, double[,] A, double[,] B)

{

for (int i = 0; i < n; i++) for (int j = 0; j < n; j++)

A[i, j] = B[i, j];

}

static void change(int n, int N, double[,] A, double[] b)

{

for (int i = 0; i < n; i++) A[i, N] = b[i];

}

public

static int SLAU_kramer(int n, double[,] A, double[] b, double[] x)

{

double[,] An = new double[3, 3]; double det1 = det(n, A);

if (det1 == 0) return 1; for (int i = 0; i < n; i++)

{

equal(n, An, A); change(n, i, An, b); x[i] = det(n, An) / det1;

}

return 0;

}

}

}

Задание 2.

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

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

x11 12x2 13x3 -...-α1nxn x22 21x1 23x3 -...-α2nxn

xnn n1xn n3x3 -...-αnn-1xn-1

где βi=bi / aii; αij =aij/aii при i≠j; αii=0

Система (2) в матричной форме имеет вид:

x=β-αx

 

21

10

1

( 1

21

10)

10

1

21

Пусть x0=β, тогда: x1=b - a x0

x2=b - a x1

....

xk+1=b - a xk

Приведем к виду: x1=1+0.48x2+0.0476x3 x2=-0.95238+0.0476x1+0.48x3 x3=0.0476+0.48x1+0.0476x2

Вычисления заканчиваются по критерию:

a = 0.47619+0.047619 = 0.5238

 

 

 

 

 

Покажем вычисления на примере нескольких итераций.

 

N=1

 

 

 

 

 

 

 

 

 

x1=1 - 0 • 0.47619 - 0 • 0.0476=1

 

 

 

 

 

x2=-0.95238 - 0 • 0.0476 - 0 • 0.47619=-0.95238

 

 

x3=0.0476 - 0 • 0.47619 -

0 • 0.0476=0.0476

 

 

N=2

 

 

 

 

 

 

 

 

 

x1=1 - (-0.95238) • 0.47619 - 0.0476

• 0.0476=1.45125

 

 

x2=-0.95238 - 1 • 0.0476 - 0.0476 • 0.47619=-1.02268

 

 

x3=0.0476 - 1 • 0.47619 - (-0.95238) • 0.0476=-0.38322

 

 

N=3

 

 

 

 

 

 

 

 

 

x1=1 - (-1.02268) • 0.47619 - (-0.38322) • 0.0476=1.50524

 

x2=-0.95238 - 1.45125 • 0.0476 - (-0.38322) • 0.47619=-0.839

 

x3=0.0476 - 1.45125 • 0.47619 - (-1.02268) • 0.0476=-0.59475

 

Остальные расчеты сведем в таблицу.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

x1

x2

 

x3

 

e1

 

e2

e3

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

-0.952

 

0.0476

 

1

 

0.952

0.0476

 

 

 

 

 

 

 

 

 

 

 

 

2

1.451

-1.023

 

-0.383

 

0.451

 

0.0703

0.336

 

 

 

 

 

 

 

 

 

 

 

 

3

1.505

-0.839

 

-0.595

 

0.054

 

-0.184

0.212

 

 

 

 

 

 

 

 

 

 

 

 

4

1.428

-0.741

 

-0.629

 

-0.0774

 

-0.0982

0.0345

 

 

 

 

 

 

 

 

 

 

 

 

5

1.383

-0.721

 

-0.597

 

-0.0451

 

-0.0201

-0.0322

 

 

 

 

 

 

 

 

 

 

 

 

6

1.372

-0.734

 

-0.577

 

-0.0111

 

0.0132

-0.0205

 

 

 

 

 

 

 

 

 

 

 

 

7

1.377

-0.743

 

-0.571

 

0.0053

 

0.00924

-0.00591

 

 

 

 

 

 

 

 

 

 

 

 

8

1.381

-0.746

 

-0.573

 

0.00412

 

0.00307

0.00208

 

 

 

 

 

 

 

 

 

 

 

 

9

1.383

-0.745

 

-0.574

 

0.00156

 

-0.000795

0.00182

 

 

 

 

 

 

 

 

 

 

 

 

10

1.382

-0.745

 

-0.575

 

-0.000292

 

-0.00079

0.000781

 

 

 

 

 

 

 

 

 

Для оценки погрешности вычисляем коэффициент α:

 

 

mах[∑|αij|] = 0.47619+0.047619 = 0.52381<1

 

 

mах [|x9, x10|] = ρ (x9, x10) = |-0.57527

- (-0.57449) | = 0.00079

 

Вычисляем погрешность:

 

 

 

 

 

 

 

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

Имеем СЛАУ: Аx=b

Предполагая, что ≠ 0 разрешим новое уравнение системы относительно х1,

второе – относительно х2 и т.д. В результате получим:

1 = 1 12 2 13 3 − − 12 = 2 21 1 23 3 − − 2

= − 1 3 3 − − −1 −1

где 1 = ; = / , при ≠ ; = 0

Известно начальное приближение: x0=(x01,….,x0n). Итерационная схема имеет вид:

+1

=

− ∑

 

 

 

 

1

1

 

1

 

 

 

+1

=

+1 − ∑

 

 

2

2

2

1

 

2

 

 

+1

=

− ∑

+1

− ∑

 

 

1

 

 

1

 

2

 

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

21

10

1

( 1

21

10)

10

1

21

Приведем к виду:

x1 = 1 + 0.48x2 + 0.0476x3

x2 = −0.952 + 0.0476x1+ 0.48x3

x3

= 0.0476+ 0.48x1 + 0.0476x2

 

 

 

 

Покажем вычисления на примере нескольких итераций.

 

N = 1

 

 

 

 

 

 

 

 

x1

= 1 − 0 • 0.476 − 0 • 0.0476 = 1

 

 

 

x2

= −0.952 − 1 • 0.0476 − 0 • 0.476 = −1

 

 

 

x3

= 0.0476 − 1 • 0.476 − (−1) • 0.0476 = −0.381

 

N = 2

 

 

 

 

 

 

 

 

x1

= 1 − (−1) • 0.476 − (−0.381) • 0.0476 = 1.494

 

x2

= −0.952 − 1.494 • 0.0476 − (−0.381) • 0.476 = −0.842

 

x3

= 0.0476 − 1.494 • 0.476 − (−0.842) • 0.0476 = −0.624

 

N = 3

 

 

 

 

 

 

 

 

x1

= 1 − (−0.842) • 0.476 − (−0.624) • 0.0476 = 1.431

 

x2

= −0.952 − 1.431 • 0.0476 − (−0.624) • 0.476 = −0.723

 

x3

= 0.0476 − 1.431 • 0.476 − (−0.723) • 0.0476 = −0.599

 

Остальные расчеты сведем в таблицу.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

 

x1

x2

x3

 

e1

e2

 

e3

 

 

 

 

 

 

 

 

 

 

 

0

 

 

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

1

-1

-0.381

 

1

1

 

0.381

 

 

 

 

 

 

 

 

 

 

 

2

 

 

1.494

-0.842

-0.624

 

0.494

-0.158

 

0.243

 

 

 

 

 

 

 

 

 

 

 

3

 

 

1.431

-0.723

-0.599

 

-0.0636

-0.119

 

-0.0246

 

 

 

 

 

 

 

 

 

 

 

4

 

 

1.373

-0.732

-0.571

 

-0.0577

0.00898

 

-0.0279

 

 

 

 

 

 

 

 

 

 

 

5

 

 

1.376

-0.746

-0.572

 

0.00295

0.0134

 

0.000765

 

 

 

 

 

 

 

 

 

 

 

6

 

 

1.382

-0.746

-0.575

 

0.00643

-5.8E-5

 

0.00306

 

 

 

 

 

 

 

 

 

 

 

7

 

 

1.383

-0.744

-0.575

 

0.000118

-0.00145

 

0.000126

 

 

 

 

 

 

 

 

 

 

 

8

 

 

1.382

-0.744

-0.575

 

-0.000686

-9.2E-5

 

-0.000322

 

 

 

 

 

 

 

 

 

 

 

Для оценки погрешности вычисляем коэффициент α: mах[∑|αij|] = 0.476+0.0476 = 0.524<1

mах [|x7, x8|] = ρ (x7, x8) = |-0.575 - (-0.575) | = 0.000686

Вычисляем погрешность:

Соседние файлы в предмете Вычислительная математика