ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
ΠΠ΅ΡΠΎΠ΄ Π·ΠΎΠ»ΠΎΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΡΠ΅Π²Π½ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΡΡΠ΅Π·ΠΊΠ°. ΠΠΏΠ΅ΡΠ²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΠ» ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ ΠΠ²ΠΊΠ»ΠΈΠ΄ΠΎΠΌ. Π’ΠΎΠ³Π΄Π° ΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΡ Π½Π° ΡΠ°Π²Π½ΡΠ΅ ΠΏΡΡΡ ΡΠ°ΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΡΡΠΈΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ Π·Π²Π΅Π·Π΄Ρ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠΎΡΠ½ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ: 1.3 748 779ΠΡΠ²ΠΎΠ΄: ΠΌΠ΅ΡΠΎΠ΄ Π±ΠΈΡΡΠ΅ΠΊΡΠΈΠΉ Π²ΡΠ΅Π³Π΄Π° Π΄Π°ΡΡ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΡ ΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
1. Π Π΅ΡΠ΅Π½ΠΈΡ Π°Π»Π³Π΅Π±ΡΠ°ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΡΠ½Π΅ΠΉ
1.1 ΠΡΠ°ΡΠΊΠΈΠ΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ
1. ΠΡΠΈΡΠ°ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ
2. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Ρ ΡΠ»Π΅Π½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ°Π²Π½ΡΠΌΠΈ, .
3. ΠΠ΅ΡΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ Π²Π΅ΠΊΡΠΎΡΠΎΠ²:, .
4. ΠΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΈ (- ΡΠΎΡΠ½ΠΎΡΡΡ ΡΠ°ΡΡΠ΅ΡΠΎΠ²) Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡ Π΅ΠΌΠ΅ (ΡΠ΄ΠΎΠ±Π½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΈΠΊΠ»ΠΎΠΌ while):
; Π΄Π»Ρ;; Π΄Π»Ρ; ;;; .
5. ΠΡΠ»ΠΈ, ΡΠΎ ΠΊΠΎΡΠ½ΠΈ Π±ΡΠ΄ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ, ΠΈΠ½Π°ΡΠ΅ — ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎ ΡΠΎΠΏΡΡΠΆΠ΅Π½Π½ΡΠΌΠΈ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ°ΡΡΠ΅Ρ ΠΈ Π²ΡΠ²ΠΎΠ΄ ΡΠ°ΠΊΠΈΡ ΠΊΠΎΡΠ½Π΅ΠΉ: ΠΏΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΡΠ½ΡΡ
;
ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎ ΡΠΎΠΏΡΡΠΆΠ΅Π½Π½ΡΡ ΠΊΠΎΡΠ½ΡΡ
6. ΠΡΠ»ΠΈ (Π·Π΄Π΅ΡΡ N — ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ), ΡΠΎ; Π΄Π»Ρ; ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΡΠ½ΠΊΡΡ 1. ΠΠ½Π°ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ x ΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
1.2 ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, Buttons, StdCtrls, ExtCtrls;
type
TKovalenko_Form1 = class (TForm)
Kovalenko_Label1: TLabel;
Kovalenko_Button1: TButton;
Kovalenko_Edit1: TEdit;
Kovalenko_Edit2: TEdit;
Kovalenko_Edit3: TEdit;
Kovalenko_Edit4: TEdit;
Kovalenko_Edit5: TEdit;
Kovalenko_Edit6: TEdit;
Kovalenko_Edit7: TEdit;
Kovalenko_BitBtn1: TBitBtn;
Kovalenko_StringGrid1: TStringGrid;
Image1: TImage;
procedure Kovalenko_Button1Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type mas=array[1.7] of real;
var
Kovalenko_Form1: TKovalenko_Form1;
a, B, C, xRe, xIm: mas;n, i: integer;p, q, dp, dq, d: real;
const e=0.001;
implementation
{$R *.dfm}
procedure TKovalenko_Form1.Kovalenko_Button1Click (Sender: TObject);
label 1;
var i: integer;
begin
Kovalenko_StringGrid1.ColWidths[0]: =80;
Kovalenko_StringGrid1.ColWidths[1]:=80;
Kovalenko_StringGrid1.Cells[0,0]:=' xRe';
Kovalenko_StringGrid1.Cells[1,0]: =' xIm';
Kovalenko_StringGrid1.DefaultRowHeight:=10;
Kovalenko_StringGrid1.DefaultRowHeight:=20;
Kovalenko_StringGrid1.GridLineWidth:=2;
Kovalenko_StringGrid1.RowCount:=2;
a[1]: = StrToFloat (Kovalenko_Edit1.Text);
a[2]: = StrToFloat (Kovalenko_Edit2.text);
a[3]: = StrToFloat (Kovalenko_Edit3.text);
a[4]: = StrToFloat (Kovalenko_Edit4.text);
a[5]: = StrToFloat (Kovalenko_Edit5.text);
a[6]: = StrToFloat (Kovalenko_Edit6.text);
a[7]: = StrToFloat (Kovalenko_Edit7.text);
n:=6;
1: dp:=10 000;dq:=10 000;
b[1]: =a[1];c[1]:=b[1];
p:=a[2];q:=a[3];
while (abs (dp)>e) and (abs (dq)>e) do
begin
b[2]: =a[2]-p*b[1];
for i:=3 to n+1 do
b[i]: =a[i]-p*b[i-1]-q*b[i-2];
c[2]:=b[2]-p*c[1];
for i:=3 to n-1 do
c[i]: =b[i]-p*c[i-1]-q*c[i-2];
c[n]:=-p*c[n-1]-q*c[n-2];
d:=sqr (c[n-1])-c[n]*c[n-2];
dp:=(b[n]*c[n-1]-b[n+1]*c[n-2])/d;
dq:=(b[n+1]*c[n-1]-b[n]*c[n])/d;
p:=p+dp; q:=q+dq;
end;
if (p*p/4)-q>0 then
begin
xRe[1]: =-p/2+sqrt (p*p/4-q); xIm[1]: =0;
xRe[2]:=-p/2-sqrt (p*p/4-q); xIm[2]: =0;
end
else
begin
xIm[1]:=sqrt (abs (p*p/4-q)); xRe[1]: =-p/2;
xIm[2]:=-sqrt (abs (p*p/4-q)); xRe[2]: =-p/2;
end;
Kovalenko_StringGrid1.Cells[0,Kovalenko_StringGrid1.RowCount;
1]:=FloatToStrF (xRe[1], ffGeneral, 3,3);
Kovalenko_StringGrid1.Cells[1,Kovalenko_StringGrid1.RowCount;
1]:=FloatToStrF (xIm[1], ffGeneral, 3,3);
Kovalenko_StringGrid1.Cells[0,Kovalenko_StringGrid1.RowCount]:=Float
ToStrF (xRe[2], ffGeneral, 3,3);
Kovalenko_StringGrid1.Cells[1,Kovalenko_StringGrid1.RowCount]: =Float
ToStrF (xIm[2], ffGeneral, 3,3);
Kovalenko_StringGrid1.RowCount:=Kovalenko_StringGrid1.RowCount+2;
if n>2 then
begin
a[1]: =1;
for i:=2 to n-1 do
a[i]: =b[i];
n:=n-2;
goto 1
end;
end;
end.
1.3 ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ°
1.4 Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ
Π ΠΈΡΡΠ½ΠΎΠΊ 1
Π£ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅: X6+6.5X5-14X4+14X3-17X2+21X-22.5=0
ΠΠΎΡΠ½ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ: 1.39; -8.4; 0.761+0.915i; 0.761−0.915i; -0.506+1.05i; -0.506−1.05i;
ΠΡΠ²ΠΎΠ΄: ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π°Π»Π³Π΅Π±ΡΠ°ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ ΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ (ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ Π½Π΅ ΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΠΎΠ³ΡΠ΅ΡΠ½ΠΎΡΡΡ)
2. Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ Ρ ΠΎΠ΄Π½ΠΈΠΌ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ
2.1 ΠΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠ³ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΡ (Π΄ΠΈΡ ΠΎΡΠΎΠΌΠΈΠΈ, Π±ΠΈΡΠ΅ΠΊΡΠΈΠΈ)
ΠΡΠ°ΡΠΊΠΈΠ΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΡΡ
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΡΡΠΎ ΠΊΠΎΡΠ΅Π½Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠ°Π²Π΅Π½ ΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π½Π° ΠΎΡΡΠ΅Π·ΠΊΠ΅ .Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠ½Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ ΠΎΡΡΠ΅Π·ΠΊΠ°. ΠΡΠ»ΠΈ, ΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΡΠ½Π΅ΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ Π΄Π°Π»Π΅Π΅ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ°Ρ ΠΎΡΡΠ΅Π·ΠΊΠΎΠ² ΠΈ ΠΈ ΡΠΎΡ ΠΈΠ· Π½ΠΈΡ , Π½Π° ΠΊΠΎΠ½ΡΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ Π·Π½Π°ΠΊΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΡΠΊΠΎΠΌΡΠΉ ΠΊΠΎΡΠ΅Π½Ρ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡΡΠ΅Π·ΠΊΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠ΅Π½ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΡΠ΅Π·ΠΊΠ΅, ΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ a Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ b ΠΏΡΠΈΠΌΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡΡΠ΅Π·ΠΊΠ°. ΠΡΠΎΡ ΡΠΊΠΎΡΠΎΡΠ΅Π½Π½ΡΠΉ ΠΎΡΡΠ΅Π·ΠΎΠΊ Π²Π½ΠΎΠ²Ρ Π΄Π΅Π»ΠΈΡΡΡ ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ ΠΈ ΡΠΈΠΊΠ» Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ. ΠΡΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ, Π³Π΄Π΅ — ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠ½Ρ, Π° Π΅ — Π·Π°Π΄Π°Π½Π½Π°Ρ ΡΠΎΡΠ½ΠΎΡΡΡ.
2.2 ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart, Grids,
Buttons, BubbleCh, Math;
type
TKovalenko_Form1 = class (TForm)
Label1: TLabel;
Kovalenko_BitBtn1: TBitBtn;
Kovalenko_Edit2: TEdit;
Label3: TLabel;
Kovalenko_Button1: TButton;
Image1: TImage;
Kovalenko_Chart1: TChart;
Series1: TLineSeries;
Series2: TPointSeries;
procedure Kovalenko_Button1Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Kovalenko_Form1: TKovalenko_Form1;
implementation
Function f (x:real):real;
begin
f:=sin (ln (x))-cos (ln (x))+2*(ln (x));
end;
{$R *.dfm}
procedure TKovalenko_Form1.Kovalenko_Button1Click (Sender: TObject);
const e=0.1;a=1;b=3;
var ax, bx, C, i:real;
begin
C:=(a+b)/2;
ax:=a;bx:=b;
while abs (F (c))>e do
begin
if F (c)=0 then
Kovalenko_Edit2.Text:=FloatToStr (c)
else
begin
if (F (ax))*(f (c))<0 then
begin
bx:=c;
C:=(ax+bx)/2;
end;
if (F (c))*(f (bx))<0 then
begin
ax:=c;
C:=(ax+bx)/2;
end;
end;
Kovalenko_Chart1.SeriesList.Series[1]. AddXY (c, F©,' ', clblue);
end;
Kovalenko_Chart1.SeriesList.Series[1]. AddXY (ax, F (ax),' ', clyellow);
Kovalenko_Chart1.SeriesList.Series[1]. AddXY (bx, F (bx),' ', clyellow);
Kovalenko_Edit2.Text:=FloatToStr (c);
i:=a;
while i
begin
i:=i+0.01;
Kovalenko_Chart1.SeriesList.Series[0]. AddXY (i, f (i), ' ', clRED);
end;
2.3 ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ°
2.4 Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ
Π ΠΈΡΡΠ½ΠΎΠΊ 2
Π£ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅: Sin (ln (x))-Cos (ln (x))+2ln (x)
ΠΠΎΡΠ½ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ: 1.3 748 779ΠΡΠ²ΠΎΠ΄: ΠΌΠ΅ΡΠΎΠ΄ Π±ΠΈΡΡΠ΅ΠΊΡΠΈΠΉ Π²ΡΠ΅Π³Π΄Π° Π΄Π°ΡΡ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΡ ΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠ½Ρ Π‘ Ρ ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠ½ΡΠΎΠ². ΠΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Π΄Π²ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π±ΠΈΡΡΠ΅ΠΊΡΠΈΠΉ ΠΈ ΠΈΡΡΠ΅ΡΠ°ΡΠΈΠΉ, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠ΅ΠΉ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΊΠΎΡΠ½Ρ Π‘ Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΡΡ.
3. ΠΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠ°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ²
3.1 ΠΡΠ°ΡΠΊΠΈΠ΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΡΡ
1. ΠΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΠΈ, , Π³Π΄Π΅ — ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π°ΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ (Π² Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅, Π³Π΄Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ — 6 ΠΈΠ»ΠΈ 7), Π² ΡΠΈΠΊΠ»Π΅ Π²ΡΡΠΈΡΠ»ΡΡΡ, , ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ (Π΄ΠΎ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠΈΠΊΠ»Π°) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ .
2. ΠΡΡΠΈΡΠ»ΡΡΡ, .
3. Π Π΅ΡΠ°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ, Π³Π΄Π΅ B — ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ° ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ², d — Π²Π΅ΠΊΡΠΎΡ ΠΏΡΠ°Π²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ, a — ΠΈΡΠΊΠΎΠΌΡΠΉ Π²Π΅ΠΊΡΠΎΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ² Π°ΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ. Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΠ°ΡΡΡΠ°.
4. Π‘ΡΡΠΎΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π°ΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠΈΡΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ.
3.2 ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls, Buttons,
Grids, Math, jpeg;
type
TKovalenko_Form1 = class (TForm)
Kovalenko_Button1: TButton;
Kovalenko_Chart1: TChart;
Series1: TLineSeries;
Kovalenko_BitBtn1: TBitBtn;
Series2: TPointSeries;
Kovalenko_StringGrid1: TStringGrid;
Kovalenko_StringGrid2: TStringGrid;
Grehov_Label4: TLabel;
Image1: TImage;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
RadioButton5: TRadioButton;
RadioButton6: TRadioButton;
procedure Kovalenko_Button1Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type matr=array[1.7,1.7] of real;
type mass=array[1.7] of real;
var
Kovalenko_Form1: TKovalenko_Form1;
B, a, c:matr;X, Y, d, YY, XX: mass;
i, j, k, n, m:integer;
s, q, f:real;
implementation
{$R *.dfm}
procedure TKovalenko_Form1.Kovalenko_Button1Click (Sender: TObject);
begin
Kovalenko_Chart1.Visible:=true;
Kovalenko_StringGrid2.Visible:=true;
n:=7;
for i:=1 to m+1 do
YY[i]: =0; d[i]: =0;XX[I]:=0;
s:=0;q:=0;f:=0;
x[1]:=0.5; y[1]: =-5.5;
x[2]:=1; y[2]: =0.55;
x[3]:=1.5; y[3]: =-10;
x[4]:=2; y[4]: =11.5;
x[5]:=2.5; y[5]: =9.5;
x[6]:=3; y[6]: =-10.2;
x[7]:=3.5; y[7]: =11.5;
for j:=1 to 7do
begin
Kovalenko_Chart1.SeriesList.Series[1]. AddXY (x[j], y[j],' ', clyellow);
end;
if RadioButton1. Checked then m:=1;
if RadioButton2. Checked then m:=2;
if RadioButton3. Checked then m:=3;
if RadioButton4. Checked then m:=4;
if RadioButton5. Checked then m:=5;
if RadioButton6. Checked then m:=6;
a[1,1]: =n;
for i:=1 to m+1 do
for k:=1 to m+1 do
begin
s:=0;
for j:=1 to n do
s:=s+power (x[j],(i+k-2));
a[i, k]: =s;
end;
for i:=1 to m+1 do
begin
s:=0;
for j:=1 to n do
s:=s+((power (x[j], i-1))*y[j]);
d[i]: =s;
end;
{ΠΠ΅ΡΠΎΠ΄ ΠΠ°ΡΡΡΠ°}
for i:=1 to (m+1) do
begin
b[i, i]: =1;
b[1,i]:=a[1,i]/a[1,1];
c[i, 1]:=a[i, 1];
end;
YY[1]:=d[1]/a[1,1];
for i:=2 to (m+1) do
begin
for k:=i to (m+1) do
begin
s:=0;
for j:=1 to i-1 do
s:=s+c[k, j]*b[j, i];
c[k, i]:=a[k, i]-s;
end;
for k:=i+1 to (m+1) do
begin
s:=0;
for j:=1 to i-1 do
s:=s+c[i, j]*b[j, k];
b[i, k]:=(a[i, k]- s)/c[i, i];
end;
end;
for i:=2 to (m+1) do
begin
for j:=1 to i-1 do
s:=s+c[i, j]*YY[j];
YY[i]:=(d[i]-s)/c[i, i];
end;
XX[n]:=YY[n];
for i:=1 to n-1 do
begin
s:=0;
for j:=n-i+1 to n do
s:=s+b[n-i, j]*XX[j];
XX[n-i]:=YY[n-i]-s;
end;
for i:=1 to m+1 do
begin
Kovalenko_StringGrid1.Cells[Kovalenko_StringGrid1.colCount;
1,0]: ='a['+FloatToStrF (i, ffGeneral, 6,6)+']';
Kovalenko_StringGrid1.Cells[Kovalenko_StringGrid1.colCount;
1,1]:=FloatToStrF (XX[i], ffGeneral, 6,6);
Kovalenko_StringGrid1.colCount:=Kovalenko_StringGrid1.colCount+1;
end;
Kovalenko_stringGrid2.Cells[0,0]:='X';
Kovalenko_stringGrid2.Cells[0,1]:='f (x)'; q:=x[1];
Kovalenko_chart1.SeriesList.Series[0].Clear;
for k:=1 to 1500 do
begin
for i:=1 to (m+1) do
s:=s+XX[i]*(power (q, i-1)); {y}
f:=s; q:=q+0.002;
Kovalenko_chart1.SeriesList.Series[0]. AddXY (q, s,'', clRED);
Kovalenko_StringGrid2.Cells[Kovalenko_StringGrid2.colCount;
1,0]:=FloatToStrF (q, ffGeneral, 6,6);
Kovalenko_StringGrid2.Cells[Kovalenko_StringGrid2.colCount;
1,1]:=FloatToStrF (f, ffGeneral, 6,6);
Kovalenko_StringGrid2.ColCount:= Kovalenko_StringGrid2.ColCount+1;
end;
end;
end.
3.3 ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ°
3.4 Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ
Π ΠΈΡΡΠ½ΠΎΠΊ 3
Π‘ΡΠ°ΡΡΠΎΠ²ΡΠ΅ ΡΠΎΡΠΊΠΈ Π°ΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠΈΡΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ:
0,5;5.5, 1;0.55, 1.5;-1, 2;11.5, 2.5;9.5, 3;-10.2, 3.5;1.5.
ΠΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠΈΡΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ:
— 520.15, 2281.1, -3643.52, 2768.05, -1075.68, 206.173, -15.4311;
ΠΡΠ²ΠΎΠ΄: ΠΏΡΠΈ ΡΠ°ΡΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Π²ΡΡΠΎΠΊΠ°Ρ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΡΠΎΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π°ΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠ°ΡΠΈΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²ΠΈΠ΄ΠΎΠ².
Π°ΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠ°ΡΠΈΡ Π·ΠΎΠ»ΠΎΡΠΎΠΉ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ½ΡΠΉ
4. ΠΠ΄Π½ΠΎΠΌΠ΅ΡΠ½Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠΊΡΡΡΠ΅ΠΌΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ΅ΡΠΎΠ΄ Π·ΠΎΠ»ΠΎΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ
4.1 ΠΡΠ°ΡΠΊΠΈΠ΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΡΡ
ΠΡΠ»ΠΈ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π΅ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΡΠ½ΠΈΠΌΠΎΠ΄Π°Π»ΡΠ½Π°Ρ, ΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π²Π½Π°ΡΠ°Π»Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΆΠ°ΡΡ Π΄ΠΎ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° ΡΠ½ΠΈΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΡΡΠΈ (ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΊΡΡΡΠ΅ΠΌΡΠΌΠ°). ΠΠΎΠ»ΠΎΡΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡΡΠ΅Π·ΠΊΠ° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡΡΠ΅Π·ΠΊΠ° Π½Π° Π΄Π²Π΅ Π½Π΅ΡΠ°Π²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΡΠ°ΠΊ, ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ Π²ΡΠ΅Π³ΠΎ ΠΎΡΡΠ΅Π·ΠΊΠ° ΠΊ Π΄Π»ΠΈΠ½Π΅ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π΅Π³ΠΎ ΡΠ°ΡΡΠΈ ΡΠ°Π²Π½ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Π΄Π»ΠΈΠ½Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΊ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ .
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ:
Π‘ ΡΡΠ΅ΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ Π² ΡΠΎΡΠΊΠ΅
.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°:
1. ΠΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° ΡΠ½ΠΈΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΡΡΠΈ, , ΡΡΠ΅ΡΡΠΈΠΊ .
2. ΠΠ°Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ .
3. ΠΡΡΠΈΡΠ»ΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
4. ΠΡΠ»ΠΈ, ΡΠΎ, ,. ΠΠ½Π°ΡΠ΅, , .
5. ΠΡΡΠΈΡΠ»ΡΡΡ Π΄Π»ΠΈΠ½Ρ ΡΡΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° .
6. ΠΡΠ»ΠΈ, ΡΠΎ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ Π±ΡΠ΄Π΅Ρ. ΠΠ½Π°ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΡΠ½ΠΊΡΠ° 3.
ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠΈΡΠ°Π΅ΠΌ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ΄Π½ΠΎ ΡΠΆΠ΅ ΠΏΠΎΡΡΠΈΡΠ°Π½ΠΎ ΡΠ°Π½Π΅Π΅ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΡΠΊΡ Π·ΠΎΠ»ΠΎΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
4.2 ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls, Buttons,
Grids, Math, jpeg;
type
TKovalenko_Form1 = class (TForm)
Kovalenko_Button1: TButton;
Kovalenko_Chart1: TChart;
Series1: TLineSeries;
Kovalenko_BitBtn1: TBitBtn;
Series2: TPointSeries;
Kovalenko_StringGrid1: TStringGrid;
Kovalenko_StringGrid2: TStringGrid;
Kovalenko__Label4: TLabel;
Image1: TImage;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
RadioButton5: TRadioButton;
RadioButton6: TRadioButton;
Series3: TPointSeries;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label3: TLabel;
procedure Kovalenko_Button1Click (Sender: TObject);
procedure Kovalenko_BitBtn1Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type matr=array[1.7,1.7] of real;
type mass=array[1.7] of real;
var
Kovalenko_Form1: TKovalenko_Form1;
B, a, c:matr;X, Y, d, YY, XX: mass;
i, j, k, n, m:integer;
s, q, f, L, X1,X2,XXX, YYY, G1, G2,ax, bx: real;
implementation
{$R *.dfm}
procedure TKovalenko_Form1.Kovalenko_Button1Click (Sender: TObject);
const r=0.1; a0=1; b0=2;
begin
Kovalenko_Chart1.Visible:=true;
Kovalenko_StringGrid2.Visible:=true;
n:=7;
for i:=1 to m+1 do
YY[i]: =0; d[i]: =0;XX[I]:=0;
s:=0;q:=0;f:=0;
x[1]:=0.5; y[1]: =-5.5;
x[2]:=1; y[2]: =0.55;
x[3]:=1.5; y[3]: =-10;
x[4]:=2; y[4]: =11.5;
x[5]:=2.5; y[5]: =9.5;
x[6]:=3; y[6]: =-10.2;
x[7]:=3.5; y[7]: =11.5;
for j:=1 to 7 do
begin
Kovalenko_Chart1.SeriesList.Series[1]. AddXY (x[j], y[j],' ', clyellow);
end;
if RadioButton1. Checked then m:=1;
if RadioButton2. Checked then m:=2;
if RadioButton3. Checked then m:=3;
if RadioButton4. Checked then m:=4;
if RadioButton5. Checked then m:=5;
if RadioButton6. Checked then m:=6;
a[1,1]: =n;
for i:=1 to m+1 do
for k:=1 to m+1 do
begin
s:=0;
for j:=1 to n do
s:=s+power (x[j],(i+k-2));
a[i, k]: =s;
end;
for i:=1 to m+1 do
begin
s:=0;
for j:=1 to n do
s:=s+((power (x[j], i-1))*y[j]);
d[i]: =s;
end;
{ΠΠ΅ΡΠΎΠ΄ ΠΠ°ΡΡΡΠ°}
for i:=1 to (m+1) do
begin
b[i, i]: =1;
b[1,i]:=a[1,i]/a[1,1];
c[i, 1]:=a[i, 1];
end;
YY[1]:=d[1]/a[1,1];
for i:=2 to (m+1) do
begin
for k:=i to (m+1) do
begin
s:=0;
for j:=1 to i-1 do
s:=s+c[k, j]*b[j, i];
c[k, i]:=a[k, i]-s;
end;
for k:=i+1 to (m+1) do
begin
s:=0;
for j:=1 to i-1 do
s:=s+c[i, j]*b[j, k];
b[i, k]:=(a[i, k]- s)/c[i, i];
end;
end;
for i:=2 to (m+1) do
begin
s:=0;
for j:=1 to i-1 do
s:=s+c[i, j]*YY[j];
YY[i]:=(d[i]-s)/c[i, i];
end;
XX[n]:=YY[n];
for i:=1 to n-1 do
begin
s:=0;
for j:=n-i+1 to n do
s:=s+b[n-i, j]*XX[j];
XX[n-i]:=YY[n-i]-s;
end;
for i:=1 to m+1 do
begin
Kovalenko_StringGrid1.Cells[Kovalenko_StringGrid1.colCount;
1,0]: ='a['+FloatToStrF (i, ffGeneral, 6,6)+']';
Kovalenko_StringGrid1.Cells[Kovalenko_StringGrid1.colCount;
1,1]:=FloatToStrF (XX[i], ffGeneral, 6,6);
Kovalenko_StringGrid1.colCount:=Kovalenko_StringGrid1.colCount+1;
end;
Kovalenko_stringGrid2.Cells[0,0]:='X';
Kovalenko_stringGrid2.Cells[0,1]:='f (x)';
q:=x[1];
Kovalenko_chart1.SeriesList.Series[0].Clear;
for k:=1 to 1500 do
begin
s:=0;
for i:=1 to (m+1) do
s:=s+XX[i]*(power (q, i-1)); f:=s;
q:=q+0.002;
Kovalenko_chart1.SeriesList.Series[0]. AddXY (q, s,'', clRED);
Kovalenko_StringGrid2.Cells[Kovalenko_StringGrid2.colCount;
1,0]:=FloatToStrF (q, ffGeneral, 6,6);
Kovalenko_StringGrid2.Cells[Kovalenko_StringGrid2.colCount;
1,1]:=FloatToStrF (f, ffGeneral, 6,6);
Kovalenko_StringGrid2.ColCount:= Kovalenko_StringGrid2.ColCount+1;
end;
{ΠΠ΅ΡΠΎΠ΄ Π·ΠΎΠ»ΠΎΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ}
ax:=1;bx:=2; X1:=0;X2:=0;
while abs (bx-ax)>=r do
begin
X1:=ax+0.382*(bx-ax);
X2:=ax+0.618*(bx-ax);
G1:=0;s:=0;
for i:=1 to n do
s:=s+XX[i]*(power (X1,i-1)); G1:=s;
G2:=0;s:=0;
for i:=1 to n do
s:=s+XX[i]*(power (X2,i-1)); G2:=s;
if (G1)<=(G2) then
begin
ax:=ax;
bx:=X2;
end else
begin
ax:=X1;
bx:=bx;
end;
end;
XXX:=(ax+bx)/2;
YYY:=0;
for i:=1 to n do
YYY:=YYY+XX[i]*(power (XXX, i-1));
Edit1.Text:= FloatToStr (XXX);
Edit2.Text:= FloatToStr (YYY);
Kovalenko_chart1.SeriesList.Series[2]. AddXY (XXX, YYY);
end;
procedure TKovalenko_Form1.Kovalenko_BitBtn1Click (Sender: TObject);
begin
Application.Terminate;
end;
end
4.3 ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ°
4.4 Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ
Π ΠΈΡΡΠ½ΠΎΠΊ 4. ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π΅ [1; 2] -12.324
ΠΡΠ²ΠΎΠ΄:
ΠΠ΅ΡΠΎΠ΄ Π·ΠΎΠ»ΠΎΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΡΠ΅Π²Π½ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΡΡΠ΅Π·ΠΊΠ°. ΠΠΏΠ΅ΡΠ²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΠ» ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ ΠΠ²ΠΊΠ»ΠΈΠ΄ΠΎΠΌ. Π’ΠΎΠ³Π΄Π° ΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΡ Π½Π° ΡΠ°Π²Π½ΡΠ΅ ΠΏΡΡΡ ΡΠ°ΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΡΡΠΈΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ Π·Π²Π΅Π·Π΄Ρ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
5. ΠΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΡΠ°Π³ΠΎΠΌ
5.1 ΠΡΠ°ΡΠΊΠΈΠ΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ
ΠΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΡΡΠΎΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΎΡΠ΅ΠΊ ,…ΡΠ°ΠΊΠΈΡ , ΡΡΠΎ, Ρ. Π΅. ΡΡΠΎΠ±Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ±ΡΠ²Π°Π»Π°. ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΡΠ°ΡΡΠ΅ΡΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΠΎΡΠΊΡ, ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΠ°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ ΡΠΎΡΠ΅ΠΊ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΏΠΎ Π°Π½ΡΠΈΠ³ΡΠ°Π΄ΠΈΠ΅Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ — Π²Π΅ΠΊΡΠΎΡΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅ΠΌΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ. Π’ΠΎΡΠΊΠΈ Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅:
Π³Π΄Π΅ — ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅; - ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅; - ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Π° ΡΠ°Π³Π°; - Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ° Π² ΡΠΎΡΠΊΠ΅; - Π΄Π»ΠΈΠ½Π° Π²Π΅ΠΊΡΠΎΡΠ°-Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ°.
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ° Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅:
Π³Π΄Π΅ ,
;
;
— Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ°Π»Π°Ρ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π΄Π»Ρ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ°.
5.2 ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Buttons, Series;
type
TKovalenko_Form1 = class (TForm)
Kovalenko_Image1: TImage;
Kovalenko_Memo1: TMemo;
Kovalenko_Button1: TButton;
Kovalenko_BitBtn1: TBitBtn;
Kovalenko_Edit1: TEdit;
Kovalenko_Chart1: TChart;
Series1: TLineSeries;
Series2: TPointSeries;
Series3: TPointSeries;
Kovalenko_Chart3: TChart;
Series10: TLineSeries;
Series11: TLineSeries;
Series12: TLineSeries;
Series13: TLineSeries;
Series14: TLineSeries;
Series15: TPointSeries;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
Kovalenko_Chart2: TChart;
Series4: TLineSeries;
Series5: TLineSeries;
Series6: TLineSeries;
Series7: TLineSeries;
Series8: TLineSeries;
Series9: TPointSeries;
procedure Kovalenko_Button1Click (Sender: TObject);
procedure RadioButton1Click (Sender: TObject);
procedure RadioButton2Click (Sender: TObject);
procedure RadioButton3Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const n=2;e=0.0001;
type mass=array[1.2] of real;
var XK, G: mass;
Kovalenko_Form1: TKovalenko_Form1;
implementation
{$R *.dfm}
function f (x:mass):real;
begin
f:=exp (x[1])+sqr (x[1])+sqr (x[2]);
end;
procedure gradient;
var i: integer;fp, fo: real;
begin
for i:=1 to N do
begin
XK[i]: =XK[i]+E;fp:=f (XK);
XK[i]:=XK[i]-2*E;fo:=f (XK);
XK[i]:=XK[i]+E;
G[i]:=(fp-fo)/(2*E);
end;
end;
procedure TKovalenko_Form1.Kovalenko_Button1Click (Sender: TObject);
var gamma, Y, OD, xx1, xx2,yy:real;i, k: integer;XX:mass;
begin
gamma:=1; ;k:=0;
XK[1]: =-2;XK[2]:=2
Kovalenko_Memo1.Lines.Add ('X[1]='+FloatToStr (XK[1]));
Kovalenko_Memo1.Lines.Add ('X[2]='+FloatToStr (XK[2]));
Kovalenko_Chart1.SeriesList.Series[0].AddXY (XK[1], XK[2]);
while gamma>E do
begin
gradient;
OD:=0;
for i:=1 to N do
OD:=OD+sqr (G[i]);
OD:=sqrt (OD);
Y:=F (XK);
for i:=1 to N do
begin
XK[i]: =XK[i]-gamma*G[i]/OD;
Kovalenko_Memo1.Lines.Add ('X['+IntToStr (i)+']='+FloatToStr (XK[i]));
end;
Kovalenko_Memo1.Lines.Add ('ΠΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ f='+FloatToStr (Y));
Kovalenko_Memo1.Lines.Add ('ΠΠΎΠ²ΠΎΠ΅ f='+FloatToStr (F (XK)));
Kovalenko_Memo1.Lines.Add ('Π¨Π°Π³ gamma='+FloatToStr (gamma));
Kovalenko_Chart1.SeriesList.Series[0]. AddXY (XK[1], XK[2]);
if f (XK)
else
begin
for i:=1 to N do
XK[i]: =XK[i]+gamma*G[i]/OD;
gamma:=gamma/2;
kovalenko_Memo1.Lines.Add ('Π£ΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π³Π°
gamma='+FloatToStr (gamma));
k:=k+1;
end;
end;
Kovalenko_Chart2.SeriesList.Series[5]. AddXY (XK[1], Y);
Kovalenko_Chart3.SeriesList.Series[5].AddXY (XK[2], Y);
Kovalenko_Chart1.SeriesList.Series[1].AddXY (XK[1], XK[2]);
Kovalenko_Edit1.Text:='';
Kovalenko_Edit1.Text:='X1='+FloatToStr (XK[1])+'
'+'X2='+FloatToStr (XK[2])+' '+Kovalenko_Edit1.Text+'Y='+FloatToStr (Y);
XK[1]: =-0.5;XK[2]:=0.2;
for k:=0 to 4 do
for i:=0 to 400 do
begin
xx1:=-2*XK[1]+0.01*XK[1]*i;
XX[1]: =xx1;XX[2]:=(k-2)*XK[2];
Kovalenko_Chart2.SeriesList.Series[k].AddXY (xx1,f (XX));
end;
for k:=0 to 4 do
for i:=0 to 400 do
begin
xx2:=-8*XK[2]+0.01*XK[2]*i;
XX[1]: =(k-2)*XK[1];XX[2]:=xx2;
Kovalenko_Chart3.SeriesList.Series[k].AddXY (xx2,f (XX));
end;
end;
procedure TKovalenko_Form1.RadioButton1Click (Sender: TObject);
begin
Kovalenko_Chart1.Visible:=True;
Kovalenko_Chart2.Visible:=False;
Kovalenko_Chart3.Visible:=False;
end;
procedure TKovalenko_Form1.RadioButton2Click (Sender: TObject);
begin
Kovalenko_Chart2.Visible:=True;
Kovalenko_Chart1.Visible:=False;
Kovalenko_Chart3.Visible:=False;
end;
procedure TKovalenko_Form1.RadioButton3Click (Sender: TObject);
begin
Kovalenko_Chart3.Visible:=True;
Kovalenko_Chart1.Visible:=False;
Kovalenko_Chart2.Visible:=False;
end;
end.
5.3 ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ°
5.4 Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ
Π ΠΈΡΡΠ½ΠΎΠΊ 5.1
Π ΠΈΡΡΠ½ΠΎΠΊ 5.2
Π ΠΈΡΡΠ½ΠΎΠΊ 5.3
ΠΡΡ ΠΎΠ΄Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ:
exp (x1)+x22 +x12
ΠΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ:
X1=-0.3517 X2=1.7918 Y=0.8271
ΠΡΠ²ΠΎΠ΄:
ΠΠ°Π½Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ° ΡΠΊΠ°Π»ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ:
1) Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½Π°Ρ ΡΠΊΠ°Π»ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ ΠΈΠΌΠ΅Π΅Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠΎΠΌ ΡΠΊΠ°Π»ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ.
2) ΠΠ°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ ΡΠΊΠ°Π»ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ Π² ΡΠΎΡΠΊΠ΅ Π0 ΡΠ°Π²Π½Π° ΠΌΠΎΠ΄ΡΠ»Ρ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ° ΡΠΊΠ°Π»ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ Π² ΡΡΠΎΠΉ ΡΠΎΡΠΊΠ΅.