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

КП

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

namespace ConsoleApp2

{

class Program

{

static void Main(string[] args)

{

do

{

try

{

Console.WriteLine("Введите размер матрицы:"); int n = int.Parse(Console.ReadLine()); double[,] a = new double[n, n];

double[] b = new double[n];

double[] x = new double[n]; //нулевые приближения for (int i = 0; i < n; i++)

{

x[i] = 0;

}

for (int i = 0; i < n; i++) //ввод матрицы

{

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

{

Console.WriteLine("Введите элемент [" + (i + 1) + "," + (j + 1) + "]:"); a[i, j] = double.Parse(Console.ReadLine());

}

}

for (int j = 0; j < n; j++) //ввод значений b

{

Console.WriteLine("Введите элемент [" + (j + 1) + "]:"); b[j] = double.Parse(Console.ReadLine());

}

Zeidel test = new Zeidel(a, b, 500, n, x); bool IsDiagonal = test.DiagonallyDominant(); test.algoritm();

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

{

Console.WriteLine("X" + (j + 1) + " = " + test.roots[j]);

}

Console.WriteLine("Итерация: " + test.k + "Для выхода esc, продолжение enter");

}

catch (Exception ex)

{

Console.WriteLine(ex.ToString());

}

} while (Console.ReadKey().Key != ConsoleKey.Escape);

}

}

public class Zeidel

{

public static double epsilon = 0.000001; //точность вычисления

public int n, k, N; //N -допустимое число итераций, n - размерность квадратной матрицы коэффицентов, k-количество итераций

public double s, Xi, diff = 1; //s - сумма, величина погрешности public double[,] matrix; //матрица коэффицентов

public double[] value; //матрица значений public double[] roots; //матрица корней public bool diagonal;

public Zeidel(double[,] matrix, double[] value, int N, int n, double[] roots)

{

this.matrix = matrix; this.N = N; this.value = value; this.n = n; this.roots = roots;

}

public bool DiagonallyDominant()

{

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

{

double sum = 0;

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

{

if (i != j)

{

sum += Math.Abs(matrix[i, j]);

}

}

if (Math.Abs(matrix[i, i]) >= sum)

{

diagonal = true; break;

}

else

{

diagonal = false;

}

}

return diagonal;

}

public void algoritm()

{

k = 0;

while ((k <= N) && (diff >= epsilon))

{

k = k + 1;

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

{

s = 0;

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

{

if (i != j)

{

s += matrix[i, j] * roots[j];

}

}

Xi = (value[i] - s) / matrix[i, i]; diff = Math.Abs(Xi - roots[i]); roots[i] = Xi;

}

}

}

}

}

Задание 3.

F(x)= ex-4x3 ε = 0.0001

Метод половинного деления (метод дихотомии).

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

Поскольку F(0.8) *F(0.9) <0 (т.е. значения функции на его концах имеют противоположные знаки), то корень лежит в пределах [0.8; 0.9].

N=1.

c = (0.8 + 0.9) /2 = 0.85 F(x) = -0.117

F(c) = 0.178

Поскольку F(c)•F(a) <0, то b=0.85

N=2.

c = (0.8 + 0.85) /2 = 0.825 F(x) = 0.0358

F(c) = -0.117

Поскольку F(c)•F(b) <0, то a=0.825

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

N

c

a

b

f(c)

f(x)

ε

1

0.85

0.85

0.9

0.1775

-0.1169

0.05

2

0.825

0.825

0.85

-0.1169

0.03582

0.025

3

0.8375

0.8375

0.85

0.03582

-0.03913

0.0125

4

0.8313

0.8313

0.8375

-0.03913

-0.00131

0.00625

 

 

 

 

 

 

 

5

0.8281

0.8281

0.8313

-0.00131

0.01734

0.00313

 

 

 

 

 

 

 

6

0.8297

0.8297

0.8313

0.01734

0.00804

0.00156

 

 

 

 

 

 

 

7

0.8305

0.8305

0.8313

0.00804

0.00337

0.000781

 

 

 

 

 

 

 

8

0.8309

0.8309

0.8313

0.00337

0.00103

0.000391

9

0.8311

0.8311

0.8313

0.00103

-0.000139

0.000195

Таким образом, в качестве корня можно принять: x=(0.8309+0.8311) /2 = 0.831

Ответ: x = 0.831; F(x) = -0.000139.

Метод хорд.

Рассмотрим более быстрый способ нахождения корня на интервале [a, b], в предположении, что f(a)f(b) <0.

Вточке x=x1, y=0, в результате получим первое приближение корня

Проверяем условия:

1.f(x1) f(b) <0,

2.f(x1) f(a) <0.

Если выполняется условие (1), то в формуле точку a заменяем на x1, получим:

Продолжая

этот

процесс,

получим

для

n-го

приближения:

Пусть f(xi)f(a) <0. Записав уравнение хорды, мы на первом шаге итерационного процесса получим x1. Здесь выполняется f(x1) f(a) <0. Затем вводим b1=x1 (в формуле точку b заменяем на x1), получим:

Остановка процесса:

|xn – xn-1| <ε, ξ = xn.

Находим первую производную: dF/dx = -12•x2+ex

Находим вторую производную: d2F/dx2 = -24•x+ex

Поскольку F(0.8) *F(0.9) <0 (т.е. значения функции на его концах имеют противоположные знаки), то корень лежит в пределах [0.8; 0.9].

Вычисляем значения функций в точке a = 0.8 f(0.8) = 0.178

f''(0.8) = -16.974

Поскольку f(a)•f''(a) <0, то x0 = b = 0.9

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

N

x

F(x)

h = F(x)*(b-x) /(f(b)-f(x))

 

 

 

 

1

0.8

0.1775

-0.02801

 

 

 

 

2

0.828

0.01805

-0.00274

 

 

 

 

3

0.8307

0.00172

-0.00026

 

 

 

 

4

0.831

0.000163

-0.000139

 

 

 

 

Ответ: x = 0.831; F(x) = -0.000139.

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

Поскольку F(0.8) *F(0.9) <0 (т.е. значения функции на его концах имеют противоположные знаки), то корень лежит в пределах [0.8; 0.9].

Вычисляем значения функций в точке a = 0.8 f(0.8) = 0.178

f''(0.8) = -16.974

Критерий остановки итераций.

|f(xk)| <εm1

или

где M2 = max|f "(x)|, m1 = min|f'(x)|.

Поскольку f(a)•f''(a) < 0, то x0 = b = 0.9

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

N

x

F(x)

dF(x)

h = f(x) / f'(x)

 

 

 

 

 

1

0.9

-0.4564

-7.2604

0.06286

 

 

 

 

 

2

0.8371

-0.03692

-6.0999

0.00605

 

 

 

 

 

3

0.8311

-0.000325

-5.9926

5.4E-5

 

 

 

 

 

Скорость сходимости метода Ньютона квадратичная с коэффициентом

α = M2/2m1, где M2 = max|f "(x)|, m1 = min|f'(x)|.

Ответ: x = 0.8311 - (-0.000325) / (-5.9926) = 0.83103146; F(x) = 0

Комбинированный метод.

Поскольку F(0.8) *F(0.9) <0 (т.е. значения функции на его концах имеют противоположные знаки), то корень лежит в пределах [0.8; 0.9].

Вычисляем значения функций в точке a = 0.8 f(0.8) = 0.178

f''(0.8) = -16.974

Поскольку f(a)•f''(a) <0, то x0 = b = 0.9

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

N

x

F(x)

b

F(b)

h = f(b)*(b-x) /(f(b)-

hb =

f(x))

f(b)/f'(b)

 

 

 

 

 

1

0.8

0.1775

0.9

-0.4564

-0.02801

0.06286

2

0.828

0.01805

0.8371

-0.03692

-0.003

0.00605

 

 

 

 

 

 

 

3

0.831

0.000163

0.8311

-0.000325

-2.7E-5

5.4E-5

Ответ: x = 0.83100433; F(x) = 0.000163.

Задание 4.

+ 0,1 2 = 0,1

 

1

 

 

 

 

 

2

 

 

 

 

{ 10 2

 

 

 

 

 

 

 

 

 

 

 

 

1

= 2,1

 

 

 

 

 

 

 

 

21

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

0 = 0

= 0,01

 

 

 

1

 

 

 

2

 

 

 

 

 

 

 

( ) = + 0,1 2

− 0,1

 

 

 

 

 

 

 

1

 

2

 

 

 

 

 

 

 

10 2

 

 

 

 

 

( ) =

 

1

− − 2,1

 

 

 

 

 

 

 

 

 

 

21

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

= 1

 

 

1

= 0,2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

2

 

 

 

2

 

=

20

 

 

1

= −1

 

 

 

 

 

 

 

 

 

 

 

{

21

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

1

 

( (0)) = (

1

 

 

0,002)

 

 

 

 

 

 

 

0,0095

−1

(0,01;0,01) = 0,01+ 0,1 (0,01)2 − 0,1 = −0,0899

(0,01;0,01) =

10 (0,01)2

− 0,01− 2,1 = −2,109

 

21

 

 

 

 

 

 

 

 

L=1

 

 

 

 

 

 

 

δ=-0,0899

 

 

 

 

 

= [0,999

0,002

]

 

 

0,009

−0,999

 

0,999+

0,002

= 1,001

 

 

{0,009+

0,999

= 1,008

 

 

M=1,008 1,008*1*0,0899*22=0,36247

Т. к 0,36247 < 12, то метод Ньютона сходится.

Задание 5.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

0

 

 

 

 

 

1

 

 

 

 

 

2

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi

 

 

2,6

 

 

 

 

3,6

 

 

 

 

 

5,6

 

 

 

7,1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yi

 

 

68,66

 

 

 

56,55

 

 

 

 

-51,6

 

 

 

80,65

 

 

 

 

 

 

 

 

( ) = 0

( − 1)( − 2)( − 3)

 

 

 

 

 

 

 

 

( − 0)( − 2)( − 3)

 

 

 

 

 

 

 

 

 

+ 1

 

 

 

 

 

 

 

 

+

 

 

( −

)( −

)( −

)

( − )( −

)( − )

 

 

 

 

0

1

0

2

0

 

3

 

 

 

 

 

 

 

1

0

 

1

2

1

 

3

 

 

 

 

 

+ 2

 

( − 0)( − 1)( − 3)

 

+ 3

 

 

( − 0)( − 1)( − 2)

 

=

 

 

 

 

 

( − )( − )( − )

 

 

( − )( − )( − )

 

 

 

 

 

2

0

2

1

2

3

 

 

 

 

 

3

 

 

 

0

3

 

1

3

2

 

 

 

 

 

 

 

 

 

 

 

 

( − 3,6)( − 5,6)( − 7,1)

 

 

 

 

 

 

 

( − 2,6)( − 5,6)( − 7,1)

= 68,66

 

 

 

 

 

+ 56,55

 

 

 

 

 

 

(2,6 − 3,6)(2,6− 5,6)(2,6− 7,1)

(3,6− 2,6)(3,6− 5,6)(3,6 − 7,1)

 

 

 

 

( − 2,6)( − 3,6)( − 7,1)

 

 

 

 

 

 

 

 

 

 

 

 

( − 2,6)( − 3,6)( − 5,6)

− 51,6

 

 

 

 

+ 80,65

 

 

 

 

=

(5,6− 2,6)(5,6− 3,6)(5,6 − 7,1)

(7,1− 2,6)(7,1 − 3,6)(7,1 − 5,6)

= 68,66

( − 3,6)( − 5,6)( − 7,1)

+ 56,55

( − 2,6)( − 5,6)( − 7,1)

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

−13,5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

− 51,6

( − 2,6)( − 3,6)( − 7,1)

+ 80,65

( − 2,6)( − 3,6)( − 5,6)

 

 

 

 

 

 

 

23,625

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

−9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= 12,14 3 − 65,904 2 + 334,32 + 2244,142

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( ) = 12,14 3 − 65,904 2

+ 334,32 + 2244,142

 

 

 

 

 

 

 

 

 

 

 

 

 

x=68,26

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( ) = 12,14 68,263 − 65,904 68,262 + 334,32 68,26 + 2244,142

= 3579147.598

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

0

 

 

 

 

 

1

 

 

 

 

 

2

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi

 

 

6,1

 

 

 

 

10,3

 

 

 

 

 

14,5

 

 

 

18,7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yi

 

 

87,12

 

 

 

104,95

 

 

 

133,98

 

 

 

149,19

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10 =

104,95− 87,12

= 4,25 11 =

133,98− 104,95

= 6,91

 

 

 

 

 

 

 

 

 

 

 

 

14,5 − 10,3

 

 

 

 

 

 

 

 

 

 

 

 

 

10,3 − 6,1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

=

149,19− 133,98

= 3,62

 

 

 

 

18,7 − 14,5

 

 

 

 

 

 

 

 

 

 

 

20

=

6,91 − 4,25

= 0,317 21 =

3,62

− 6,91

= −0,392

 

 

 

 

 

18,7

− 10,3

 

 

14,5 − 6,1

 

 

30

=

−0,392− 0,317

= −0,056

 

 

 

 

18,7− 6,1

 

 

 

 

 

 

 

 

 

 

 

 

( ) = 0 + 10( − 0) + 20( − 0)( − 1)+ 30( − 0)( − 1)( − 2)( ) = 87,12 + 4,25( − 6,1)+ 0,317( − 6,1)( − 10,3) − 0,056( − 6,1)( − 10,3)( − 14,5) = −0,056 3 + 2,047 2 − 17,784 + 30,094

x=99,28

( ) = −0,056 99,283 + 2,047 99,282 − 17,784 99,28+ 30,094 = −36358.297

Графики полинома Лагранжа и функции,

 

заданной таблично

 

6000

 

 

100

5000

 

 

50

4000

 

 

 

 

 

3000

 

 

0

2000

 

 

-50

1000

 

 

 

 

 

0

 

 

-100

1

2

3

4

 

Lx

yi

 

Графики полинома Ньютона и функции,

 

заданной таблично

 

160

 

 

60

140

 

 

50

120

 

 

40

100

 

 

30

80

 

 

20

60

 

 

10

40

 

 

0

20

 

 

-10

0

 

 

-20

1

2

3

4

 

yi

Px

 

Задание 6.

 

 

 

Табличная зависимость y=F(x)

x

0,1

0,3

0,4

0,6

0,7

0,9

 

 

 

 

 

 

 

y

-0,1

0,5

0,8

0,7

2,5

2,1

 

 

 

 

 

 

 

n=6

( ) = 0 + 0 + 0 2 + 0 3

6

(

,

,

 

) = ∑( ( ,

,

,

 

)− )2

 

 

 

 

 

 

 

0

1

2

 

 

0

1

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

6

 

 

 

 

 

6

 

 

6

 

 

 

 

( + 1) + ∑ + ∑

2

2

+ ∑ 3

= ∑

 

 

 

 

 

 

 

 

0

 

1

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

=1

 

=1

 

 

 

 

 

=1

 

 

=1

 

 

 

6

 

 

 

 

6

 

6

 

 

 

 

 

6

 

 

6

 

 

 

 

0

+ ∑

2

+ ∑

3

+ ∑

4

3

= ∑

 

 

 

 

 

 

 

1

 

 

 

2

 

 

 

 

 

 

=1

 

 

 

=1

 

=1

 

 

 

 

 

=1

 

 

=1

 

 

 

 

6

 

 

 

 

6

 

6

 

 

 

 

 

6

 

 

6

 

 

 

 

2

0

+ ∑

3

+ ∑

4

+ ∑

5

3

= ∑

2

 

 

 

 

 

 

 

1

 

 

 

2

 

 

 

 

 

 

 

=1

 

 

 

 

=1

 

=1

 

 

 

 

 

=1

 

 

=1

 

 

 

 

6

 

 

 

 

6

 

6

 

 

 

 

 

6

 

 

6

 

 

 

 

3

0

+ ∑

4

+ ∑

5

+ ∑

6

3

= ∑

3

 

 

{ =1

 

 

 

 

1

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

=1

 

=1

 

 

 

 

 

=1

 

 

=1

 

 

 

 

6

 

 

 

 

6

 

 

6

 

 

 

 

 

 

6

 

 

 

 

 

 

∑ = 3

2

= 1,92

3 = 1,38 ∑ = 6,5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=1

 

 

 

 

=1

 

 

=1

 

 

 

 

 

=1

 

 

 

 

 

6

 

 

 

 

 

6

 

 

 

 

 

 

 

6

 

 

 

6

 

 

 

4

= 1,0596 ∑ = 4,52

5

= 0,849

2

= 3,35

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=1

 

 

 

 

=1

 

 

 

 

 

=1

 

 

 

=1

 

 

 

6

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

= 0,700572

3

= 2,6042

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=1

 

 

 

 

 

 

=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7 0 + 3 1 + 1,923 2 + 1,38 3 = 6,5

{

3 0 + 1,92 1 + 1,38 2 + 1,0596 3 = 4,52

1,92 0 + 1,38 1 + 1,0596 2 + 0,849 3 = 3,35

 

1,38 0 + 1,0596 1 + 0,849 2 + 0,700572 3 = 2,6042

0 = −0,0028061 = −1,3397702 = 10,5205133 = −7,000312

( ) = −0,002806 − 1,339770 + 10,520513 2 − 3,869 3

Задание 7.

10 = 1

1 − 0= 10 = 0,1

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