ФедералЃEЃE АвиациоыLЃE СЃEжбЃEРъBсиЃE/b>
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ГРАЖДАНСКОЙ АВИАЦИИ
Кафедра ЃEикЃEдньH ЃEтеЃEтиЃE
Курсовая работа защищеъь
ЃEъGенЃEЃE_________________.
.__________________________.
РукьAьCителЃE/b>
доцеыQ, ЃEЃEЃEЛукинЃEО. П.
.__________________________.
ЃEдписЃE/i>
КУРСОВАЯ РАБОТА
ЃE теЃE
НАХОЖДЕНИЕ ВСЕХ ДЕЙСТВИТЕЛЬНЫХ КОРНЕЙ АЛГЕБРАИЧЕСКОГО МНОГОЧЛЕНА МЕТОДОМ ДЕЛЕНИЯ ОТРЕЗКА ПОПОЛАМ (БИСЕКЦИИ) И МЕТОДОМ ХОРД И КАСАТЕЛЬНЫХ С УКАЗАННОЙ ТОЧНОСТЬЮ И УЧЕТОМ ВОЗМОЖНОЙ КРАТНОСТИ КОРНЕЙ
(ПЃEснителЃEЃE заЃEскЃEЃE ЃEрсьAьH работе ЃE дисципЃEыD «ЧисЃEыLые ЃEтоды»)
РабъCу выЃEЃEилЃE/b>
студенты 5-го ЃEрсЃE/b>
специаЃEыMстЃE 01.02
КьFЃEЃE СергеЃEАЃEЃEандрьAич
/КьFЃEЃE С.А./------------------------.
СеменчихиЃE ВЃEдиЃEЃEВЃEдиЃEровиЃE/b>
/СеменчихиЃE В.В./------------------------.
28.X/1999 года.
МОСКВА - 1999
АННОТАЦИЯ
В даыLьH ЃEрсьAьH работе рассЃEтрен ЃEинциЃEъьхожденЃE ЃEрней алгебраическьBЃEЃEьBъHЃEъь следЃEщиЃE численыZЃE ЃEтодаЃE: ЃEтоЃEбисеЃEии, ЃEтоЃEхорд ЃEЃEсатеЃEыZЃE ЃEтоЃEразльEенЃE ъь ЃEьEителЃEЃEучетьK ъ@редеЃEемьH точнъBти ЃEЃEьAерЃE ЃEатыMстЃEЃEрней, ЃEтаЃEЃEЃEсредЃEVisual Basic for Applications 6.0 быЃE разрабъCанЃEЃEьBраЃEЃE реализЃEщая этоЃEЃEисЃEЃEЃEьAерЃE. В ЃEяснителЃEьH заЃEскЃEЃEивьCитЃE ъ@исание ЃEЃEсаЃEЃE численыZЃEЃEтодоЃE таЃEЃEЃEьBраЃEЃE вкЃEчая ЃEимерЃEЃE«эЃEаныZЃEЃEЃEи».
1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ
Разработать ЃEьBраЃEЃEдля вычисленЃE ЃEрней алгебраическьBЃEЃEьBъHЃEъь следЃEщиЃE численыZЃE ЃEтодаЃE : ЃEтодоЃE ЃEЃEвиыLьBЃEдеЃEыGя, ЃEтодоЃEхорд ЃEЃEсатеЃEыZЃE ЃEтодоЃEразльEенЃE ъь ЃEьEителЃE ЃEтаЃEЃEь@есЃEчить вычисление значений ЃEрней ЃEуказываеЃEЃE точнъBтью ЃEЃEьAерЃE ЃEатыMстЃEЃEрней. Среда разрабъCЃE ЃEьBраЃEЃEЃEЃEьGзвьJЃEЃE.
2. ПРЕДМЕТНАЯ ОБЛАСТЬ
2.1. ОЃEсаыGЃEчисленыZЃEЃEтодоЃE/b>
ЧисЃEыLые ЃEтоды ЃEзвьJяюЃEъьйтЃEрешеыGя ъ@редеЃEыLых задаЃE зараыDЃEзнЃE, чтЃEЃEЃEчеыLые резуЃEтаты будуЃEвычисленЃEЃE ъ@редеЃEыLьH ЃEгрешыMстЃE, ЃEэтоЃE для ЃEьBих численыZЃEЃEтодоЃEыDь@ходиЃE зараыDЃE знатЃE«урьAенЃEточнъBти», ЃEтороЃE будеЃEсоъCветствьAатЃEЃEЃEчеыLьD решеыGЃE
В этоЃEсвязи задача ъьхожденЃE ЃEрней ЃEьBъHЃEъь вида (1)
F(x)=a0
+a1
x+a2
x2
+ЃEan
xn
(1)
ЃEедставЃEет ъBь@ый интереЃE ЃEЃE формулЃEъьхожденЃE ЃEрней даже ЃEбическьBЃEуравыDыGя достатъHыM сльEыZ, ЃEесЃE ыDь@ходиЃE ъCысЃEть ЃEрнЃE ЃEьBъHЃEъь, степенЃEЃEторого равнЃE ъьЃEимер, 5 ЃEто беЃEЃEЃEщи численыZЃE ЃEтодоЃEыD ь@ьHтись, теЃEбоЃE, чтЃEвероятнъBть ъьЃEчия ЃEтаЃEго ЃEьBъHЃEъь ъьтураЃEыZЃE(илЃEцеЃEЃE илЃEточных ЃEрней ЃEЃE«ЃEроткьH» дрь@ыMЃEчастЃE) довоЃEыM ЃEЃE, ЃEформул для ъьхожденЃE ЃEрней уравыDыGя степенЃE ЃEевышЃEщеЃE4, ыD существует.
[1]
ДЃEфаЃEЃEвсЃEдаЃEыDйшие ъ@ерации будуЃEсвьCитЃEя ЃEшь ЃEутъHыDыGю ЃEрней, интервалЃEЃEторыЃEЃEибЃEзитеЃEыM известыZ зараыDЃE Проще всегЃEэти «ЃEибЃEзитеЃEыZе» ЃEрнЃEъьходить, исЃEЃEзуя графичесЃEЃEЃEтоды.
ДЃE ъьхожденЃE ЃEрней ЃEьBъHЃEъь существует ыDскьJЃEЃEчисленыZЃEЃEтодоЃE ыM ЃE ъBтаыMвиЃEя ъь теЃEиз ыGЃE ЃEтоде итераций, ЃEтоде хорд ЃEЃEсатеЃEыZЃEЃEЃEтоде ЃEЃEвиыLьBЃEдеЃEыGя.
2.2.1. МетьC хорд ЃEЃEсатеЃEыZЃE (ЃEЃEинирьAаныZЃE
ДаныZЃEЃEтоЃEъBыMваЃEъь ЃEстроении схематичесЃEго графикЃEфуыIциЃE ъ@редеЃEыGЃEинтервальA егЃEЃEресечеыGя ЃEъBЃE абсцисЃEЃEЃEследЃEщиЃE«сжатиеЃE этого интервалЃEЃEЃEЃEЃEщи строимых хорд ЃEЃEсатеЃEыZЃE ЃEграфикЃEэтоЃEфуыIциЃE
НадЃEъCЃEтить, чтЃEсуществуюЃEтаЃEЃE ъCдеЃEыM ЃEтоЃEхорд (дает значение ЃEрня ЃEыDдостатЃEЃE ЃEЃEтоЃEЃEсатеЃEыZЃE(ЃE избыткьK). ОднакЃEЃEеиЃEщество ЃEЃEинирьAаныMго ЃEтода заЃEючаетЃE ЃE «двустороыLем сжатии» рассЃEтриваеЃEго ъCрезкЃE
РассмъCриЃEследЃEщиЃEслучай:
- даъь фуыIция F(x) ЃEЃEстроен ее график;
- ъ@редеЃEъь доЃEстимЃEЃEгрешыMстЃEQ
-
риЃE1
- существует ЃEреы[ рассЃEтриваеЃEго ЃEьBъHЃEъь. (ь@ьFъьчиЃEегЃEчереЃEA)
ДалЃEейшиЃEалгоритм свьCитЃE ЃEследЃEщиЃE действЃEЃE
1. строим ЃEсатеЃEыRю ЃEграфикЃEфуыIциЃE ЃEточкЃEF(b)
2. вычисляем ЃEъAдиъьту ЃEЃEресечеыGя ЃEсатеЃEыMЃEЃEъBЃE абсцисЃEЃE формулЃE(3) ЃEь@ьFъьчаем ее череЃEbЃE/p>
3. строим ЃEграфикЃE фуыIциЃEхордЃE ЃEъFьCящую череЃEточкЃEF(a) ЃEF(b).
4. ВычисЃEем точкЃE ЃEресечеыGя хордЃEЃEъBЃE абсцисЃEЃE формулЃE(2) ЃEь@ьFъьчаем ее череЃEa'.
aЃEa- Da , гдЃE/b>
(2)
bЃEb- Db , гдЃE/b> (3)
Таким ь@разоЃEЃE ЃEЃEчаем ыMвыЃE ъCрезоЃE[aЃE, b’], ЃEтръVЃE(ЃE ъ@редеЃEыGяЃE хордЃEЃEЃEсатеЃEыMЃE ЃE-ЃEежыDЃE содержЃEрешеыGЃEуравыDыGя A.
5. ТеперЃEЃEинимаеЃE ъCрезоЃE [aЃEb’] за ыMвыЃEъCрезоЃE [a,b] ЃEЃEвтъAяем шаги 1-4 до теЃEЃEЃE ЃEЃE разнъBть F(b)-F(a) ыD станет ЃEы[ше ЃEрвЃEачалЃEЃE заЃEжеыLьH ЃEгрешыMстЃEQ. Отметим таЃEЃE чтЃEЃEслЃEэтого реЃEЃEыCуется ЃEЃEчестве исЃEЃEго решеыGя взять средыDЃEарифЃEтическьD F(a) ЃE F(b).
Замечание ЃEЃEтоду хорд ЃE ЃEсатеЃEыZЃE
В рассЃEтреныMЃEслучае ЃEьGзвьCъья FЃEx)>0, ЃEЃE график «выЃEЃEый» ЃEb>a. При работе ЃEЃEждым ъCдеЃEыZЃEслучаеЃEыDь@ходиЃE ъьходить ЃEьGзвьCыZЃEфуыIциЃE ЃEрвьBЃEЃEвтъAьBЃEЃEЃEдкьA ЃE соь@разуясь ЃEее знакьK, ъ@редеЃEть a ЃEb.
ВьFЃEжнЃEчетыре случЃE:
y y
F(x) F(x)
x x
ЃEЃE
y y
F(x) F(x)
x x ЃEЃE
ЃE FЃEx) < 0
F’’(x) > 0
ЃE FЃEx) > 0
F’’(x) > 0
ЃE FЃEx) < 0
F’’(x) < 0
ЃE FЃEx) > 0
F’’(x) < 0
СЃEсоЃEхорд
|
СЃEсоЃEЃEсатеЃEыZЃE/b>
|
|
FЃEx)F’’(x) > 0
|
С ыDдостатЃEЃE/td> | С избыткьK |
FЃEx)F’’(x) < 0
|
С ибытЃEЃE/td> | С ыDдостатЃEЃE/td> |
Таким ь@разоЃE есЃE хордЃE(ЃEсатеЃEъья) дает значение ЃEрня ЃEизбыткьK, то этоЃEЃEреы[ берется ЃEЃEчестве ыMвоЃEЃEавьH границЃE ЃEесЃE ЃEыDдостатЃEЃEЃEто ЃEвоЃE В ь@ьGЃEслучЃEЃEточный ЃEреы[ ЃEжиЃE ЃEждЃEточкамЃEЃEресечеыGя хордЃEЃEЃEсатеЃEыMЃEЃEъBЃE абсцисЃE
Замечание 2 ЃEЃEтоду хорд ЃE ЃEсатеЃEыZЃE
Так ЃEЃEдля решеыGя ЃEставЃEыLьH задачи требуется ъCысЃEыGЃEЃEьGзвьCыMЃEфуыIциЃEF(x), ЃEтоЃEхорд ЃEЃEсатеЃEыZЃEдостатъHыM трудыM реализуеЃEъь ЃEьBраЃEыMЃEурьAыD, ЃEЃE ЃEавилЃEвычисленЃE ЃEьGзвьCыZЃEЃE ь@щеЃEвиде довоЃEыM грьKьFдки для «ЃEыGЃEыGя» ЭВМ; ЃEЃEыDЃEсредствеыLьK указании ЃEьGзвьCыMЃEдля ЃEждьH степенЃEЃEьBъHЃEъь ЃEЃEть ЃEЃEЃEтера серьезыM загружается, чтЃEъHенЃEзаЃEдляет работу, ЃEзадаыGЃEфуыIциЃEЃE соъCветственыM, ее ЃEьGзвьCыMЃE ыDЃEсредствеыLЃEЃEЃEьBраЃEыMЃEЃEде ЃEыDдоЃEстимЃE ОднакЃE исЃEЃEзуя даыLый ЃEтоЃE схьCимъBть интервалЃEЃEЃEрню ЃEьGсхьCит ъьибьJее быстро, ъBь@еныM есЃE совместить ЃEтоЃEхорд ЃEЃEсатеЃEыZЃEЃEЃEтодоЃEбисеЃEии, ЃEЃE середиъь ыMвого ъCрезкЃEзачастЃE дает впьJыD удьAЃEтвъAителЃEьD решеыGЃE
2.2.2. МетьC итераций
ПятыЃEшаЃEалгоритмЃEхорд ЃE ЃEсатеЃEыZЃEъ@редеЃEЃEвозвраЃEЃEЃEрвьKЃEшагу ЃEЃEследЃEщую циЃEичыMстЃEхода, ЃEЃE ЃEтоЃEхорд ЃEЃEсатеЃEыZЃEявляЃEя итерациоыLым. ДругоЃEЃEтоЃE таЃEЃEъBыMваыLый ъь ЃEвтъAах таЃEЃEбыЃEъьзван ЃE«ЃEтоЃEитераций». СутЃEегЃEзаЃEючаетЃE ЃEследЃEщеЃE
- даъь фуыIция F(x);
- ъ@редеЃEъь доЃEстимЃEЃEгрешыMстЃEQ;
- ъ@редеЃEЃE ыDЃEторыЃEинтервал [ a , b ], точнЃEсодержащий решеыGЃEуравыDыGя.
- ОЃEеделенЃE ыDЃEтороЃEчислЃEz, ЃEинадЃEжащеЃE[ a , b ] (ъьзовеЃEz «ыRЃEвыЃEЃEибЃEжеыGем»)
ДЃE ЃEЃEчеыGя следЃEщего ЃEибЃEжеыGя ЃEдставиЃEЃEформулЃE(1) вместо X Z, ЃEЃEчиЃE
x1
=F(z) (4)
ЃE ЃEьCьJжая анальBичыM,
x2
=F(x1
)
x3
=F(x2
) (5)
ЃE/b>
xn
=F(xn-1
)
Таким ь@разоЃE ЃEЃEчаем ыDЃEторую ЃEследьAателЃEъBть, ЃE есЃE ее ЃEедел (6)
limxn
=A, n®v (6)
то А являетЃE исЃEЃEЃEЃEрнем.
ДаныZЃEЃEтоЃEявляетЃE исЃEючитеЃEыM аналитичесЃEЃE чтЃEупрощает егЃEЃEшиыLЃE реализацЃE, ьCъьЃE содержит следЃEщиЃE ыDдостатЃE:
- ыDь@ходиЃEстЃE выбора ыRЃEвого ЃEибЃEжеыGя (ведь то, чтЃEинтуитивыM для чеЃEвеЃE, для ЭВМ ЃEжеЃEстатЃEдовоЃEыM сльEыMЃEзадачеЃE
- ъьЃEыDЃE ЃEЃEчеыLЃE ЃEследьAателЃEъBть ЃEъBто ЃEжеЃEыD схьCитЃEя, ЃEтогдЃEрешеыGЃE ъьйденЃEыD будеЃE
Эти ЃEыQраргументы сталЃEъBыMваыGем для ъCЃEЃEенЃE ЃEтода итераций ЃEЃEвыборе алгоритмизируеЃEго ЃEтода.
2.2.3. МетьC ЃEЃEвиыLьBЃEдеЃEыGя (ЃEтоЃE бисеЃEии)
МетьC ЃEЃEвиыLьBЃEдеЃEыGя (известыZЃE ещЃEЃEЃEЃE«ЃEтоЃEдеЃEыGя ъCрезкЃEЃEЃEЃEЃE) таЃEЃEявляетЃE реЃEрсивыZЃE ЃEЃE ЃEедусЃEтриваеЃEЃEвтъAение ЃEучетьK ЃEЃEчеыLых резуЃEтатоЃE
СутЃEЃEтода ЃEЃEвиыLьBЃEдеЃEыGя заЃEючаетЃE ЃEследЃEщеЃE
- даъь фуыIция F(x);
- ъ@редеЃEъь доЃEстимЃEЃEгрешыMстЃEQ;
- ъ@редеЃEЃE ыDЃEторыЃEинтервал [ a , b ], точнЃEсодержащий решеыGЃEуравыDыGя.
1. ВычисЃEем значение ЃEъAдиъьты Е, беЃE середиыR ъCрезкЃE[a , b], ЃEЃE Е= (a + b ) / 2 (7)
2. ВычисЃEем значенЃE F(a), F(b), F(E), ЃEъBуществЃEем следЃEщую ЃEьAерЃE: ЕслЃEF(E)>Q, то ЃEреы[ ЃEуказаныMЃEточнъBтью ъьйден. ЕслЃEF(E)<Q, ЃEЃE ыDь@ходиЃEя точнъBть ещЃEыD достигыRта, то формируеЃEдвЃEинтервалЃE [a , E] ЃE[E , b] ЃEьAеряем знакЃEF(a), F(b), F(E). НЃEЃEыUах ьCыMго из этиЃEинтервальA знакЃEфуыIциЃEбудуЃEьCинакьAЃE ЃEъь другЃEразличыZ (иначЃEЕ - исЃEЃEЃEЃEреы[). И именыM то интервал, ъь ЃEыUахЃEторого знакЃEразличыZ, ЃE береЃEза ъBыMву ЃEЃEследЃEщеЃEитерации, ЃEЃE ЃEиравыGваем ЃEЕ ЃEбо a, ЃEбо b.
3. ПерехьCим ЃE ЃEыIту 1.
ЗадачЃE ЃEжнЃEупроститЃE есЃE ъ@редеЃEть границЃEЃEрней: границЃEабсоЃEтных значений ЃEрней вычисляетЃE ЃE формулЃE(8)
: (8),
(9),
границЃEЃEЃEжитеЃEыZЃEЃEрней ЃEЃE формулЃE (9):
ЃEграницЃEъCрицатеЃEыZЃEЃEрней ЃE заЃEыGЃEЃEуравыDыGЃE(1) ЃEъь –х.
Таким ь@разоЃE ЃE ЃEЃEчаем ЃEтоЃE хоЃE ЃEдостатъHыM ЃEдленыZЃE(впрочеЃE ЃEЃEыDудачыMЃEвыборе ыRЃEвого ЃEибЃEжеыGя ЃEЃEтоде итераций ЃEисЃEрешеыGя ЃEжеЃEзаЃEыRтьЃE ъь ещЃEбоЃEЃEдоЃEьD время, да ЃEЃEтоЃE же ыDизвестыM, ЃEиведет ЃE весь хоЃEвычислений ЃEъCвету), ыM зато впьJыD ъьдежный ЃEЃEъBтоЃEЃEтоЃE ыD требЃEщиЃEрешеыGя доЃEЃEителЃEых задаЃE врьCЃEвычисленЃE ЃEьGзвьCыMЃE ЃEреЃEрсивыMстЃEсаЃEго алгоритмЃEЃEзвьJяет ЃEЃEчить ъHенЃEЃEЃEактный ЃEЃEгкЃEчитаемый ЃEЃE ИЃEыLЃEЃEэтоЃE ЃEтоЃE ЃEЃEвиыLьBЃEдеЃEыGя ЃEбыЃEвыбран для реализации ъь ЃEьBраЃEыMЃEурьAыD.
2.2.4. МетьC разльEенЃE ъь ЃEьEителЃE/b>
ДаныZЃEЃEтоЃEявляетЃE ЃEЃEъBтью аналитичесЃEЃE ьCъьЃE ЃEЃEъBтью зависиЃEъC других. ГЃEвным егЃEЃEеиЃEществоЃE являетЃE то, чтЃEЃEдаыLьK ЃEтоде ыD ЃEьGсхьCит ЃEтери ЃEатыZЃEЃEрней. ПЃEсним ъь ЃEимерЃE
Пусть даЃEЃEьBъHЃEЃEF(x) = 2x3
-11x2
+20x-12 (11)
Его ЃEжнЃEзаЃEсать ЃEвиде: F(x) = (x+2)2
(2x-3) (12)
У ЃEьBъHЃEъь n-степенЃE ЃEЃEизвестыM, n ЃEрней, ЃEиз (12) следуеЃE чтЃEЃEрняЃE F(x) являются ЃE ЃE1,5, ЃEичем ЃEреы[ ЃE являетЃE ЃEатыZЃE ЃEЃE фаЃEичесЃE это двЃEьCинакьAых ЃEрня. При ъCысЃEыGЃEже ЃEрней ЃEбыЃEиз вышеъ@исаныZЃEЃEтодоЃE«втъAьH» ЃEреы[ ЃE будеЃEЃEтеЃEЃE ЃEЃE график фуыIциЃEбудеЃEиметЃEЃEшь двЃEточкЃEЃEресечеыGя ЃEъBЃE абсцисЃE/p>
Чтобы избежать этого ЃEименяетЃE ЃEтоЃEразльEенЃE ъь ЃEьEителЃE СутЃEегЃEзаЃEючаетЃE ЃEследЃEщеЃE ЃEждый ЃEьBъHЃEЃEвида (1) ЃEжнЃEЃEедставитЃEЃEвиде (x+h1
)(x+h2
)ЃEx+hn
)*H = 0 (13) ,
илЃE F(x) = (x+h)(bn-1
xn-1
+ЃE1
)+b0
(14)
гдЃEh1ЃEn ЃEЃEрнЃEуравыDыGя, ЃEН ЃEЃEьGзведение ЃEьEителей ЃE выыDсеыLых за скь@ЃE ( Н ыGЃEЃEыD влЃEет ъь уравыDыGЃE ЃEЃE ъC ыDго избавляются, деЃE ъь Н ь@ЃEчастЃE (13). При этоЃEыD исЃEючеыM, чтЃEыDЃEторыЃEh ЃEгуЃEбыть взаиЃEЃEравнЃE чтЃEЃE свидетелЃEтвуеЃEЃEъьЃEчиЃEЃEатыMго ЃEрня.
ДЃE вычисленЃE значений ыMвыЃEЃEэффициеыQьA ЃE(14) исЃEЃEзуются формулЃE
bn
=an
bn-1
=bn
h+an-1
(15)
bn-2
=bn-1
h+an-2
ЃE
Таким ь@разоЃE алгоритм этого ЃEтода выглядиЃEследЃEщиЃEь@разоЃE
1. ОЃEеделитЃE границЃEЃEрней уравыDыGя;
2. При ЃEЃEщи ЃEбого из вышеъ@исаныZЃEЃEтодоЃEъьйтЃEьCин ЃEреы[ уравыDыGя;
3. ПриЃEЃEя формулЃE (14) ЃE(15) сфъAЃEровать ыMвыЃEЃEьBъHЃEЃEстепенЃE ъь 1 ЃEы[шеЃEЃEедыдущегЃE
4. ВерыRтьЃE ЃE ЃEыIту 2.
5. ПьAтоЃEть до теЃE ЃEЃE ЃEЃE степенЃEЃEьBъHЃEъь ыD ь@ыRЃEтся.
ЭтоЃEЃEтоЃEбыЃEреализьAан ъь ЃEьBраЃEыMЃEурьAыD ЃEвкЃEчеЃEЃE ЃEрсьAЃE работу.
3. ОПИСАНИЕ СТРУКТУРЫ ПРОГРАММЫ
В раЃEах задаыGя ъь ЃEрсьAЃE работу ЃE средЃEЃEьBраЃEирьAанЃE Visual Basic for Applications быЃE разрабъCанЃEЃEьBраЃEЃE ъьхоЃEщая ЃEрнЃEЃEьBъHЃEъь ЃEуказываеЃEЃEточнъBтью.
3.1. ОЃEсаыGЃEЃEьBраЃEыZЃEЃEдуЃEЃE/b>
РазработкЃEЃEьBраЃEЃEвеЃEсь ЃEучетьK ЃEыUепциЃEь@ъеЃEыM-ъAиеыQирьAаныMго ЃEьBраЃEирьAанЃE, ЃEэтоЃE четкЃE ъ@редеЃEыLьH ЃEследьAателЃEъBти действий ЃEыDЃEыDЃE ОднакЃE разбирЃE ЃEьBраЃEЃE ъь составЃEющиЃE ЃEжнЃEЃEъBЃEдить «ЃEть» алгоритмЃEЃEЃEде.
ВЃE ЃEьBраЃEЃEсостьGЃEиз форм ЃE ЃEдуЃEЃE МьCулей всегЃEдвЃE ьCин содержит стандартыRю ЃEъGедурЃEавтозаЃEскЃE (егЃEрассЃEтриватЃEЃE ыD станем), ЃEдругьH ЃEвсЃE«ЃEбличыZе» ЃEъGедурЃEЃE фуыIциЃE
Public function F(x). ФунЃEЃE, возвращающая значение ЃEьBъHЃEъь для ЃEредаваемьBЃE ЃE
Public function DetectBorders. ВьFвращаеЃEграницЃEЃEрней, согласыM формулам ( 7 , 8, 9 ).
Public sub Gra ЃEЃEъGедурЃE «ъCветственъья» за составЃEыGЃEграфикЃE
3.2. ОЃEсаыGЃEформ
В формах заЃEючеъь ъBыMвнЃE частЃE ЃEьBраЃEЃE ЃEтоЃEчислЃEЃEсобственыM алгоритм ЃEтода ЃEЃEвиыLьBЃEдеЃEыGя. Решение «упакьAатЃE эти фуыIциЃEЃEформЃEбыЃE ЃEьCиктоваыM следЃEщиЃE ЃEичинамЃE
- соЃEащение ь@ъеЃE заыGЃEемьH ЃEЃEти ЃE ЃEЃEследствиЃE усЃEреыGЃEработы за счет соЃEащенЃE временЃE жизнЃEЃEреЃEыLых;
- разграыGчеыGЃE доступЃE(ЃEЃE ыDь@ходиЃEя фуыIция илЃEЃEтоЃEЃEгуЃEбыть активироваыZ исЃEючитеЃEыM ЃEдоЃEстимьH ситуации ЃEэто значителЃEЃEснижаеЃEвероятнъBть ъIибьI);
- ЃEждЃE формЃE являетЃE «вещью ЃEсебе» ЃEыD зависиЃEъC ъBтаЃEыZЃE(ЃEьKЃE«ЃEрневьH»
3.2.1. ФъAЃE Form_Main
ЯвляетЃE ЃEрневьH формьH ЃEьBраЃEЃE содержит ГЃEвньD ЃEЃE, ЃEзвьJяющеЃEЃEЃEбоЃEЃEЃEдкЃEвыЃEЃEять всЃEыDь@ходиЃEЃEдействЃE, ЃEтаЃEЃE сохранять ЃEзавершатЃEработу ЃEьBраЃEЃE
3.2.2. ФъAЃE Form_Koeff
В этоЃEформЃEзадаются ЃEэффициеыQЃEЃEьBъHЃEъь.
Замечание.
ДЃE задаыGя ЃEэффициеыQЃEЃEsub>0 ыDь@ходиЃE указатЃEзначение степенЃEЃEравным 0.
3.2.3.ФъAЃE Form_Mnogo
3.2.4.ФъAЃE Form_WP
Эта формЃEЃE существу являетЃE ЃEыDЃEю управленЃE ЃEрежиЃE графикЃEЃEЃEзвьJяет егЃEраспечататЃEилЃEзаЃEытЃE
3.2.5. ФъAЃE Form_Korni
«ОсньAъья форма» ЃEименыM ЃEыDЃEзаЃEючеЃEсаЃEалгоритм ЃEисЃE ЃEрней (Sub FindKor) ЃEтодаЃE бисеЃEии ЃEхорд/ЃEсатеЃEыZЃE
В ЃEчестве свьHстЃEЃEь@ъеЃEЃE«форма» ЃEисутствуюЃE трЃEЃEючевыЃEЃEъGедурЃE реализЃEщиЃEсобственыM алгоритмЃEъьхожденЃE ЃEрней ЃEъьхожденЃE ЃEьGзвьCыMЃE
Public sub FF* ЃEЃEъGедурЃE «ъCветственъья» за ъьхождение ЃEьGзвьCыMЃE
Public sub Horda_Kasatelnye ЃE ЃEъGедурЃE реализЃEщая ЃEисЃEЃEрней ЃE алгоритмЃEхорд ЃEЃEсатеЃEыZЃE
Public sub Find_Kor ЃEЃEъGедурЃE реализЃEщая ЃEисЃEЃEрней ЃE алгоритмЃEЃEЃEвиыLьBЃEдеЃEыGя ъCрезкЃE
Замечание.
АЃEъAитЃE ъьхожденЃE ЃEыDЃEъ@исанЃEЃE главЃE2. СутЃEже алгоритмЃEъьхожденЃE ЃEьGзвьCыMЃEсвьCитЃE ЃEЃEъBтоЃE ЃEреЃEьEенЃE ЃEэффициеыQЃEЃEстепенЃEЃEуменЃEенЃE значенЃE степенЃEъь единицЃE Это ЃEзвьJяет ЃEрректнЃEъ@редеЃEть ЃEьGзвьCыRю, ЃEЃEэтоЃEЃEрректнЃE«избавитьЃE» ъC ЃEыDчньH ЃEыPтаыQЃE
4. АНАЛИЗ РЕЗУЛЬТАТОВ
В резуЃEтате выЃEЃEенЃE задаыGя ъь ЃEрсьAЃE работу быЃE созданЃEЃEьBраЃEЃEVI Function 2.0 , ъьхоЃEщая ЃEрнЃEалгебраическьBЃE ЃEьBъHЃEъь вида (1) ЃEуказываеЃEЃEточнъBтью ЃEсредствоЃEследЃEщиЃEЃEтодоЃE
· ЃEтоЃEдеЃEыGя ъCрезкЃEЃEЃEЃEЃE
· ЃEтоЃEхорд ЃE ЃEсатеЃEыZЃE(ЃEЃEинирьAаныZЃE
Также ЃEЃEсоставЃEыGЃEЃEьBраЃEЃEбыЃE учтеъь возмьEыMстЃEъьЃEчия ЃEЃEьBъHЃEъь ЃEатыZЃEЃEрней, ЃEсредства их ь@ъьружеыGя таЃEЃEвошлЃEЃEсостав ЃEьBраЃEЃE
Фактические резуЃEтаты совпалЃEЃE формалЃEымЃE
5. СПИСОК ЛИТЕРАТУРЫ
1. Гутер Р.С. , Овчинский Б.В. «ЭЃEЃEыQЃEчисленыMго анализЃEЃEЃEтеЃEтический ь@работкЃE резуЃEтатоЃEъ@ыта». МъBЃEЃE «НауЃE», 1979
2. КалитЃEЃEН.Н. «ЧисЃEыLые ЃEтоды». МъBЃEЃE «НауЃE», 1978
3. КрыЃEЃEВ.И., БабЃEвВ.В., МЃEастырсЃEЃEП.И. «ВычисЃEтеЃEыZЃEЃEтоды». МъBЃEЃE «НауЃE», 1976
4. П. Санъь. «Visual Basic for Applications 6.0 «ЃE ЃEдлиныGЃE», КиеЃE BHV
6. ПРИЛОЖЕНИЯ
6.1. ПриЃEЃEалгебраическьBЃEЃEьBъHЃEъь ЃEъьхожденЃE егЃE/p>
ЃEрней
МыMгочлен F(x) = 3x2
+5x-8
ГрафиЃEЃEедставЃEЃEъь риЃE 6.1
ТъHыMстЃEQ = 0,0001
НайдеыLые ЃEрнЃE x = -2,66666669921875 ЃEтоЃE/p>
x= 0,99991015625 бисеЃEии
НайдеыLые ЃEрнЃE x = -2,66667654214111 ЃEтоЃE/p>
x= 0,99981915025 хорд ЃEЃEсатеЃEыZЃE/p>
риЃE 6.1
6.2. БЃEЃEсхемЃEалгоритмЃEЃEЃEвиыLьBЃE деЃEыGя
A = ЃEвая границЃE/p>
В = ЃEавЃE границЃE
C ЃEсередиъь
F(x) - фуыIция
6.3. БЃEЃEсхемЃEалгоритмЃEЃEисЃE ЃEрней ЃEтодоЃEхорд ЃEЃEсатеЃEыZЃE/p>
A = ЃEвая границЃE/p>
В = ЃEавЃE границЃE
F(x) - фуыIция
6.4 РукьAьCство ЃEЃEзоватеЃE.
ПъBЃE заЃEскЃEЃEьBраЃEЃEЃEреЃEВамЃEЃEявится ГЃEвньD ЃEЃE, вкЃEчающеЃEЃEсеЃE следЃEщиЃEЃEЃEьBраЃEЃE
СОХРАНИТЬ | СъFраЃEет файл со всемЃEсделаныZЃE изЃEыDыGяЃE |
ПРОСМОТР ФУНКЦИИ
|
ВывьCит ъь эЃEан ьIыM, ЃEЃEтороЃEъCь@ражаетЃE виЃE ЃEьBъHЃEъь, ЃEтаЃEЃEвиЃEЃEьGзвьCыZЃEЃEрвьBЃEЃEвтъAьBЃEЃEЃEдкьA (ВыбъA ъBужествЃEетЃE ъьжатием ЃEъ@ьI FЃEX), FЃEX), F(X) |
ВВОД КОЭФФИЦИЕНТОВ
|
ВывьCит ъь эЃEан ьIыM ввьCЃEЃEэффициеыQьA |
ГРАФИК
|
ВывьCит график фуыIциЃE/td> |
ПОИСК КОРНЕЙ
|
ОтображаеЃEьIыM, управляющеЃEЃEисЃEЃEЃEрней |
О ПРОГРАММЕ
|
ВывьCит ьIыM «О ЃEьBраЃEе» |
ВЫХОД
|
Завершает работу ЃEьBраЃE, ЃEедваритеЃEыMзадавая воЃEъB ЃE сохранении изЃEыDыGЃE/td> |
ВвоЃEЃEэффициеыQьA ъBуществЃEетЃE следЃEщиЃEь@разоЃE ЃE ЃEявившемЃE ьIыD имЃEтся 2 ЃEЃE ЃEьCыM для указанЃE степенЃE другьD для ввьCЃE собственыM ЃEэффициеыQЃE ЕслЃEВЃEужЃEввьCилЃEыDЃEторую фуыIцию, то для ее удаленЃE ъьжмитЃEЃEъ@ЃE “очиститЃE, для заЃEЃEъьыGя ЃEэффициеыQЃEъьжмитЃE“Ок”, для завершеня ввьCЃEЃE“завершитьЃE
ПьGск ЃEрней упрощеЃEдо ЃEеделЃE Вам достатъHыM указатЃEыDЃEходиЃEю точнъBть ЃEвыбратЃEЃEтоЃEЃEисЃE: бисеЃEиоыZЃEилЃE ЃEЃEинирьAаныZЃE
6.5. ИсхьCыZЃEтеЃEЃEЃEьBраЃEЃE/b>
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
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("ЛисЃE").Select
Range("e1").Select
For i = -10 To 10
ActiveCell.Value = F(i)
ActiveCell.Cells(2).Select
Next i
End Sub
Public Function DetectBorders()
' ФунЃEЃE ъ@редеЃEыGя границ действителЃEых ЃEрней
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("ЛисЃE").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 ("ВыхьC за ЃEеделЃEдоЃEстимых значений")
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("ЛисЃE").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("ЛисЃE").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]
ЭтоЃEфаЃE быЃEдоЃEзаЃEизвестыZЃE ЃEтеЃEтиЃEЃE АбеЃEЃEЃEГалуа.