Скачиваний:
4
Добавлен:
01.09.2021
Размер:
668.66 Кб
Скачать

НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

им. Р.Е.АЛЕКСЕЕВА

Кафедра «Численное решение нелинейных уравнений»

Дисциплина «Информатика»

Лабораторная работа№5

Вариант№23

Выполнил: Федоров К.Р. Группа 19-Э-5 Проверил: Лапшин И.В.

Нижний Новгород

2020

Постановка задачи:

Численно решить нелинейное уравнение на промежутке [a, b] с числом разбиений n и точностью ε методами:

шаговый метод

метод половинного деления

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

метод хорд

метод простой итерации

Выполнить работу в C++ ; Exel ; Mathcad

#include <iostream> #include <iomanip> #include <math.h> //функция

double f(double x)

{

return (2 * x*sin(x*x) - cos(x));

}

//первая производная double f1(double z)

{

return 2 * sin(z*z) + sin(z) + 4 * z*z*cos(z*z);

}

//фи от х

double g(double x)

{

return sqrt(asin(cos(x) / (2 * x)));

}

using namespace std; int main()

{

setlocale(LC_ALL, "Russian");

double a = 0.4, b = 1, an, bn, x0 = 0.4, x1 = 1, c, x, eps; int i;

double h = (b - a) / 10; //шаговый

for (x = a; x <= b; x += h)

{

cout << "x=" << x << " f(x)=" << f(x) << endl; if (f(x)*f(x + h) < 0)

{

an = x;

bn = x + h;

}

}

cout << "Интервал изоляции корня [ " << an << " , " << bn << " ]" << "\n";

cout << "Метод половинного деления\n"; eps = 0.0001;

i = 0; a = an; b = bn; x = (a + b) / 2;

while (fabs(f(x)) > eps)

{

if (f(a)*f(x) < 0) b = x;

else

a = x; x = (a + b) / 2; i++;

}

cout << "Корень =" << x << " За " << i << " итераций\n"; cout << "Метод Ньютона\n";

eps = 0.000001; i = 0; x = an;

while (fabs(f(x)) > eps)

{

x = x - (f(x) / f1(x)); i++;

}

cout << "Корень =" << x << " За " << i << " итераций\n"; cout << "Метод хорд\n";

eps = 0.000001;

i = 0; a = an; b = bn;

x = a - ((b - a) / (f(b) - f(a)))*f(a); while (fabs(f(x)) > eps)

{

if ((f(a)*f(x)) < 0) b = x;

else

a = x;

x = a - ((b - a) / (f(b) - f(a)))*f(a); i++;

}

cout << "Корень =" << x << " За " << i << " итераций\n"; cout << "Метод простой интерации\n";

eps = 0.1; i = 0;

x = an;

while (fabs(f(x)) > eps)

{

x = (g(x)); i++;

}

cout << "Корень =" << x << " За " << i << " итераций\n";

}

a=

0,4

b=

1

n=

10

 

 

 

 

 

f(x) :=

2 x sin(x x) -

cos(x)

 

 

Шаговый метод

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h

x

f(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,06

0,4

-0,79361

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,46

-0,70283

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,52

-0,59002

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,58

-0,45356

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,64

-0,29235

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,7

-0,10597

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,76

0,105107

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,82

0,339278

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,88

0,593594

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,94

0,863504

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1,14264

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[a;b]

0,7

0,76

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Методы уточнения корня

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Метод половинного деления

 

 

eps=

 

 

 

 

 

 

 

 

0,001

 

 

 

 

 

 

a

x

b

f(a)

f(x)

 

f(a)*f(x)

 

|f(x)|<eps

 

 

 

 

 

 

 

 

0,7

0,73

0,76

-0,105966

-0,00345

0,000365

 

Нет

 

 

 

 

 

 

 

 

 

 

 

 

0,73

0,745

0,76

-0,003446

0,050089

-0,00017

 

Нет

 

 

 

 

 

 

 

 

 

 

 

 

0,73

0,7375

0,745

-0,003446

0,023135

 

-8E-05

 

Да

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Проверка условия сходимости

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 q sin(q 2) -

 

 

 

 

 

s

 

 

 

[a;b]

f(x)

f''(x)

f(x)*f''(x)

 

 

f(q)

 

cos(q)

 

 

 

 

 

 

 

0,7

-0,10597

6,885041

-0,72958

 

 

 

 

 

 

 

(

)

 

 

 

 

 

 

 

 

 

(

)

 

 

 

 

 

 

 

 

 

 

f1(q)

2 sin q2

 

+

sin(q) +

4 q

2 cos q

2

 

 

 

0,76

0,105107

6,447849

0,6777113

 

 

 

 

 

 

 

 

 

 

 

2

 

3

2

 

 

 

 

 

 

 

 

 

f2(q)

cos(q) +

 

 

12 q

cos(q

) -

8 q sin(q

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

f(x)

f'(x)

|f(x)|<eps

 

 

eps=

 

 

 

 

 

 

 

 

0,001

 

 

 

 

 

 

0,76

0,105107

3,716548

Нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,731719302

0,002614

3,530488

Нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,730978792

1,84E-06

3,525527

Да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Метод хорд

 

 

 

eps=

 

 

 

 

 

 

 

 

0,00001

 

 

 

 

 

 

a

x

b

f(a)

f(x)

 

f(b)

 

f(a)*f(x)

 

 

 

|f(x)|<eps

0,7

0,730122

0,76

-0,105966

-0,00302

0,105107

 

 

 

 

 

 

0,0003196

 

Нет

 

 

 

 

0,730122145

0,730956

0,76

-0,003016

-8E-05

0,105107

 

 

 

 

 

 

 

2,419E-07

 

Нет

 

 

 

 

0,730955521

0,730978

0,76

-8,02E-05

-2,1E-06

0,105107

 

 

 

 

 

 

 

1,707E-10

 

Да

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

f(x)

g(x)

|f(x)|<eps

 

 

eps=

 

 

 

 

 

 

 

 

 

0,1

 

 

 

 

 

 

0,7

-0,10597

0,760236

Нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,760236361

0,105985

0,704837

Нет

 

 

 

 

 

 

cos(x)

 

 

 

 

 

 

 

 

 

 

0,704836861

-0,08985

0,755548

Да

 

 

g(x) := asin

(

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a := 0.4

n := 10

 

b := 1

h :=

(b - a)

= 0.06

n

 

 

 

i := 0 n

xi := a + h i

 

 

 

 

f (xi) =

 

 

0

 

 

0

0.4

 

-0.794

 

1

0.46

 

-0.703

 

2

0.52

 

-0.59

 

3

0.58

 

-0.454

x =

4

0.64

 

-0.292

 

5

0.7

 

-0.106

 

6

0.76

 

0.105

 

7

0.82

 

0.339

 

8

0.88

 

0.594

 

9

0.94

 

0.864

 

10

1

 

1.143

 

 

 

 

 

f (x) := 2 x sin(x x) - cos(x)

 

 

1.5

 

 

 

1

 

 

 

f (xi) 0.5

 

 

 

0.4

0.6

0.8

1

- 0.5

 

 

 

- 1

 

 

 

 

xi

 

 

a := x5 = 0.7

b:= x6 = 0.76

Ме т о д ы у т о ч н е н и я к о р н я

Ме т о д п о л о в и н н о г о д е л е н и я

 

 

 

M1 :=

eps 0.0001

= 0.731

 

x

(a + b )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

while

 

f (x)

 

eps

 

 

 

 

 

 

 

b x

if

(f (a) f (x))

0

 

 

 

 

a x

if

(f (a) f (x))

0

 

 

x

(a + b )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M1 = 0.731

 

 

f (M1) = 6.284 10- 5

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

п е р в а я п р о и з в о д н а я

 

 

 

f1(x) := d f (x)

2 sin(x2) + sin(x) +

4 x2 cos(x2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dx

 

 

 

в т о р а я п р о и з в о д н а я

 

 

 

f2(x) := d f1(x)

cos(x) + 12 x cos(x2) - 8 x3 sin(x2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dx

 

 

 

M2 :=

eps 0.000001

 

 

 

 

 

 

 

= 0.731

 

 

 

 

 

x a

 

if

(f (a) f2(a))

0

 

 

 

 

 

 

 

 

x b

 

if

 

(f (a) f2(a))

0

 

 

 

 

 

 

 

 

while

 

f (x)

eps

 

 

 

 

 

 

 

 

 

 

 

 

x x -

f (x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f1(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M2 = 0.731

 

 

f (M2) = 9.093 10- 13

 

 

 

 

 

М е т о д х о р д

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M3 :=

eps 0.000001

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x a -

 

 

(b

- a)

 

 

f (a)

 

 

 

 

 

 

 

 

f (b )

- f (a)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

while

f (x)

eps

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

x

if f (a) f (x)

0

 

 

 

 

 

 

 

 

a x

otherwise

 

 

 

 

 

 

 

 

 

 

 

 

x a -

 

(b

- a)

 

f (a)

 

 

 

 

 

 

f (b )

- f (a)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M3 = 0.731

 

f (M3) = -5.65 10- 8

 

 

 

 

 

 

 

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

 

 

 

 

 

g(x) :=

asin

cos(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c os(x) + sin(x)

 

 

 

 

 

g1(x) := d g(x) -

 

 

 

 

2 x2

 

 

2 x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dx

 

 

 

 

 

2

asin

c os(x)

 

1 -

c os(x)2

 

 

 

 

 

 

 

 

 

 

 

 

 

2 x

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4 x

 

 

 

 

g1(a) = -0.974

 

 

 

П р о в е р к а с х о д и м о с т и п р о й д е н а

 

 

 

 

 

 

 

 

 

 

 

g1(b) = -0.872

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t := a a + 0.001 b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.78

 

 

 

M4 :=

x a

 

 

 

 

 

 

 

 

= 0.705

 

 

 

 

 

 

eps

0.1

 

 

 

 

 

 

 

 

 

 

 

0.76

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

while

 

f (x)

eps

 

 

 

 

 

 

 

 

 

 

 

 

x g(x)

 

 

 

 

 

 

 

 

 

 

g(t)

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

0.74

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M4 = 0.705

 

f (M4) = -0.09

 

 

 

 

 

 

0.72

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.7

0.72

0.74

0.76

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

Соседние файлы в папке Информатика 2 семестр МОРОЗОВСКАЯ