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

Практикум

.pdf
Скачиваний:
57
Добавлен:
28.01.2022
Размер:
1.52 Mб
Скачать

3.Погрешность численного решения нелинейных уравнений

Погрешность результата, вычисленного методом итерации, можно

оценить с помощью выражения (q= max

(x)

=0.188):

q

 

 

x

x

2

 

 

 

1 q

 

 

3

 

 

 

 

 

 

0.188

0.014

0.812

 

0.0032

 

 

 

 

 

 

 

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

 

 

 

 

 

1. Исследование задания

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из условия

для уравнения 1- 3х

 

+ cos(x) = 0, где

f(1) f (x) 0

выберем начальное приближение к корню:

x0

Для получения

решения уравнения методом Ньютона

следующей рекуррентной формулой:

x

 

x

 

 

f(x

)

.

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

n

 

f '(x

 

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

В нашем случае

x

 

x

 

 

1 3x

n

cos x

n

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

n

 

3 sin x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f(0) f (x) 0

, а

1.

 

воспользуемся

2.Расчет трех итераций

Всценарии пакета Scilab создать функцию, реализующую метод итераций, предусмотрев вывод данных, требуемый для заполнения следующей таблицы.

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

function ff=f(x) //левая часть уравнения ff=1-3*x+cos(x);

endfunction

function ff=f1(x) //первая производная от f(x) ff=-3-sin(x);

endfunction

 

// Расчет

3-х итераций по методу итераций

disp(' n

x

f(x)')

n=0; x=0;

fx=f(x); z=[n,x,fx];

z

 

 

for n=1:3

 

 

x=x-f(x)/f1(x); fx=f(x); z=[n,x,fx]

end

--> x=0;

--> exec('nuton.sce',0); n x f(x)

z=

0.0. 2.

z =

1.

0.66667

-0.21411

z =

 

 

2.

0.60749

-0.0014

z=

3.0.6071 -6.3D-08

11

f(xn )

k

Xk

f(xk)

0

0

2

1

0.62001

-0.21411

2

0.60712

-0. 0014

3

0.60710

-6.3 •10-8

3. Погрешность численного решения нелинейных уравнений

Оценим погрешность после трех итераций по формуле:

f (x

)

 

6.310

8

8

 

 

3

 

 

 

2.110

m

 

3

 

 

 

 

 

1

 

 

 

 

 

, где

m1 min f (x) 3.

Метод хорд

1.Исследование задания

Проверка выполнения условий сходимости. Для сходимости метода

необходимо знакопостоянство

f (x)

на отрезке [a;b].

Выбор начального приближения. Вид рекуррентной формулы зависит от того, какая из точек a или b является неподвижной. Неподвижен тот конец отрезка [a;b] , для которого знак функции f(x)совпадает со знаком ее второй производной. Тогда второй конец отрезка можно принять за начальное приближение к корню, то есть точку х0.

Рекуррентная формула метода хорд в [1]:

x

 

x

 

 

f(x

n

)

 

 

(x x ),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

n

 

f(x) f(x

 

)

n

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

где

x

- неподвижная точка.

Выше было показано, что для функции f(x)=1–3x+cosx

f (x)

<0

на

отрезке [0;1]неподвижной точкой является точка x=b=1, так как

 

f (x)

f(1)>0.

Таким образом, полагая x0=a=0, получим сходящуюся последовательность приближений к корню.

В рассматриваемой задаче рекуррентная формула принимает следующий вид

xn 1 xn f(1) f(xn ) (1 xn ).

2. Расчет трех итераций

Для получения решения уравнения методом хорд воспользуемся следующей рекуррентной формулой:

x

 

x

 

 

f(x

k

)

 

 

(1 x

 

).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k 1

 

k

 

f(1)

f(x

 

)

 

k

 

 

 

 

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В сценарии пакета Scilab создать функцию, реализующую метод итераций, предусмотрев вывод данных, требуемый для заполнения следующей таблицы.

12

// Метод хорд

function ff=f(x) //Левая часть уравнения ff=1-3*x+cos(x);

endfunction

 

// Расчет

3-х итераций по методу итераций

disp(' n

x

f(x)')

n=0; x=0;

fx=f(x); z=[n,x,fx];

z

 

 

for n=1:3

 

 

x=x-f(x)/(f(xx)-f(x))*(xx-x); fx=f(x); z=[n,x,fx]

end

 

 

 

--> xx=1;

 

 

-->

exec('xord.sce',0);

 

n

x

f(x)

z=

0.0. 2.

z =

1.

0.57809

0.10325

z =

 

 

2.

0.60596

0.00408

z=

3.0.60706 0.00016

n

Xn

f(xn)

0

0

2

1

0.5781

0.10325

2

0.6441

0.00408

3

0.6070

0.00016

3.Погрешность численного решения нелинейных уравнений

Оценим погрешность после трех итераций по формуле:

f (x3 ) 1.6 10 4 0.533 10 4 m1 3

m

 

f (0)

 

3,

 

 

1

 

 

 

 

4.Решение нелинейного уравнения с использованием функции пакета Scilab fsolve

--> deff('y=f(x)','y=1-3*x+cos(x)'); --> [x,fx]=fsolve(0,f)

fx = 1.110D-16

x = 0.6071016

13

Контрольные вопросы по теме «Методы решения нелинейных уравнений»

1. Что является корнем нелинейного уравнения f(x)=0?

2.Чему равна функция в точке корня?

3.Каково условие существования на отрезке [a;b] хотя бы одного корня?

4.При каких условиях корень x будет единственным на отрезке [a;b]?

5.Из каких этапов состоит процесс решения нелинейного уравнения?

6.В чем заключается этап «отделения корней» нелинейного уравнения?

7.Какие методы используются на этапе отделения корней?

8.Что необходимо, чтобы выбрать x0 в качестве начального приближения в методе Ньютона?

9.Какой метод решения нелинейного уравнения требует более близкого к корню начального значения?

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

11.Можно ли уточнить корень уравнения графическим методом?

12.Что является первым приближением к корню, отделенному на отрезке [a;b], при решении нелинейного уравнения методом половинного деления?

13.Каково правило выбора итерирующей функции при использовании метода итераций?

14.Что принимается за начальное приближение в методе итерации?

15.Каково правило выбора неподвижной точки при использовании метода хорд?

16.Какое значение выбирается в качестве начального приближения в методе хорд?

17.Для каких функций не рекомендуется применять метод Ньютона?

18.Можно ли применять метод итераций, если на заданном отрезке имеются два корня?

19.Какой метод решения нелинейного уравнения обладает свойством «самокоррекции»?

20.Что относится к способам улучшения сходимости метода простой итерации?

14

Лабораторная работа №2 по теме «Интерполяция функций»

2.1.Вопросы, подлежащие изучению

1.Постановка задачи аппроксимации и интерполяции. Интерполяция в точке. Погрешность интерполяции.

2.Основные понятия: интерполирующая и интерполируемая функции, условие интерполяции. Связь между числом узлов интерполяции и порядком интерполирующего многочлена.

3.Интерполяционный многочлен Лагранжа: назначение, область применения.

4.Интерполяционная формула Ньютона, область применения.

5.Конечные разности, их назначение и использование. Свойства конечных разностей

6.Методика выбора узлов интерполяции при использовании формул Лагранжа и Ньютона.

7.Способы оценки погрешностей интерполяции по формулам Лагранжа и Ньютона. Способы повышения точности интерполяции.

2.2.Задание

1.Выбрать из таблицы 2–1 индивидуальное задание для интерполяции:

точку интерполяции x=a для интерполяции многочленом Ньютона;

точку интерполяции x=b для интерполяции многочленом Лагранжа;

2.Для интерполяции в точке x=a выбрать из таблицы 2–2 с

интерполируемой функцией 4 подходящих узла для построения

многочленов 1, 2 и 3-ей степени.

3.Перенумеровать узлы интерполяции для каждого из методов интерполяции. Занести перенумерованные узлы в таблицы вида 2–3.

4.Выполнить вручную интерполяцию по заданной формуле в заданной точке x=a или x=b многочленами 1–й, 2–й и 3–й степени:

заполнить таблицу конечных разностей (для интерполяционной формулы Ньютона);

записать интерполяционные формулы для 1, 2 и 3-ей степени многочлена;

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

занести полученные результаты в таблицу вида 2–4; для многочленов 1–й и 2–й степени вычислить и занести в таблицы 2-4

15

и 2-5 оценки погрешности интерполяции: модули разности между текущим Pk(x) (Lk(x)) и следующим Pk+1(x) (Lk+1(x)) значением многочлена.

5.Решить задачу интерполяции в точке с точностью 0.0001 на компьютере.

6.Объяснить полученные результаты и сделать выводы.

2.3. Варианты задания для ручного расчета и таблица интерполируемой функции

 

 

 

 

 

 

 

 

Таблица 2–1

 

 

 

 

 

Интерполяционный многочлен

 

 

 

Ньютона

 

Лагранжа

 

вар.

 

 

 

x=a

 

 

x=b

 

1

 

0.06

 

ручной расчет

0.43

 

на компьютере

 

2

 

0.11

 

на компьютере

0.72

 

ручной расчет

 

3

 

0.16

 

ручной расчет

1.17

 

на компьютере

 

4

 

0.21

 

на компьютере

0.58

 

ручной расчет

 

5

 

0.31

 

ручной расчет

0.12

 

на компьютере

 

6

 

0.36

 

на компьютере

1.21

 

ручной расчет

 

7

 

0.41

 

ручной расчет

1.46

 

на компьютере

 

8

 

0.46

 

на компьютере

0.87

 

ручной расчет

 

9

 

0.51

 

ручной расчет

0.48

 

на компьютере

 

10

 

0.61

 

на компьютере

1.37

 

ручной расчет

 

11

 

0.07

 

ручной расчет

0.51

 

на компьютере

 

12

 

0.12

 

на компьютере

0.96

 

ручной расчет

 

13

 

0.17

 

ручной расчет

0.64

 

на компьютере

 

14

 

0.22

 

на компьютере

1.49

 

ручной расчет

 

15

 

0.32

 

ручной расчет

0.77

 

на компьютере

 

16

 

0.37

 

на компьютере

0.17

 

ручной расчет

 

17

 

0.42

 

ручной расчет

1.02

 

на компьютере

 

18

 

0.52

 

на компьютере

0.34

 

ручной расчет

 

19

 

0.62

 

ручной расчет

1.41

 

на компьютере

 

20

 

0.08

 

на компьютере

0.23

 

ручной расчет

 

21

 

0.13

 

ручной расчет

0.67

 

на компьютере

 

22

 

0.17

 

на компьютере

1.29

 

ручной расчет

 

23

 

0.23

 

ручной расчет

0.81

 

на компьютере

 

24

 

0.32

 

на компьютере

1.26

 

ручной расчет

 

25

 

0.42

 

ручной расчет

1.12

 

на компьютере

 

26

 

0.47

 

на компьютере

0.93

 

ручной расчет

 

27

 

0.53

 

ручной расчет

0.37

 

на компьютере

 

28

 

0.63

 

на компьютере

0.26

 

ручной расчет

 

29

 

0.09

 

ручной расчет

1.07

 

на компьютере

 

30

 

0.14

 

на компьютере

1.33

 

ручной расчет

16

 

 

Таблица 2–2

Значение аргумента xi

Значение функции yi

 

узла

 

 

 

0

0.05

-4.1710

 

1

0.10

-4.1330

 

2

0.15

-4.0845

 

3

0.20

-4.0240

 

4

0.25

-3.9500

 

5

0.30

-3.8610

 

6

0.35

-3.7555

 

7

0.40

-3.6320

 

8

0.45

-3.4890

 

9

0.50

-3.3250

 

10

0.55

-3.1385

 

11

0.60

-2.9280

 

12

0.65

-2.6920

 

13

0.70

-2.4290

 

14

0.75

-2.1375

 

15

0.80

-1.8160

 

16

0.85

-1.4630

 

17

0.90

-1.0770

 

18

0.95

-0.6565

 

19

1.00

-0.2000

 

20

1.05

0.2940

 

21

1.10

0.8270

 

22

1.15

1.4005

 

23

1.20

2.0160

 

24

1.25

2.6750

 

25

1.30

3.3790

 

26

1.35

4.1295

 

27

1.40

4.9280

 

28

1.45

5.7760

 

29

1.50

6.6750

 

30

1.55

7.6265

 

2.4. Формы таблиц для занесения результатов

 

 

 

 

 

Таблица 2–3

k

0

1

2

 

n

xk

x0

x1

x2

 

xn

yk

y0

y1

y2

 

yn

 

 

Таблица 2–4

 

(для многочлена Ньютона)

Степень многочлена k

Pk(x)

Погрешность

 

1

P1(x)

|P1(x) – P2(x)|

 

2

P2(x)

|P2(x) – P3(x)|

 

3

P3(x)

 

17

 

 

Таблица 2-5

 

(для многочлена Лагранжа)

Степень многочлена k

Lk(x)

 

Погрешность

 

1

L1(x)

 

|L1(x) – L2(x)|

 

2

L2(x)

 

|L2(x) – L3(x)|

 

3

L3(x)

 

 

2.5. Содержание отчета

1.Фамилия и имя студента, номер группы.

2.Название и цель лабораторной работы.

3.Индивидуальный вариант задания к работе.

4.Таблицы 2–3 с перенумерованными узлами интерполяции.

5.Интерполяционные формулы для ручных расчетов и результаты расчетов в таблицах 2–4 и 2-5.

6.Схема алгоритма и программа.

7.Выводы.

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

1. Точка интерполяции для формулы Ньютона a = 0.12.

Выбор и нумерация узлов.

Для ручной интерполяции в точке x = a = 0.12 по 1 формуле Ньютона выбираем 4 узла из таблицы 2–2 так, чтобы точка a = 0.12 оказалась между узлами с номерами с 1 по 2 и добавляем узлы вправо:

Номера выбранных

xk

yk

узлов (k)

 

 

1

0.10

-4.1330

2

0.15

-4.0845

3

0.20

-4.0240

4

0.25

-3.9500

Выбор точек определяется тем, чтобы при решении задачи интерполяции в точке по 1 формуле Ньютона, с заданной точностью,

добавлять узлы вправо относительно точки x=a.

Изменим нумерацию узлом интерполяции для использования их в интерполяционных формулах и занесем в таблицы вида 2–3.

k

0

1

2

3

xk

0.10

0.15

0.20

0.25

yk

-4.1330

-4.0845

-4.0240

-3.9500

18

Ручной расчет по 1–й формуле Ньютона.

Заполним таблицу конечных разностей:

x

y

y

2y

3y

0.10

-4.1330

0.0485

0.0120

0.0015

0.15

-4.0845

0.0605

0.0135

 

0.20

-4.0240

0.0740

 

 

0.25

-3.9500

 

 

 

Запишем 1–ю интерполяционную формулу Ньютона

Pn(x) Pn(x0 hq) y0 y0q 2y0 q(q 1) ... ny0 q(q 1)...(q n 1). 2! n!

для многочленов 1–й, 2–й и 3–й степени и выполним расчеты по ним. Определим значение q:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q

a x

0

 

0.12 0.10

0.4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h

 

 

 

 

 

 

 

0.05

 

 

 

 

 

 

 

 

 

 

 

 

Значение многочлена 1-й степени в т. x=0.12:

 

 

 

 

 

 

 

 

 

 

 

 

 

P (x) y

 

y q 4.1330 0.0485 0.4 4.1136

 

 

 

 

 

 

 

 

1

 

 

 

 

0

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Значение многочлена 2-й степени в т. x=0.12:

 

 

 

 

 

 

 

 

 

 

 

 

P (x) y

 

 

y

 

 

 

2

 

 

q(q 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

q y

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.1330 0.0485 0.4 0.012

0.4(0.4 1)

4.1150

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Значение многочлена 3-й степени в т. x=0.12:

 

 

 

 

 

 

 

 

P (x) y

 

y

 

 

 

 

2

 

 

q(q 1)

 

 

3

 

 

q(q 1)(q 2)

4.1330 0.0485 0.4

0

0

q y

0

 

 

 

 

y

0

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.012

0.4(0.4 1)

0.0015

0.4(0.4 1)(0.4 2)

4.1149

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Важно: Выражения для многочленов 1, 2 и 3 степени могут быть

получены после соответствующих преобразований формулы:

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

P (x) y

 

 

 

 

(x x

)

2

 

 

(x x

)(x x ) ...

n

 

 

(x x

)...(x x

 

).

 

 

 

0

 

 

0

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

0

 

 

 

1!h

 

 

 

0

 

 

 

 

2

 

 

 

 

 

0

 

 

1

 

 

 

n

 

0

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2!h

 

 

 

 

 

 

 

 

 

 

 

 

n!h

 

 

 

 

 

 

В нашем случае они будут иметь вид:

P1 4.2300002 0.9700013 x;

P2 4.1940017 0.3700235 x 2.3999234 x2 ;

P3 4.2045114 0.5932161 x 0.8987173 x2 3.202404 x3.

Те же коэффициенты получены и в п.2.8.

19

Занесем результаты в таблицу и вычислим оценки погрешности полученных значений для многочленов 1–й и 2–й степени:

Степень многочлена k

Pk(x)

Погрешность

1

–4.1136

0.0014

2

–4.1150

0.0001

3

–4.1149

Вывод. Получены выражения для интерполяционных многочленов 1, 2 и 3-ей степени и их значения в т. а. Оценку погрешности проведѐм в соответствии с неравенством:

f (x) L

(x) L

n 1

(x) L

(x)

n

 

n

 

Можно утверждать, что разность между точным значением функции и значением функции в т. x=0.12 после 3-х итераций не превышает 0.0001.

2. Точка интерполяции для формулы Лагранжа b = 0.52.

Выбор и перенумерация узлов.

Для ручной интерполяции в точке x = b = 0.52 по формуле Лагранжа выбираем из таблицы 3–2 4 узла так, чтобы точка b = 0.52 оказалась в центре отрезка интерполяции: узлы с номерами с 8 по 11:

8

0.45

-3.4890

9

0.50

-3.3250

10

0.55

-3.1385

11

0.60

-2.9280

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

заданной точностью добавлять узлы симметрично относительно точки x.

Перенумеруем узлы интерполяции симметрично относительно точки x=b для использования их в интерполяционных формулах и занесем в таблицы вида 2–3:

k

0

1

2

3

xk

0.50

0.55

0.45

0.60

yk

-3.3250

-3.1385

-3.4890

-2.9280

Ручной расчет по формуле Лагранжа.

Запишем интерполяционные многочлены Лагранжа 1–й, 2–й и 3–й степени и вычислим их значения в точке x = b = 0.52:

20

Соседние файлы в предмете Численные методы