Наибольший общий делитель многочленов
Пусть даны произвольные многочлены В общем же случае многочлены Наибольшим общим делителем отличных от нуля многочленов Это определение оставляет открытым вопрос, существует ли наибольший общий делитель для любых многочленов Алгоритм Евклида Алгоритм Евклида – метод для нахождения наибольшего общего делителя двух целых чисел, а также двух многочленов от одного переменного. Он первоначально был изложен в «Началах» Евклида в геометрической форме как способ нахождения общей меры двух отрезков. Алгоритм Евклида для нахождения наибольшего общего делителя, как в кольце целых чисел, так и в кольце многочленов от одного переменного является частным случаем некого общего алгоритма в евклидовых кольцах. Алгоритм Евклида для нахождения наибольшего общего делителя двух многочленов
Для доказательства запишем изложенное в виде следующей цепочки равенств:
(2.4)
Последнее равенство показывает, что Возьмем теперь произвольный общий делитель Мы доказали, что любые два многочлена обладают наибольшим общим делителем, и получили способ его вычисления. Этот способ показывает, что если многочлены
Если Применяя алгоритм Евклида к многочленам с целыми коэффициентами, можем, чтобы избежать дробных коэффициентов, умножить делимое или сократить делитель на любое не равное нулю число, причем не только начиная какое-либо из последовательных делений, но и в процессе самого этого деления. Это будет приводить к искажению частного, но интересующие нас остатки будут приобретать лишь некоторый множитель нулевой степени, что при разыскании наибольшего общего делителя допускается. Пример. Найти наибольший общий делитель многочленов 1. Совершим требуемые деления с остатком:
Построение последовательности Евклида закончено. Ее последний член 2. Совершим требуемые деления с остатком:
Построение последовательности Евклида закончено. Ее последний член
Я составила программу для нахождения наибольшего общего делителя двух многочленов: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Edit1: TEdit; Edit2: TEdit; SGd1: TStringGrid; Label3: TLabel; Button1: TButton; Label4: TLabel; Edit4: TEdit; Label5: TLabel;
Label6: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; st1,st2:integer; kof1,kof2,k1,k2:array[0..10] of integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i,j,k_1,st3,l:integer; sokr:boolean; k2_2,k1_1:array[0..10] of integer; begin st1:=StrToInt(Edit1.Text); st2:=StrToInt(Edit2.Text); for i:=0 to st1 do begin kof1[i]:=StrToInt(SGd1.Cells[i,0]); k1[i]:=StrToInt(SGd1.Cells[i,0]); end; for i:=0 to st2 do begin kof2[i]:=StrToInt(SGd1.Cells[i,1]); k2[i]:=StrToInt(SGd1.Cells[i,1]); end; while kof2[0]<>0 do begin repeat Edit4.Text:=''; k_1:=k1[0]; if k1[0]<>kof2[0] then begin if (k1[0] mod kof2[0])=0 then begin for j:=0 to st2 do k2[j]:=(k1[0] div kof2[0])*kof2[j]; end else begin if k2[0]<>1 then for j:=0 to st1 do k1[j]:=kof2[0]*k1[j]; if k_1<>1 then begin for j:=0 to st2 do k2[j]:=k_1*kof2[j]; end; end; end; for i:=1 to st1 do begin k1[i-1]:=k1[i]-k2[i]; end; st1:=st1-1; until st1<st2; if k1[0]<>0 then begin //Сокращение sokr:=true; for i:=1 to st1 do if k1[i]<>0 then begin if (k1[i] mod k1[0])<>0 then sokr:=false; end; k_1:=k1[0]; if sokr=true then for i:=0 to st1 do k1[i]:=k1[i] div k_1; end; for i:=0 to st2 do //Замена многочленов k2_2[i]:=kof2[i]; for i:=0 to st1 do k1_1[i]:=k1[i]; for i:=0 to 10 do begin kof1[i]:=0; k1[i]:=0; kof2[i]:=0; k2[i]:=0; end; for i:=0 to st2 do begin k1[i]:=k2_2[i]; if k1[i]<>0 then Edit4.Text:=Edit4.Text+IntToStr(k1[i])+'x^'+IntToStr(st2-i); if (k2_2[i+1]>0)and(i<st2) then Edit4.Text:=Edit4.Text+'+'; end; for i:=0 to st1 do begin k2[i]:=k1_1[i]; kof2[i]:=k1_1[i]; end; st3:=st1; st1:=st2; st2:=st3; end; end; end.
Используем алгоритм Евклида для доказательства следующей теоремы: Теорема. Если
Можно считать при этом, если степени многочленов Доказательство основано на равенствах (2.4). Если учтем, что
Подставляя сюда выражение
где Для доказательства второго утверждения теоремы предположим, что многочлены
где степень
Степень множителя, стоящего при Теорема доказана. Одновременно получаем, что если многочлены Применяя доказанную теорему к взаимно простым многочленам, получаем такой результат: Многочлены
Опираясь на этот результат, можно доказать несколько простых, но важных теорем о взаимно простых многочленах: Теорема 1. Если многочлен Доказательство. В самом деле, существуют, по (2.6), такие многочлены Умножая это равенство на
откуда следует, что всякий общий делитель Теорема 2. Если произведениемногочленов Доказательство. Умножая равенство Оба слагаемых левой части этого равенства делятся на Теорема 3. Если многочлен Доказательство. Действительно, Определение наибольшего общего делителя может быть распространен на случай любой конечной системы многочленов: наибольшим общим делителем многочленов Теорема. Наибольший общий делитель многочленов
Доказательство. В самом деле, при В частности, система многочленов Кратные корни Теорема Безу. Многочлен f (x) делится на x - c тогда и только тогда, когда число c является его корнем. Рассмотрим произвольный многочлен f (x) и разделим его с остатком на двучлен x - c. Поскольку степень этого двучлена равна 1, то остаток либо равен 0, либо имеет степень 0. И в том, и в другом случае остаток r есть число. Таким образом, многочлен f (x) представляется в виде: f (x)= (x - c) q (x)+ r. Положив в этом тождестве x = c, получим что f (c)= r. Мы доказали тем самым, что остаток от деления многочлена на двучлен x - c равен значению многочлена при x = c. С помощью теоремы Безу решим несколько задач. Пример 1. Решить уравнение Многочлен f (x)=
Остается решить квадратное уравнение Это уравнение не имеет действительных корней, так что x =2 – единственный действительный корень исходного уравнения. 2. Решить уравнение Многочлен f (x)=
0 Остается решить квадратное уравнение Это уравнение имеет корень 1. Так что x =-2 и x =1 – корни исходного уравнения. Если c – корень многочлена f (x), то есть f (c)=0, то f (x) делится на x - c. Может оказаться, что многочлен f (x) делится не только на первую степень линейного двучлена x - c, но и на более высокие его степени. Во всяком случае, найдется такое натуральное число k, что f (x) нацело делится на
где многочлен Производная от многочлена
Понятие кратного корня тесно связано с понятием производной от многочлена. Мы изучаем многочлены с любыми комплексными коэффициентами и поэтому не можем просто воспользоваться понятием производной, введенным в курсе математического анализа. То, что будет сказано ниже, следует рассматривать как независимое от курса анализа определение производной многочлена. Пусть дан многочлен n–ной степени f (x)= с любыми комплексными коэффициентами. Его производной (первой производной) называется многочлен (n- 1)-й степени
Производная от многочлена нулевой степени и от нуля считается равной нулю. Производная от первой производной называется второй производной от многочлена f (x) и обозначается через f “(x). Очевидно, что
и по этому Свойства, являющиеся формулами дифференцирования для суммы и произведения: 1. 2. Эти формулы легко проверить, впрочем, непосредственным подсчетом, беря в качестве и два произвольных многочлена и применяя данное выше определение производной. Формула (4.2) распространяется на случай произведения любого конечногочисла множителей, а поэтому выводится формула для производной от степени: 3. Доказательство. Используем метод математической индукции.
Если число с является k –кратным корнем многочлена f (x), то при k >1 оно будет (k -1)–кратным корнем первой производной этого многочлена; если же k =1, то с не будет служить корнем для В самом деле, пусть
где
Первое слагаемое суммы делится на х-с, а второе на х-с не делится; поэтому вся эта сумма на х-с не может делиться. Учитывая, что частное от деления f (x) на Применяя эту теорему несколько раз, мы получаем, что k -кратный корень многочлена f (x) будет (k - s)-кратным в s -й производной этого многочлена Пример. Найти производную
Я составила программу для нахождения первой производной многочлена. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids;
type TForm1 = class(TForm) Edit1: TEdit; Label1: TLabel; SGd1: TStringGrid; Label2: TLabel; Button1: TButton; Edit2: TEdit; Edit3: TEdit; Label3: TLabel; Label4: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1; c,i,st:integer; k,l,s:string; kof:array[0..100] of integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin st:=StrToInt(Edit1.Text); for i:=0 to st do begin if SGd1.Cells[i,0]<>'' then kof[st-i]:=StrToInt(SGd1.Cells[i,0]) else MessageDlg ('Внимание! Не введены значения коэффициентов!',mtWarning,[mbOK],0); end; s:='f(x)='; for i:=st downto 0 do begin if kof[i]<>0 then begin if(kof[i-1]<0)or(i=0) then begin str(kof[i],l); str(i,k); s:=s+l+'x^'+k; end else begin str(kof[i],l); str(i,k); s:=s+l+'x^'+k+'+'; end; end; kof[i]:=kof[i]*i; end; Edit2.Text:=s; s:='f1(x)='; for i:=st downto 0 do begin if kof[i]<>0 then begin if(kof[i-1]<0)or(i=1) then begin str(kof[i],l); str(i-1,k); s:=s+l+'x^'+k; end else begin str(kof[i],l); str(i-1,k); s:=s+l+'x^'+k+'+'; end; end; Edit3.Text:=s; end; end; end.
Кратные множители
Существуют методы, позволяющие узнать, обладает ли данный многочлен кратными множителями, и в случае положительного ответа дающие возможность свести изучение этого многочлена к изучению многочленов, уже не содержащих кратных множителей. Теорема. Если В самом деле, пусть
причем
Второе из слагаемых, стоящих в скобках, не делится на Из данной теоремы и из указанного выше способа разыскания наибольшего общего делителя двух многочленов следует, что если дано разложение многочлена
то наибольший общий делитель многочлена
где множитель
Воспользуйтесь поиском по сайту: ![]() ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|