. , , ,

,,,

() —

 

 

_________________.

.__________________________.

, ... . .

.__________________________.

 

()

( )

5-

01.02

/ ../------------------------.

/ ../------------------------.


28.X/1999 .


- 1999

 

: , , , Visual Basic for Applications 6.0 , . , , .

1. 

: , , , . .

2.  

 

2.1.

, , , , .

(1)

F(x)=a0+a1x+a2x2++anxn (1)

, .. , , , , 5 , , ( , ) , , 4, .[1] - , . , .

, : , .

2.2.1. ()

, .

, ( ) ( ). .

:

-     F(x) ;

-     Q

-    

[a,b], , ,

.1

-     . ( A)

:

1.   F(b)

2.   (3) b

3.   , F(a) F(b).

4.   (2) a'.

a=a- Da , (2)

b=b- Db , (3)

[a , b], ( ) - A.

5.   [a,b] [a,b] 1-4 , F(b)-F(a) Q. , F(a) F(b).

. F(x)>0, .. b>a. , , a b.

:


y y


F(x) F(x)


x x

) )


y y

F(x) F(x)


x x ) )

) F(x) < 0

F(x) > 0

) F(x) > 0

F(x) > 0

) F(x) < 0

F(x) < 0

) F(x) > 0

F(x) < 0

 

F(x)F(x) > 0

F(x)F(x) < 0

, () , , . .

 

2 . F(x), , .. ; , , , , . , , , , .. .


2.2.2.

, .. . , . :

-     F(x);

-     Q;

-     [ a , b ], .

-     z, [ a , b ] ( z )

(1) X Z, :

x1=F(z) (4)

, ,

x2=F(x1)

x3=F(x2) (5)

xn=F(xn-1)

, , , (6)

limxn=A, nv (6)

.

, , :

-     ( , , )

-     , , .

.


2.2.3. ( )


.2

( ) , .. .

:

-     F(x);

-     Q;

-     [ a , b ], .

1.   , [a , b], .. = (a + b ) / 2 (7)

2.   F(a), F(b), F(E), : F(E)>Q, . F(E)<Q, .. , : [a , E] [E , b] F(a), F(b), F(E). , ( Š - ). , , , .. a, b.

3.   1.

, : (8)

: (8),

(9),


(9):

(1) .

, , (, , , ), , , , . .

2.2.4.

, . , . :

F(x) = 2x3-11x2+20x-12 (11)

: F(x) = (x+2)2(2x-3) (12)

n-, , n , (12) , F(x) 2 1,5, 2 , .. . 2 , ..

. : (1) (x+h1)(x+h2)(x+hn)*H = 0 (13) ,

F(x) = (x+h)(bn-1xn-1+b1)+b0 (14)

h1hn , , ( , .. , (13). , h , .

(14) :

bn=an

bn-1=bnh+an-1 (15)

bn-2=bn-1h+an-2

, :

1.   ;

2.   ;

3.   (14) (15) , 1 .

4.   2.

5.   , .

.

 

3. 

Visual Basic for Applications , .

 

3.1.

- , . , , .

. : ( ), .

Public function F(x). , .

Public function DetectBorders. , ( 7 , 8, 9 ).

Public sub Gra , .

3.2.

, . :

-     , , ;

-     (.. );

-     (

3.2.1. Form_Main

, , , .

 


3.2.2. Form_Koeff

.

. 0 0.


3.2.3. Form_Mnogo


,

3.2.4. Form_WP

.


3.2.5. Form_Korni

(Sub FindKor) /.


, .

Public sub FF* , .

Public sub Horda_Kasatelnye , .

Public sub Find_Kor , .

. 2. . , .

4. 

VI Function 2.0 , (1) :

     ;

     ()

, .

.

5. 

1.   .. , .. . , , 1979

2.   .. . , , 1978

3.   .., .., .. . , , 1976

4.   . . Visual Basic for Applications 6.0 , , BHV

6.

6.1.

F(x) = 3x2+5x-8

. 6.1

Q = 0,0001

x = -2,66666669921875

x= 0,99991015625

x = -2,66667654214111

x= 0,99981915025


. 6.1

6.2. -

A =

=

C

F(x) -



6.3. -

A =

=

F(x) -

 



6.4 .

, :

, , ( F(X), F(X), F(X)

,

,

: 2 , . , , , .

. : .

6.5.

UNIT1

Dim curcell As Range

Dim ma As Double

Dim Ao As Double

Public Function F(x As Variant)

F = (x ^ 20 * Range("a20").Value) + (x ^ 19 * Range("a19").Value) + (x ^ 18 * Range("a18").Value) + (x ^ 17 * Range("a17").Value) + (x ^ 16 * Range("a16").Value) + (x ^ 15 * Range("a15").Value) + (x ^ 14 * Range("a14").Value) + (x ^ 13 * Range("a13").Value) + (x ^ 12 * Range("a12").Value) + (x ^ 11 * Range("a11").Value) + (x ^ 10 * Range("a10").Value) + (x ^ 9 * Range("a9").Value) + (x ^ 8 * Range("a8").Value) + (x ^ 7 * Range("a7").Value) + (x ^ 6 * Range("a6").Value) + (x ^ 5 * Range("a5").Value) + (x ^ 4 * Range("a4").Value) + (x ^ 3 * Range("a3").Value) + (x ^ 2 * Range("a2").Value) + (x * Range("a1").Value) + Range("a21").Value

End Function

Public Function F1(x As Variant)

F1 = (x ^ 20 * Range("j20").Value) + (x ^ 19 * Range("j19").Value) + (x ^ 18 * Range("j18").Value) + (x ^ 17 * Range("j17").Value) + (x ^ 16 * Range("j16").Value) + (x ^ 15 * Range("j15").Value) + (x ^ 14 * Range("j14").Value) + (x ^ 13 * Range("j13").Value) + (x ^ 12 * Range("j12").Value) + (x ^ 11 * Range("j11").Value) + (x ^ 10 * Range("j10").Value) + (x ^ 9 * Range("j9").Value) + (x ^ 8 * Range("j8").Value) + (x ^ 7 * Range("j7").Value) + (x ^ 6 * Range("j6").Value) + (x ^ 5 * Range("j5").Value) + (x ^ 4 * Range("j4").Value) + (x ^ 3 * Range("j3").Value) + (x ^ 2 * Range("j2").Value) + (x * Range("j1").Value) + Range("j21").Value

End Function

Public Function F2(x As Variant)

F2 = (x ^ 20 * Range("m20").Value) + (x ^ 19 * Range("m19").Value) + (x ^ 18 * Range("m18").Value) + (x ^ 17 * Range("m17").Value) + (x ^ 16 * Range("m16").Value) + (x ^ 15 * Range("m15").Value) + (x ^ 14 * Range("m14").Value) + (x ^ 13 * Range("m13").Value) + (x ^ 12 * Range("m12").Value) + (x ^ 11 * Range("m11").Value) + (x ^ 10 * Range("m10").Value) + (x ^ 9 * Range("m9").Value) + (x ^ 8 * Range("m8").Value) + (x ^ 7 * Range("m7").Value) + (x ^ 6 * Range("m6").Value) + (x ^ 5 * Range("m5").Value) + (x ^ 4 * Range("m4").Value) + (x ^ 3 * Range("m3").Value) + (x ^ 2 * Range("m2").Value) + (x * Range("m1").Value) + Range("m21").Value

End Function

Public Sub Gra()

Sheets("1").Select

Range("e1").Select

For i = -10 To 10

ActiveCell.Value = F(i)

ActiveCell.Cells(2).Select

Next i

End Sub

Public Function DetectBorders()

'

ma = 0

For Each curcell In Range("Koeffs")

If curcell.Value > ma Then ma = curcell.Value

If curcell.Value <> 0 Then Ao = curcell.Value

Next curcell

DetectBorders = 1 + (ma * Ao)

End Function

UNIT2

Sub auto_open()

Sheets("1").Select

Form_Main.Show

End Sub

FORM_ABOUT

Private Sub CommandButton1_Click()

Form_About.Hide

End Sub

FORM_KOEFF

Private Sub CommandButton1_Click()

ko = TextBox1.Value

st = TextBox2.Value

Select Case st

Case 0

Range("A21").Value = ko

Case 1

Range("A1") = ko

Case 2

Range("A2") = ko

Case 3

Range("A3") = ko

Case 4

Range("A4") = ko

Case 5

Range("A5") = ko

Case 6

Range("A6") = ko

Case 7

Range("A7") = ko

Case 8

Range("A8") = ko

Case 9

Range("A9") = ko

Case 10

Range("A10") = ko

Case 11

Range("A11") = ko

Case 12

Range("A12") = ko

Case 13

Range("A13") = ko

Case 14

Range("A14") = ko

Case 15

Range("A15") = ko

Case 16

Range("A16") = ko

Case 17

Range("A17") = ko

Case 18

Range("A18") = ko

Case 19

Range("A19") = ko

Case 20

Range("A20") = ko

Case Else

MsgBox (" ")

st = st - 1

End Select

TextBox1.Value = 0

TextBox2.Value = st + 1

End Sub

Private Sub CommandButton2_Click()

Form_Koeff.Hide

End Sub

Private Sub CommandButton3_Click()

Range("a1").Value = 0

Range("a2").Value = 0

Range("a3").Value = 0

Range("a4").Value = 0

Range("a5").Value = 0

Range("a6").Value = 0

Range("a7").Value = 0

Range("a8").Value = 0

Range("a9").Value = 0

Range("a10").Value = 0

Range("a11").Value = 0

Range("a12").Value = 0

Range("a13").Value = 0

Range("a14").Value = 0

Range("a15").Value = 0

Range("a16").Value = 0

Range("a17").Value = 0

Range("a18").Value = 0

Range("a19").Value = 0

Range("a20").Value = 0

Range("a21").Value = 0

End Sub

Private Sub UserForm_initialize()

st = 0

ko = 0

TextBox1.Value = ko

TextBox2.Value = st

End Sub

FORM_KORNI

Private Sub CommandButton1_Click()

ListBox1.Clear

TextBox1.Value = 0

Form_Korni.Hide

End Sub

Private Sub CommandButton2_Click()

Range("Toc").Value = TextBox1.Value

Call FindKor

'Call Perenos

End Sub

Sub FindKor()

Range("Curright") = Range("Right").Value

Range("Curleft") = -Range("Right").Value - 0.333

'Range("right").Value = DetectBorders

Range("Stepleft").Value = Range("right").Value * (-1) - 0.333

Do

nashli = False

Call MoveLe

If Sgn(F(Range("curleft").Value)) = Sgn(F(Range("curright").Value)) Then

End If

If Sgn(F(Range("curleft").Value)) <> Sgn(F(Range("curright").Value)) Then

Do

' nashli = True

Range("Curcenter").Value = ((Range("curleft").Value) + (Range("curright").Value)) / 2

If Abs(F(Range("Curcenter").Value)) > Range("toc").Value Then If Sgn(F(Range("curleft").Value)) <> Sgn(F(Range("curcenter").Value)) Then Range("curright").Value = Range("curcenter").Value Else: Range("curleft").Value = Range("curcenter").Value

If Abs(F(Range("Curcenter").Value)) <= Range("toc").Value Then ListBox1.AddItem (Range("Curcenter").Value)

Range("Koren").Value = Range("Curcenter").Value

Loop Until Abs(F(Range("Curcenter").Value)) <= Range("toc").Value

End If

Loop Until Range("Stepleft").Value > Range("right").Value Or nashli = True

End Sub

Sub Horda_Kas()

'Sub FindKor()

Range("Curright") = Range("Right").Value

Range("Curleft") = -Range("Right").Value - 0.333

'Range("right").Value = DetectBorders

Range("Stepleft").Value = Range("right").Value * (-1) - 0.333

Do

MoveLe

If Sgn(F(Range("curleft").Value)) <> Sgn(F(Range("curright").Value)) Then

Do

' nashli = True

If F1(Range("curleft").Value) * F2(Range("curleft").Value) > 0 Then

Range("curleft").Value = Range("curleft").Value - ((Range("curright").Value - Range("curleft").Value) * (F(Range("Curleft").Value) / (F(Range("Curright").Value - F(Range("Curleft").Value)))))

Range("Curright").Value = Range("curright").Value - F(Range("curright").Value) / F1(Range("curright").Value)

End If

If F1(Range("curleft").Value) * F2(Range("curleft").Value) < 0 Then

Range("curright").Value = Range("curleft").Value - ((Range("curright").Value - Range("curleft").Value) * (F(Range("Curleft").Value) / (F(Range("Curright").Value - F(Range("Curleft").Value)))))

Range("Curleft").Value = Range("curright").Value - F(Range("curright").Value) / F1(Range("curright").Value)

End If

If Abs(Abs(F(Range("Curright").Value))) - Abs(F(Range("Curleft").Value)) <= Range("toc").Value Then

'MsgBox (Range("curleft").Value)

ListBox1.AddItem (Range("Curright").Value)

'If ((Range("Curleft").Value) + (Range("Curright").Value)) > 0 Then ListBox1.AddItem (((Range("Curleft").Value) + (Range("Curright").Value)) / 2)

'If ((Range("Curleft").Value) + (Range("Curright").Value)) < 0 Then ListBox1.AddItem (((Range("Curleft").Value) + (Range("Curright").Value)) / 2)

Range("Koren").Value = Range("Curleft").Value

End If

Loop Until Abs(F(Range("Curright").Value)) - Abs(F(Range("Curleft").Value)) <= Range("toc").Value

End If

Loop Until Range("Stepleft").Value > Range("right").Value Or nashli = True

End Sub

Sub MoveLe()

Range("stepleft").Value = Range("stepleft").Value + 0.333

Range("curLeft").Value = Range("stepleft").Value

Range("Curright").Value = Range("Curleft").Value + 0.333

Range("Curcenter").Value = ((Range("curleft").Value) + (Range("curright").Value)) / 2

End Sub

Private Sub CommandButton3_Click()

Horda_Kas

End Sub

Private Sub UserForm_Deactivate()

ListBox1.Clear

TextBox1.Value = 0

End Sub

Sub Perenos()

Range("a1").Value = Range("L1").Value

Range("a2").Value = Range("L2").Value

Range("a3").Value = Range("L3").Value

Range("a4").Value = Range("L4").Value

Range("a5").Value = Range("L5").Value

Range("a6").Value = Range("L6").Value

Range("a7").Value = Range("L7").Value

Range("a8").Value = Range("L8").Value

Range("a9").Value = Range("L9").Value

Range("a10").Value = Range("L10").Value

Range("a11").Value = Range("L11").Value

Range("a12").Value = Range("L12").Value

Range("a13").Value = Range("L13").Value

Range("a14").Value = Range("L14").Value

Range("a15").Value = Range("L15").Value

Range("a16").Value = Range("L16").Value

Range("a17").Value = Range("L17").Value

Range("a18").Value = Range("L18").Value

Range("a19").Value = Range("L19").Value

End Sub

FORM_MAIN

Private Sub CommandButton1_Click()

Form_Koeff.Show

End Sub

Private Sub CommandButton2_Click()

Form_Mnogo.Show

End Sub

Private Sub CommandButton3_Click()

Gra

Form_Main.Height = 84

Sheets("D1").Select

Form_WP.Show

Form_Main.Height = 360

Sheets("1").Select

End Sub

Private Sub CommandButton4_Click()

Form_Korni.Show

End Sub

Private Sub CommandButton5_Click()

Application.Quit

End Sub

Private Sub CommandButton7_Click()

Form_About.Show

End Sub

Private Sub CommandButton8_Click()

ActiveWorkbook.Save

End Sub

Private Sub UserForm_initialize()

Sheets("1").Select

Form_Main.Height = 360

End Sub

FORM_MNOGO

Dim mn As String

Private Sub CommandButton1_Click()

Form_Mnogo.Hide

End Sub

Private Sub UserForm_activate()

mn = "F(x)="

If Range("a20") > 0 Then mn = mn + Range("a20").Text + "X^20"

If Range("a20") < 0 Then mn = mn + Range("a20").Text + "X^20"

If Range("a19") > 0 Then mn = mn + " + " + Range("a19").Text + "X^19"

If Range("a19") < 0 Then mn = mn + Range("a19").Text + "X^19"

If Range("a18") > 0 Then mn = mn + " + " + Range("a18").Text + "X^18"

If Range("a18") < 0 Then mn = mn + Range("a18").Text + "X^18"

If Range("a17") > 0 Then mn = mn + " + " + Range("a17").Text + "X^17"

If Range("a17") < 0 Then mn = mn + Range("a17").Text + "X^17"

If Range("a16") > 0 Then mn = mn + " + " + Range("a16").Text + "X^16"

If Range("a16") < 0 Then mn = mn + Range("a16").Text + "X^16"

If Range("a15") > 0 Then mn = mn + " + " + Range("a15").Text + "X^15"

If Range("a15") < 0 Then mn = mn + Range("a15").Text + "X^15"

If Range("a14") > 0 Then mn = mn + " + " + Range("a14").Text + "X^14"

If Range("a14") < 0 Then mn = mn + Range("a14").Text + "X^14"

If Range("a13") > 0 Then mn = mn + " + " + Range("a13").Text + "X^13"

If Range("a13") < 0 Then mn = mn + Range("a13").Text + "X^13"

If Range("a12") > 0 Then mn = mn + " + " + Range("a12").Text + "X^12"

If Range("a12") < 0 Then mn = mn + Range("a12").Text + "X^12"

If Range("a11") > 0 Then mn = mn + " + " + Range("a11").Text + "X^11"

If Range("a11") < 0 Then mn = mn + Range("a11").Text + "X^11"

If Range("a10") > 0 Then mn = mn + " + " + Range("a10").Text + "X^10"

If Range("a10") < 0 Then mn = mn + Range("a10").Text + "X^10"

If Range("a9") > 0 Then mn = mn + " + " + Range("a9").Text + "X^9"

If Range("a9") < 0 Then mn = mn + Range("a9").Text + "X^9"

If Range("a8") > 0 Then mn = mn + " + " + Range("a8").Text + "X^8"

If Range("a8") < 0 Then mn = mn + Range("a8").Text + "X^8"

If Range("a7") > 0 Then mn = mn + " + " + Range("a7").Text + "X^7"

If Range("a7") < 0 Then mn = mn + Range("a7").Text + "X^7"

If Range("a6") > 0 Then mn = mn + " + " + Range("a6").Text + "X^6"

If Range("a6") < 0 Then mn = mn + Range("a6").Text + "X^6"

If Range("a5") > 0 Then mn = mn + " + " + Range("a5").Text + "X^5"

If Range("a5") < 0 Then mn = mn + Range("a5").Text + "X^5"

If Range("a4") > 0 Then mn = mn + " + " + Range("a4").Text + "X^4"

If Range("a4") < 0 Then mn = mn + Range("a4").Text + "X^4"

If Range("a3") > 0 Then mn = mn + " + " + Range("a3").Text + "X^3"

If Range("a3") < 0 Then mn = mn + Range("a3").Text + "X^3"

If Range("a2") > 0 Then mn = mn + " + " + Range("a2").Text + "X^2"

If Range("a2") < 0 Then mn = mn + Range("a2").Text + "X^2"

If Range("a1") > 0 Then mn = mn + " + " + Range("a1").Text + "X"

If Range("a1") < 0 Then mn = mn + Range("a8").Text + "X"

If Range("a21") > 0 Then mn = mn + " + " + Range("a21").Text

If Range("a21") < 0 Then mn = mn + Range("a21").Text

TextBox1.Value = mn

End Sub

FORM_WP

Private Sub Label1_Click()

Call Gra

End Sub

Private Sub CommandButton1_Click()

Sheets("D1").Print

End Sub

Private Sub CommandButton2_Click()

Form_WP.Hide

Call Gra

End Sub

Private Sub UserForm_Click()

Form_WP.Hide

End Sub

____________________________

VoID InVaSiON HG

VI Function 2.0 beta



[1] .

_________________. .__________

 

 

 

! , , , .
. , :