Академический Документы
Профессиональный Документы
Культура Документы
РЕФЕРАТ
СОДЕРЖАНИЕ
РЕФЕРАТ 3
СОДЕРЖАНИЕ 4
ВСТУПЛЕНИЕ 6
1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 8
1.1 Постановка задачи 8
1.2 Алгебраических уравнений 9
1.2.1 Основные понятия об алгебраическом уравнении 9
1.2.2 Оценка границ модулей корней уравнения 10
1.2.3 Корни алгебраического уравнения 11
1.2.4 Число корней полинома в некоторой области 12
1.2.5 Число действительных корней полинома 13
1.2.6 Теорема Бюдана–Фурье 16
1.3 Метод Лобачевского–Греффе для приближенного решения алгебраических уравнений
19
1.3.1 Идея метода 19
1.3.2 Квадрирование корней 21
1.3.3 Метод Лобачевского-Греффе для случая комплексных корней 24
1.3.4 Модификация метода Лобачевского–Греффе. Метод Бродетского–Смила 25
1.3.5 Потеря точности в методе Лобачевского–Греффе 28
1.4 Другие методы решения алгебраических уравнений с комплексными корнями 28
1.4.1 Метод Бернулли 29
1.4.2 Метод Лина 30
2.1 Задание 1 32
2.2 Задание 2 35
2.3 Описание программного продукта 38
2.3.1 Программа Strum 38
2.3.2 Программа MLG 38
2.4 Анализ полученных результатов 39
5
ВЫВОД 40
ПЕРЕЧЕНЬ ССЫЛОК 41
ПРИЛОЖЕНИЕ А 42
ПРИЛОЖЕНИЕ В 45
6
ВСТУПЛЕНИЕ
1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
(1.1)
(1.2)
, (1.3)
, .
10
, (1.4)
круга .
, (1.5)
. (1.6)
(1.7)
при k=1,2,…,m
Поэтому полином
12
и получим полином
Arg P(x),
, ,
, , (1.8)
где
, ,…, (1.9)
14
Говорят, что для пары рядом стоящих элементов , системы (1.9) имеется
изменение знака, если эти элементы обладают противоположными знаками, т.е.
, , , ,…, ,
.
15
Следствие 2. Для того чтобы все корни полинома P(x) степени n, не имеющего
кратных корней, были действительны, необходимо и достаточно, чтобы выполнялось условие
Таким образом в уравнении (1.3) все корни будут действительными тогда и только
тогда, когда:
1) система Штурма имеет максимальное число элементов n+1, т.е. m=n;
2) выполнены неравенства , т.е. старшие коэффициенты
всех функций Штурма должны быть положительными.
С помощью системы Штурма можно отделять корни алгебраического уравнения,
разбивая интервал (a,b), содержащий все действительные корни уравнения, на конечное
число частичных интервалов таких, что
, , …, , (1.10)
где и .
С одной стороны, назовем нижним числом перемен знаков системы (1.10) число
перемен знаков в преобразованной системе (1.10), где нулевые элементы
Очевидно, что если система (1.10) не имеет нулевых элементов, то число N перемен
знаков в этой системе по смыслу совпадает с ее нижним и верхним числами перемен
знаков:
вообще же говоря, .
Теорема 1.6. (теорема Бюдана–Фурье). Если числа a и b (a<b) не являются корнями
полинома P(x) степени n, то число N(a, b) действительных корней уравнения P(x)=0,
содержащихся между а и b, равно минимальному числу перемен, знаков потерянных в
системе последовательных производных
, , , …, , …, (1.11)
при переходе от x=a к x=b, или меньше числа на четное число, т.е.
где
17
и – нижнее число перемен знаков в системе (1.13) при x=a, – верхнее число
Предполагается, что каждый корень уравнения (1.3) считается столько раз, какова
его кратность. Если производные не обращаются в нуль при x=a и
x=b, то подсчет знаков упрощается, а именно:
(1.12)
и
. (1.13)
, ,
то знаки чисел и совпадают со знаками системы (1.13) при x=a и x=b. Поэтому
.
18
, , …, (1.14)
(где коэффициенты, равные нулю, не учитываются), или меньше этого числа на четное число.
Теорема Декарта представляет собой применение теоремы Бюдана–Фурье к
интервалу .
Следствие. Если коэффициенты уравнения (1.3) отличны от нуля, то число
отрицательных корней этого уравнения, с учетом их кратностей, равно числу постоянств
знака в системе (1.14) его коэффициентов или меньше этого числа на четное число.
(Доказательство этого утверждения следует из применения теоремы Декарта к полиному
).
Укажем также признак вещественности всех корней полинома .
Теорема Гюа. Если уравнение (1.3) имеет действительные коэффициенты и все
корни его действительны, то квадрат каждого не крайнего коэффициента этого уравнения
больше произведения двух его соседних коэффициентов, т.е. выполнены неравенства
, (1.15)
т.е. корни различные по модулю, причем модуль каждого предыдущего корня значительно
больше модуля последующего. Другими словами, предположим, что отношение любых двух
соседних корней, считая в порядке убывания их номеров, есть величина, малая по модулю:
, (1.16)
где и – малая величина. Такие корни называются отделенными.
Далее из системы (1.7) соотношений между корнями и коэффициентами уравнения
(1.3) получаем:
(1.17)
(1.18)
(1.19)
20
, (1.20)
при .
Тогда получим
. (1.21)
, (1.22)
, (1.23)
в котором , , и т.д.
При достаточно больших k можно добиться чтобы для корней уравнения (1.23)
выполнялась система
22
(1.24)
, (1.25)
то, подставив (1.25) в систему (1.24), получим, что абсолютные величины коэффициентов
должны быть в принятой точности равны квадратам коэффициентов . Выполнение
этих равенств и будет свидетельствовать о том, что необходимое значение k уже было
достигнуто на k-м шаге.
Таким образом квадрирование корней уравнения (1.3) следует прекратить, если в
принятой точности в правой части формулы (1.24) сохраняется только квадраты
коэффициентов, а удвоенная сумма произведений окажется ниже границы точности.
Тогда действительные корни уравнения получаются отделенными и их модули
находятся по формуле
(1.26)
(1.27)
, (1.28)
где
, (1.29)
. (1.30)
. (1.31)
(1.32)
.
25
Тогда
, (1.33)
где
.
26
, где .
Метод Лина [2] служит для нахождения делителей любой степени для заданного
многочлена. Чаще всего этот метод используется для нахождения квадратичных делителей,
определяющих пару комплексных сопряженных корней многочлена. Этот метод также
можно применить для вычисления наибольшего по модулю корня.
Метод Лина может не привести к нахождению делителя, либо привести к
нахождению не того делителя, который предполагалось вычислить.
Рассмотрим многочлен (1.3) и найдем его делитель k-й степени
2 ПРАКТИЧЕСКАЯ ЧАСТЬ
2.1 Задание 1
. (2.1)
Откуда получаем
Таблица 2.1.
Точки на действительной оси
Многочлен
+ +
– +
– –
– +
– –
Число перемен знаков 1 3
Таким образом, получаем, что число действительных корней в уравнении (2.1) равно
,
31
, (2.2)
где
, (2.3)
Таблица 2.2.
i 0 1 2 3 4
Как видно из таблицы 2.2 на 7-м шаге корни , (считая в порядке убывания
модулей) можно считать отделенными. Модули корней находим по формуле (1.27) и грубой
прикидкой определяем их знак:
i.
,
,
.
33
2.2 Задание 2
. (2.4)
Откуда получаем
Таблица 2.3.
Точки на действительной оси
Многочлен
+ +
– +
+ +
– +
– –
Число перемен знаков 3 1
Таким образом, получаем, что число действительных корней в уравнении (2.2) равно
,
34
Таблица 2.4.
i 0 1 2 3 4
Как видно из таблицы 2.4 на 7-м шаге корни , (считая в порядке убывания
модулей) можно считать отделенными. Модули корней находим по формуле (1.27) и грубой
прикидкой определяем их знак:
i.
,
.
ВЫВОД
ПЕРЕЧЕНЬ ССЫЛОК
ПРИЛОЖЕНИЕ А
! Sturm.f90
!
!************************************************************************
!
! PROGRAM: Sturm
!
! PURPOSE: Построение системы Штурма.
!
!************************************************************************
program Sturm
implicit none
integer i,j,l
double precision a1
print *,'vvedite koeffitsienty mnogochlena', ' '
read *, c !чтение данных
a(1,0:4) = c
!вычисление производной
do i=0,3
41
a(2,i)=a(1,i)*(4-i)
end do
a1 = abs(a(2,0))
do i=0,3
a(2,i) = a(2,i)/a1
end do
print '(en13.3)',a(2,0:3)
a(4,3:4) = 0
a1 = abs(a(4,0))
do i=0,2
a(4,i) = a(4,i)/a1
end do
a(5,0:4) = a(3,0:4)
print *,' '
print '(en13.3)',a(4,0:1)
ПРИЛОЖЕНИЕ В
! MLG.f90
!
!***********************************************************************
!
! PROGRAM: MLG
!
! PURPOSE: Решение алгебраического уравнения методом Лобачевского-Греффе
!
!***********************************************************************
program MLG
implicit none
epsilon = 1e-3
print *,'vvedite koeffitsienty mnogochlena', ' '
read *, a1 !чтение данных
y = 0.0
mask = .true.
b1 = 0.0
b1(0:4) = a1
flag = .true.
k=0
end do
v = -1.0
prcmplx = extent_int(v,4)*a1(4)/a1(0)
do i=1,4
if (mask(i)) then
prcmplx = prcmplx/x(i)
end if
end do
47
b3(1) = 1.0
b3(2) = -1.0*sumcmplx
b3(3) = prcmplx
!вывод результата
write (3,5)
5 format (t3,'-------------------------------------')
write (3,6)
6 format (t3,'полученый результат')
do i=1,4
write (3,7) x(i)
7 format (t20,2(es15.8,3x))
write (3,8)
8 format (t3,'')
end do
write (3,9) dx
9 format (t3,'относительная погрешность корней ',4(es15.8,2x))
print *,'vse vychisleniya vypolneny uspeshno', ' ', 'rezultat sohranen v faile res2.txt'
close (3, status='keep')
contains
real(8) function s(a)
integer a,j
real(8) sum
sum = 0.0
48
do j=1,a
if (mod(j,2) == 0) then
sum = sum + b1(a-j)*b1(a+j)
else
sum = sum - b1(a-j)*b1(a+j)
end if
end do
s=sum
end function s