Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Методом:
1) дихотомии,
2) хорд,
3) касательных,
4) комбинированным,
5) итераций
вычислить с точностью 10-3 действительные корни алгебраического уравнения
x4 18*x2 + 6 = 0
2. ЧИСЛЕННОЕ РЕШЕНИЕ
Этап 1. Отделение корней.
x4 18*x2 + 6 = 0
Рассмотрим функцию
f(x) = x4 18*x2 + 6 = 0;
Эта функция определена, непрерывна и дифференцируема на всей числовой прямой
f(x)=4x3-36x=0;
4x(x2-9)=0;
x1=0;x2=3;x3=-3.
Распределение знаков функции видно из таблицы:
x |
- |
-3 |
0 |
3 |
|
sign f(x) |
1 + |
2 - |
3 + |
4 - |
+ |
Вывод: т.к. функция f(x) имеет 4 перемены знака, то уравнение f(x)=0 имеет 4 действительных корня.
Определение точек перегиба:
f(x)=12x2-36=0, x2-3=0,
x1≈1,732; x2≈-1,732;
Итак, определив знаки функции f(x) = x4 18*x2 + 6 = 0 в ряде точек, получаем уточненный вариант таблицы знаков с конкретизацией границ:
x |
-4.3 |
-3 |
-1,732 |
0 |
1,732 |
3 |
4.3 |
sign f(x) |
1 + |
- |
2 - |
3 + |
- |
4 - |
+ |
Вывод:
1[-4.3;-3];
2[-1.732;0];
3[0;1.732];
4[3;4.3];
Этап 2. Уточнение корней.
Процесс уточнения корней осуществляется различными методами. Рассмотрим, например, уточнение корня 2[-1.732;0], алгебраического уравнения
x4 18*x2 + 6 = 0;
Метод Дихотомии (половинного деления).
Запишем весь этап уточнения корня 2[-1.732;0]в виде таблицы:
Итерационный процесс уточнения корня методом дихотомии:
n |
a |
b |
xср |
f(a) |
f(xср) |
точность |
0 |
-1,7 |
0 |
-0,85 |
-37,6679 |
-6,48299 |
1,7 |
1 |
-0,85 |
0 |
-0,425 |
-6,48299 |
2,781375 |
0,85 |
2 |
-0,85 |
-0,425 |
-0,6375 |
-6,48299 |
-1,15015 |
0,425 |
3 |
-0,6375 |
-0,425 |
-0,53125 |
-1,15015 |
0,999574 |
0,2125 |
4 |
-0,6375 |
-0,53125 |
-0,58438 |
-1,15015 |
-0,03028 |
0,10625 |
5 |
-0,58438 |
-0,53125 |
-0,55781 |
-0,03028 |
0,496031 |
0,053125 |
6 |
-0,58438 |
-0,55781 |
-0,5711 |
-0,03038 |
0,235658 |
0,026568 |
7 |
-0,58438 |
-0,5711 |
-0,57774 |
-0,03038 |
0,103346 |
0,013284 |
8 |
-0,58438 |
-0,57774 |
-0,58106 |
-0,03038 |
0,03666 |
0,006642 |
9 |
-0,58438 |
-0,58106 |
-0,58272 |
-0,03038 |
0,003185 |
0,003321 |
10 |
-0,58438 |
-0,58272 |
-0,58355 |
-0,03038 |
-0,01359 |
0,00166 |
11 |
-0,58355 |
-0,58272 |
-0,58313 |
-0,01359 |
-0,0052 |
0,00083 |
|a11-b11|=|-0,58355-(-0,58272)|= 0,00083< 0,001=
2 -0,583
Метод Хорд (пропорциональных частей).
f(x) = x4 18*x2 + 6,
f(x)= 12x2-36.
Выбор начального приближения: в качестве x0 выбирается тот конец a,b , для которого
.
В данном случае х0=b=0, так как f(b)f(b)<0
Тогда получаем, что
a=-1.7, f(a)=-37.6679;
Запишем весь этап уточнения корня 2[-1.7;0] в виде таблицы:
n |
xn |
точность |
|
0 |
0 |
-0,233581189 |
0,233581 |
1 |
-0,23358 |
-0,406055798 |
0,172475 |
2 |
-0,40606 |
-0,503253497 |
0,097198 |
3 |
-0,50325 |
-0,549243234 |
0,04599 |
4 |
-0,54924 |
-0,569087909 |
0,019845 |
5 |
-0,56909 |
-0,577295912 |
0,008208 |
6 |
-0,5773 |
-0,580630109 |
0,003334 |
7 |
-0,58063 |
-0,581974477 |
0,001344 |
8 |
-0,58197 |
-0,582514904 |
0,00054 |
9 |
-0,58251 |
-0,582731888 |
0,000217 |
|x9 x9|=|-0.58251-(-0,582731888)|= 0,000217<0,001=
2 -0,583
Метод Касательных (Ньютона).
f(x) = x4 18*x2 + 6,
f(x)= 12x2-36.
Выбор начального приближения: в качестве x0 выбирается тот конец [a,b] , для которого:
.
В данном случае x0=a=-1.7 так как именно в этом случае
Тогда
Запишем весь этап уточнения корня 2[-1.7;0] в виде таблицы:
Итерационный процесс уточнения корня методом Ньютона
n |
xn |
точность |
|
0 |
-1,7 |
-0,79339 |
0,906612 |
1 |
-0,79339 |
-0,60765 |
0,185743 |
2 |
-0,60765 |
-0,58334 |
0,024305 |
3 |
-0,58334 |
-0,58288 |
0,000463 |
x3 x2=|-0,58334-(-0,58288)|= 0,000463 < 0,001=
2 -0,583
Упрощенный метод касательных (Ньютона)
f(x) = x4 18*x2 + 6,
f(x)=4x3-36x,
f(x)= 12x2-36.
Выбор начального приближения: в качестве x0 выбирается тот конец [a,b] , для которого:
В данном случае x0=a=-1.7 так как именно в этом случае
Тогда
Запишем весь этап уточнения корня 2[-1.7;0] в виде таблицы:
Итерационный процесс уточнения корня упрощенным методом Ньютона
n |
xn |
x(n+1) |
точность |
0 |
-1,7 |
-0,79339 |
0,906612 |
1 |
-0,79339 |
-0,67463 |
0,118758 |
2 |
-0,67463 |
-0,62685 |
0,047779 |
3 |
-0,62685 |
-0,60474 |
0,022108 |
4 |
-0,60474 |
-0,59393 |
0,010809 |
5 |
-0,59393 |
-0,58851 |
0,00542 |
6 |
-0,58851 |
-0,58576 |
0,002751 |
7 |
-0,58576 |
-0,58436 |
0,001405 |
8 |
-0,58436 |
-0,58364 |
0,00072 |
x8 x9=|-0,58436-(-0,58364)|= 0,00072< 0,001=
2 -0,583
Комбинированный метод (Хорд и Касательных).
Метод хорд и метод касательных дают приближения к корню с разных сторон.
Совместное использование методов позволяет на каждой итерации находить приближенные значения с недостатком и с избытком, что ускоряет процесс сходимости.
Комбинированный метод даёт приближения к корню, как с правой, так и с левой стороны.
f(x) = x4 18*x2 + 6,
,
Итерационный процесс уточнения корня комбинированным методом
n |
xn |
точность |
||
0 |
-1,7 0 |
-0,79339 |
-0,23358 |
1,7 |
1 |
-0,79339 -0,23358 |
-0,60765 |
-0,51592 |
0,559807181 |
2 |
-0,60765 -0,51592 |
-0,58334 |
-0,58151 |
0,091721311 |
3 |
-0,58334 -0,58151 |
-0,58288 |
-0,58288 |
0,001828056 |
4 |
-0,58288 -0,58288 |
-0,58288 |
-0,58288 |
6,69826E-07 |
4 - x 4=|-0,58288-(-0,58288)|=0<0,001=
2 -0,583
Метод Итераций
Предварительно необходимо преобразовать уравнение f(x) = 0 к виду x = (x).
В качестве начального приближения x0 выбирается любая точка интервала [a,b].
f(x) = x4 18*x2 + 6,
2[-1.732;0]
Преобразуем исходное уравнение к виду:
x= -( x4 18*x2 + 6)= - x4 + 18*x2 6
Докажем, что оно удовлетворяет достаточному условию сходимости итерационного процесса:
(x)= x-1/42*(x4 18*x2 +6)
| |=(x-1/42*(x4 18*x2 +6|1, при -1.7x< 0
Условие сходимости выполнено.
Процесс уточнения корня методом итераций.
n |
xn |
f(xn) |
точность |
0 |
-1,7 |
-0,80315 |
0,896855 |
1 |
-0,80315 |
-0,67946 |
0,123683 |
2 |
-0,67946 |
-0,62954 |
0,049926 |
3 |
-0,62954 |
-0,60628 |
0,023253 |
4 |
-0,60628 |
-0,59482 |
0,01146 |
5 |
-0,59482 |
-0,58903 |
0,005797 |
6 |
-0,58903 |
-0,58606 |
0,00297 |
7 |
-0,58606 |
-0,58452 |
0,001532 |
8 |
-0,58452 |
-0,58373 |
0,000793 |
|x9-x8|=|-0,58452-(-0,58373)|= 0,000793<0.001=
2 -0,583
4. Использование MathCad для решения уравнения
f(x) = x4 18*x2 + 6
5. Результаты выполнения работы.
Основные выводы
В ходе выполнения данной лабораторной работы было решено данное алгебраическое уравнение 4-й степени при помощи различных численных методов. При проведении непосредственных расчетов и программной реализации отдельных методов решения были выделены их основные достоинства и недостатки. Так, например, метод дихотомии достаточно прост в алгоритмизации и программировании; кроме того, на саму функцию f(x) не накладывается никаких ограничений, кроме условия непрерывности на интервале изоляции корня. Однако данный метод медленно сходится, т.е. необходимо использовать большое число итераций для схождения заданной точности.
Так же в работе было показано использование математического пакета MathCad при решении данной задачи. Причем такое решение в данной среде может происходить при помощи встроенных функций, так и при помощи программной реализации численных алгоритмов.
Все рассмотренные методы решения позволяли находить решения уравнения с наперед заданной точностью с различным число шагов итераций.
-
Приложение 1
Текст программы
program combine;
type
Tmas = array[0..5] of real;
var
mas: Tmas;
a,b,e: real;
x_new1,x_new,x_old,x_old1:real;
procedure input(var mas: Tmas; var a,b,e: real);
begin
writeln('Введите коэффициенты многочлена:');
for var i:=0 to 5 do
read(mas[i]);
write('Введите границы интервала изоляции: ');
read(a);read(b);
write('Введите точность вычисления: '); read(e);
end;
function f_x(a: Tmas; x: real):real;
begin
f_x := power(x, 5) * a[0] + power(x, 4) * a[1] + power(x, 3) * a[2] + power(x, 2) * a[3] + x * a[4] + a[5];
end;
function ff_x(a:Tmas; x:real):real;
begin
ff_x:=5*power(x,4)*a[0]+4*power(x,3)*a[1]+3*a[2]*x*x+2*a[3]*x+a[4];
end;
function fff_x(a:Tmas; x:real):real;
begin
fff_x:=20*a[0]*power(x,3)+12*a[1]*x*x+6*a[2]*x+2*a[3];
end;
begin
input(mas,a,b,e);
if (f_x(mas,a)*fff_x(mas,a)>0) and (f_x(mas,b)*fff_x(mas,b)<0) then
begin
x_new:=b;
x_new1:=a;
repeat
x_old:=x_new;
x_old1:=x_new1;
x_new:=x_old-f_x(mas,x_old)*(x_old-a)/(f_x(mas,x_old)-f_x(mas,a));
x_new1:=x_old1-f_x(mas,x_old1)/ff_x(mas,x_old1);
until abs(x_new-x_new1)<e;
writeln('Искомый корень=',x_new:1:3);
end
else if ((f_x(mas,a)*fff_x(mas,a)<0) and (f_x(mas,b)*fff_x(mas,b)>0)) then
begin
x_new:=a;
x_new1:=b;
repeat
x_old:=x_new;
x_old1:=x_new1;
x_new:=x_old-f_x(mas,x_old)*(b-x_old)/(f_x(mas,b)-f_x(mas,x_old));
x_new1:=x_old1-f_x(mas,x_old1)/ff_x(mas,x_old1);
until abs(x_new-x_new1)<e;
writeln('Искомый корень=',x_new:1:3);
end;
end.
Пример работы программы: