RSS    

   НАХОЖДЕНИЕ ВСЕХ ДЕЙСТВИТЕЛЬНЫХ КОРНЕЙ АЛГЕБРАИЧЕСКОГО МНОГОЧЛЕНА МЕТОДОМ ДЕЛЕНИЯ ОТРЕЗКА ПОПОЛАМ (БИСЕКЦИИ) И МЕТОДОМ ХОРД И КАСАТЕЛЬНЫХ С УКАЗАННОЙ ТОЧНОСТЬЮ И УЧЕТОМ ВОЗМОЖНОЙ КРАТНОСТИ КОРНЕЙ - (курсовая)

p>Поиск корней упрощен до предела. Вам достаточно указать неоюходимую точность и выбрать метод поиска: бисекционый или комбинированный.

    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("Koren"). Value = Range("Curcenter"). Value

Loop Until Abs(F(Range("Curcenter"). 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

Страницы: 1, 2, 3, 4


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.