Зауваження 2. Припускатимемо, що розглядуваний многочлена не має кратних коренів, оскільки завжди можна відокремити кратні множники.
Правило Декарта. Число додатних коренів многочлена з дійсними коефіцієнтами
дорівнює числу змін знаків у послідовності його коефіцієнтів або на парне число менше.
Зауваження 1. Правило Декарта можна застосувати і для оцінки числа від’ємних коренів з дійсними коефіцієнтами. Для цього в рівнянні
треба зробити заміну змінного
. Зрозуміло, що число від’ємних коренів даного рівняння дорівнює числу додатних коренів рівняння , яке можна оцінити за правилом Декарта.Якщо дане рівняння повне, тобто жодний коефіцієнт не дорівнює нулю, то число від’ємних коренів можна визначити і не виконуючи заміни
. Справді, в цьому випадку число змін збережень знаків у ряді коефіцієнтів многочлена дорівнює числу збережень знаків у ряді коефіцієнтів многочлена . Отже, число від’ємних коренів повного рівняння дорівнює числу збережень знаків у ряді його коефіцієнтів або на парне число менше.Зауваження 2. Коли наперед відомо, що всі корені даного рівняння
дійсні, то правило Декарта дає точну відповідь на питання про число дійсних коренів, а саме: число додатних коренів дорівнює числу змін знаків у ряді коефіцієнтів многочлена , а число від’ємних коренів – числу змін знаків у ряді коефіцієнтів многочлена .Справді, нехай, як і вище,
і – число додатних і від’ємних коренів даного многочлена , -го степеня; і – число змін знаків у ряді коефіцієнтів многочлена і многочлена відповідно. З умови, що всі корені дійсні, випливає: . Якби рівняння були повними, то мали б також . Якщо ж деякі з коефіцієнтів многочлена (а тому й многочлена ) перетворюється в нуль, то числа і можуть тільки зменшитися. Тому в загальному випадку , звідки , або . Але з правила Декарта знаємо, що . Тому насправді .На жаль, у більшості випадків наперед невідомо, чи всі корені рівняння дійсні. У зв’язку з цим правило Декарта, хоч і зручне з точки зору простоти застосування, не дає повної відповіді на питання про число дійсних коренів рівнянь з дійсними коефіцієнтами та їх розподіл між додатною і від’ємною півосями.
Практична частина
1. Опис програми
Програма складається з двох файлів – polinom.pas і polinom.dat. У файлі polinom.dat записується степень многочлена та його коефіціенти.
Описаняя процедур та функцій:
procedure znach – шукає межі додатніх та ві’ємних коренів;
function znachenie – знаходить значення многочлена в точці;
procedure delenie – відокремлює корені многочлена;
procedure korni – уточнює корені многочлена методом поділу відрізка навпіл;
2. Текст програми
Uses crt;
type ff=array[0..10] of real;
var f0,f1,f2,f3:ff;
prom,kpol:array[0..100] of real;
fil:text;
i,nf,k,iprom:integer;
n0,n1,n2,n3,b:real;
procedure znach(a100:ff ;var a1:ff); {ищет промижутки}
var i1:byte;
begin
if a100[0]<0 then
for i1:=0 to nf-1 do a100[i1]:=-1*a100[i1];
k:=0;
for i1:=0 to nf-1 do
if a100[i1]<0 then begin k:=i1;break end;
b:=0;
for i1:=0 to nf-1 do
if a100[i1]<0 then if b<abs(a100[i1]) then b:=abs(a100[i1]);
a1:=a100;
end;
procedure gran(k1:integer;b1,a5:real;var nk:real);{границы}
begin
if (k1<>0)and(b1<>0) then nk:=1+exp(1/k1*ln(b1/a5))
else nk:=0;
end;
function znachenie(a100:ff;xx:real):real; {значение в тч ХХ}
var y:real;
i100:integer;
begin
y:=a100[0];
for i100:=1 to nf-1 do
y:=y*xx+a100[i100];
znachenie:=y;
end;
procedure delenie(a,b:real);
const dx=0.1;
var z,z1,c:real;
begin
iprom:=0;
prom[0]:=a;
While b>a do begin
z:=znachenie(f0,a);
c:=a;
repeat
a:=a+dx;
z1:=znachenie(f0,a);
until (z*z1<0)or(b<a);
if z*z1<0 then begin iprom:=iprom+1;
prom[iprom-1]:=c;
prom[iprom]:=a;
end;
end;
end;
procedure korni(a8,b8:real);
const eps=0.0001;
var x0:real;
begin
x0:=(a8+b8)/2;
while abs(b8-a8)>eps do begin
if znachenie(f0,a8)*znachenie(f0,X0)<0 then begin b8:=x0;end;
if znachenie(f0,x0)*znachenie(f0,b8)<0 then begin a8:=x0;end;
x0:=(a8+b8)/2 end;
kpol[i]:=x0;
end;
begin clrscr;
assign(fil, ‘polinom.dat’);
reset(fil);
write(‘f=’);
readln(fil,nf);
{****************************************}
for i:=0 to nf-1 do {begin }
read(fil,f0[i]);write(f0[i],’ ‘)end;
writeln;
znach(f0,f0);
gran(k,b,f0[0],n0);
{*****************************************}
for i:=0 to nf-1 do f1[i]:=f0[nf-1-i];
znach(f1,f1);
gran(k,b,f1[0],n1);
{******************************************}
for i:=0 to nf-1 do
if odd(nf-1-i)=true then f2[i]:=-1*f0[i]
else f2[i]:=f0[i];
znach(f2,f2);
gran(k,b,f2[0],n2);
{************************************************}
for i:=0 to nf-1 do
if odd(nf-1-i)=true then f3[i]:=-1*f0[nf-1-i]
else f3[i]:=f0[nf-1-i];
znach(f3,f3);
gran(k,b,f3[0],n3);
if n0<>0 then begin
writeln(‘відрізок додатних коренів [‘,1/n1:1:3,’ ; ‘,n0:1:3,’]’);
delenie(1/n1,n0);
for i:=0 to iprom-1 do begin
korni(prom[i],prom[i+1]);
writeln(kpol[i]:1:2{,’ ‘,znachenie(f0,kpol[i]):1:2}); end; end
else writeln('немає додатніх коренів');
if n3<>0 then begin
writeln('Відрізок від’ємних коренів [',-1*n2:1:3,' ; ',-1/n3:1:3,']');
delenie(-1*n2,-1/n3);
for i:=0 to iprom-1 do begin
korni(prom[i],prom[i+1]);
writeln(kpol[i]:1:2,’ ‘,znachenie(f0,kpol[i]):1:2); end; end
else writeln('немає від’ємних коренів');
readkey;
end.
3. Контрольні приклади
x3-4x2-7x+10=0
відрізок додатних коренів [0,588;8,000]
1,00
5,00
відрізок від’ємних коренів [-4,162;-0,163]
-2,00
x5+2x4-5x3+8x2-7x-3=0
відрізок додатних коренів [0,380;3,646]
1,31
відрізок від’ємних коренів [-9,000;-0,273]
-3,91
-0,30
3x5+7x4-8x3+5x2-2x-1=0
відрізок додатних коренів [0,274;2,633]
0,77
відрізок від’ємних коренів [-3,667;-0,111]
-3,31
-0,26
x3-2,8x2-0,35x+3,45-0
відрізок додатних коренів [0,552;3,800]
1,50
2,30
відрізок від’ємних коренів [-9,000;-0,273]
-1,00
Висновок
В курсовій роботі були розглянуті методи наближеного пошуку меж та самих коренів многочлена з дійсними коренями. Можна знайти багато інших методів наближеного знаходження коренів. Один з них найбільш вдосконалим є метод Лобачевського. Цей метод дозволяє знаходити наближення значення всіх коренів відразу, у тому числі і комплексних, причому не потребує відділення коренів; однако він зв’язан з великими обчисленнями.
Література
1. А. Г. Курош «Курс высшей алгебры», «Наука», Москва 1975
2. С. Т. Завало, В. М. Костарчук, Б. И. Хацет «Алгебра и теория чисел», Том 1,«Высшая школа», Киев 1974
3. С. Т. Завало, В. М. Костарчук, Б. И. Хацет «Алгебра и теория чисел», Том 2,«Высшая школа», Киев 1976