- •Лабораторная работа 3.2. Вычисление обратной матрицы и определителя методом Гаусса
- •Лабораторная работа 3.3. Решение систем линейных алгебраических уравнений итерационными методами
- •Часть 1. Решение слау методом простой итерации.
- •Часть 2. Решение слау методом Зейделя.
- •Часть 1. Решение слау методом простой итерации.
- •Часть 2. Решение слау методом Зейделя.
- •Лабораторная работа 3.4. Вычисление собственных значений и собственных векторов симметричной матрицы
- •Лабораторная работа 3.5. Численное интегрирование
- •Лабораторная работа 3.6. Вычисление корня нелинейного уравнения
- •Лабораторная работа 3.7. Построение прямой по методу наименьших квадратов
Лабораторная работа 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.