logo search
Алгоритмы с многочленами

4. Производная от многочлена

Понятие кратного корня тесно связано с понятием производной от многочлена. Мы изучаем многочлены с любыми комплексными коэффициентами и поэтому не можем просто воспользоваться понятием производной, введенным в курсе математического анализа. То, что будет сказано ниже, следует рассматривать как независимое от курса анализа определение производной многочлена.

Пусть дан многочлен n-ной степени

f(x)=

с любыми комплексными коэффициентами. Его производной (первой производной) называется многочлен (n- 1)-й степени

Производная от многочлена нулевой степени и от нуля считается равной нулю. Производная от первой производной называется второй производной от многочлена f(x) и обозначается через f“(x) . Очевидно, что

и по этому , то есть (n+1)-я производная от многочлена n-й степени равна нулю.

Свойства, являющиеся формулами дифференцирования для суммы и произведения:

1. (4.1)

2. (4.2)

Эти формулы легко проверить, впрочем, непосредственным подсчетом, беря в качестве и два произвольных многочлена и применяя данное выше определение производной.

Формула (4.2) распространяется на случай произведения любого конечного числа множителей, а поэтому выводится формула для производной от степени:

3. (4.3)

Доказательство. Используем метод математической индукции.

.

Если число с является k -кратным корнем многочлена f(x), то при k>1 оно будет (k-1)-кратным корнем первой производной этого многочлена; если же k=1 , то с не будет служить корнем для .

В самом деле, пусть

, , (4.4)

где уже не делится на х-с. Дифференцируя равенство (4.4), получаем:

.

Первое слагаемое суммы делится на х-с, а второе на х-с не делится; поэтому вся эта сумма на х-с не может делиться. Учитывая, что частное от деления f(x) на определено однозначно, мы получаем, что является наибольшей степенью двучлена х-с, на которую делится многочлен .

Применяя эту теорему несколько раз, мы получаем, что k-кратный корень многочлена f(x) будет (k-s)-кратным в s-й производной этого многочлена и впервые не будет служить корнем для k-й производной от f(x).

Пример. Найти производную многочлена .

.

Я составила программу для нахождения первой производной многочлена.

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.