Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум к Главе 3 - s5.doc
Скачиваний:
4
Добавлен:
19.11.2019
Размер:
608.26 Кб
Скачать

Лабораторная работа 3.6. Вычисление корня нелинейного уравнения

Задание.

Задан полином третьей степени .

1. Требуется вычислить корень полинома на отрезке методом половинного деления и методом Ньютона вручную. В критериях окончания счета для обоих методов принять .

2. Требуется вычислить корень полинома на отрезке на ЭВМ методом половинного деления или методом Ньютона (по указанию преподавателя). В критериях окончания счета на ЭВМ для обоих методов принять .

Варианты задания.

,

где ;

– номер группы; – номер студента по журналу.

Пример выполнения лабораторной работы.

Найти на отрезке корни полинома

.

Ручной счет.

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

Расчет сведен в табличную форму (см. таблицу Л3.6.1).

Таблица Л3.6.1. Вычисление корня методом половинного деления.

0

0

3.0

1.5

–2.92

9.79

0.5

3.0

1

0

1.5

0.75

–2.92

0.51

–0.67

1.5

2

0.75

1.5

1.125

–0.67

0.51

–0.11

0.75

3

1.125

1.5

1.3125

–0.11

0.51

0.173

0.375

4

1.125

1.3125

1.218

–0.11

0.173

0.0267,

что меньше

=0.1

0.187

0.06(b-a)

На основании результатов таблицы Л3.5.1 имеем: .

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

Имеем:

; .

Начальное приближение: .

Расчет сведен в табличную форму (см. таблицу Л3.6.2).

На основании результатов таблицы Л3.6.2 имеем: .

Таблица Л3.6.2. Вычисление корня методом половинного деления.

0

3.0

9.79

12.64

2.22

0.78

1

2.22

3.01

5.45

1.67

0.55

2

1.67

0.89

2.52

1.32

0.35

3

1.32

0.18

1.62

1.20

0.12

4

1.20

0

критерий окончания расчета

Выполнение работы на ЭВМ.

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

Пример программы на Фортране:

program lab_3_6_1

real(4) :: x,f,a,b,eps,c,y

integer(4) :: k

f(x)=x**3-3.2*x**2+4.84*x-2.928

print *,’ Vvedite a,b,eps’

read *,a,b,eps

k=0

1 k=k+1

c=(a+b)/2; y=f(c)

if(f(a)*y>0) then

a=c

else

b=c

end if

if(b-a>eps.and.y/=0.and.k<100) goto 1

print 2,c,y,k

2 format(//2x,’Koren uravneniya x=’,f8.4,/2x,’f(x)=’,e11.4,&

/2x,’Kolichestvo iteratsiy k=’,i3)

end

Результаты расчета:

Koren uravneniya x= 1.2000

f(x)= 0.6504E-03

Kolichestvo iteratsiy k= 12

Заметим, что при расчете было принято a=0, b=3, eps=0.001.

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

Пример программы на Фортране:

program lab_3_6_2

real(4) :: x,f,f1,xk,eps,xk1,y

integer(4) :: k

f(x)=x**3-3.2*x**2+4.84*x-2.928

f1(x)=3*x**2-6.4*x+4.84

print *,’ Vvedite xk,eps’

read *, xk,eps

k=0

1 k=k+1

xk1=xk-f(xk)/f1(xk)

if(abs(xk1-xk)<eps.or.k>100) goto 2

xk=xk1

goto 1

2 y=f(xk1)

print 3,xk1,y,k

3 format(//2x,’Koren uravneniya x=’,f8.4,/2x,’f(x)=’,e11.4,&

/2x,’ Kolichestvo iteratsiy k=’,i3)

end

Результаты расчета:

Koren uravneniya x= 1.2000

f(x)= 0.4768E-06

Kolichestvo iteratsiy k= 3

Заметим, что при расчете было принято xk=1.5, eps=0.001.