Метод хорд. Метод касательных.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«БИРСКАЯ ГОСУДАРСТВЕННАЯ СОЦИАЛЬНО-ПЕДАГОГИЧЕСКАЯ АКАДЕМИЯ»
ФИЗИКО-МАТЕМАТИЧЕСКИЙ ФАКУЛЬТЕТ
КАФЕДРА МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ И
ИНФОРМАЦИОННЫХ СИСТЕМ
Реферат
Метод хорд. Метод касательных.
Выполнила: студентка 4 курса
Физико-математического факультета
Валиева Э.З.
Научный руководитель
Усманов А.С.
БИРСК – 2012
Первая тема курсовой работы:
Метод хорд.
Постановка задачи:
Вычислить корень уравнения на заданном отрезке с точностью , используя метод хорд.
Цель работы:
Изучить метод нахождения корней уравнений методом хорд. Составить программу расчета корней уравнения методом хорд.
Краткая теория:
Пусть дано уравнение , где - непрерывная функция, имеющая в интервале (a,b) производные первого и второго порядков. Корень считается отделенным и находится на отрезке [a,b].
Идея метода хорд состоит в том, что на достаточно малом промежутке [a,b] дугу кривой можно заменить хордой и в качестве приближенного значения корня принять точку пересечения с осью абсцисс. Рассмотрим случай (рис.1), когда первая и вторая производные имеют одинаковые знаки, т.е. .
Уравнение хорды - это уравнение прямой, проходящей через две точки (a, f(a)) и (b, f(b)).
|
|
Общий вид уравнения прямой, проходящей через две точки:
Подставляя в эту формулу значения, получим уравнение хорды AB:
.
Пусть x1 - точка пересечения хорды с осью x, так как y = 0, то
x1 может считаться приближенным значением корня.
Аналогично для хорды, проходящей через точки и , вычисляется следующее приближение корня:
В общем случае формулу метода хорд имеет вид:
(1)
Если первая и вторая производные имеют разные знаки, т.е. , то все приближения к корню выполняются со стороны правой границы отрезка (рис.2) и вычисляются по формуле:
(2)
Выбор формулы в каждом конкретном случае зависит от вида функции и осуществляется по правилу: неподвижной является такая граница отрезка изоляции корня, для которой знак функции совпадает со знаком второй производной. Формула (1) используется в том случае, когда . Если справедливо неравенство , то целесообразно применять формулу (2).
Итерационный процесс метода хорд продолжается до тех пор, пока не будет получен приближенный корень с заданной степенью точности. При оценке погрешности приближения можно пользоваться соотношением
Если обозначить через m наименьшее значение |f'(x)| на промежутке [a, b], которое можно определить заранее, то получим формулу для оценки точности вычисления корня:
|
|
или
где - заданная погрешность вычислений.
Блок схемы:
Отделение корнейМетод хорд
I). Найти приближенные решения уравнения методом хорд с точностью .
Отделим корни этого уравнения графически.
Для этого построим график функции и найдем абсциссы точек пересечения графика с Ox
Рассмотрим первый корень. Уточним его методом хорд. Для этого определим знаки функции и второй ее производной на этом отрезке .
;
, , .
Поскольку , то применяем формулу
где неподвижная точка , а начальная точка . Получим следующую таблицу
x | y | ||||
0,186294361 | -0,486068938 | ||||
-0,048305478 | 0,081996302 | 0,048305478 | -0,446067463 | 0,040001475 | 0,048305478 |
-0,068611046 | 0,033476231 | 0,068611046 | -0,429178603 | 0,01688886 | 0,020305568 |
-0,076744794 | 0,01324765 | 0,076744794 | -0,422394325 | 0,006784279 | 0,008133748 |
-0,079939293 | 0,00517783 | 0,079939293 | -0,419726358 | 0,002667967 | 0,003194499 |
-0,081184159 | 0,002013924 | 0,081184159 | -0,418686118 | 0,00104024 | 0,001244866 |
-0,081667792 | 0,000781836 | 0,081667792 | -0,418281896 | 0,000404222 | 0,000483633 |
-0,081855462 | 0,000303297 | 0,081855462 | -0,418125028 | 0,000156868 | 0,00018767 |
-0,081928252 | 0,000117624 | 0,081928252 | -0,418064183 | 6,0845E-05 | 7,27899E-05 |
-0,081956479 | 4,56119E-05 | 0,081956479 | -0,418040587 | 2,35956E-05 | 2,82274E-05 |
Где , , .
|
|
Оценим погрешность приближения. Так как не меняет свой знак на данном отрезке, то достигает своего наибольшего и наименьшего значения на концах отрезка .
, .
Для нашего уравнения имеем .
Тогда полагая , получим
Следовательно, приближенное значение корня равно .
Запишем приближенное значение корня только верными значащими цифрами в узком смысле.
Имеем . Округлим до . Получим , 0,0000036, 0,0005616.
Найдем число верных знаков для -0,08196. Имеем .
Так как , то получим приближенное значение корня с числом верных знаков
Второй корень . Уточним его методом хорд. Для этого определим знаки функции и второй ее производной на этом отрезке .
, , .
Поскольку , то применяем формулу
.
где неподвижная точка , а начальная точка . Получим следующую таблицу
x | y | ||||
0,5 | 0,485930216 | -0,5 | -0,930441587 | ||
0,854212575 | 0,069085654 | -0,854212575 | -1,339970614 | -0,40952903 | -0,35421257 |
0,891642365 | 0,004486355 | -0,891642365 | -1,390682505 | -0,05071189 | -0,03742979 |
0,894019692 | 0,000273845 | -0,894019692 | -1,393960964 | -0,00327846 | -0,00237733 |
0,894164604 | 1,66515E-05 | -0,894164604 | -1,394161032 | -0,00020007 | -0,00014491 |
0,894173415 | 1,01228E-06 | -0,894173415 | -1,394173198 | -0,00001217 | -0,00000881 |
Оценим погрешность приближения. Так как не меняет свой знак на данном отрезке, то достигает своего наибольшего и наименьшего значения на концах отрезка , имеем .
|
|
Тогда полагая , получим
Следовательно, приближенное значение корня равно .
Запишем приближенное значение корня только верными значащими цифрами в узком смысле.
Имеем . Округлим до . Получим , , .
Найдем число верных знаков для . Имеем .
Третий корень . Уточним его методом хорд. Для этого определим знаки функции и второй ее производной на этом отрезке .
, , .
Поскольку , то применяем формулу
.
где неподвижная точка , а начальная точка . Получим следующую таблицу
x | y | ||||
2,4 | 0,71141854 | 0,3 | -0,249007355 | ||
2,349007355 | 0,14962714 | 0,249007355 | -0,238725321 | 0,01028203 | -0,05099264 |
2,338725321 | 0,03411256 | 0,238725321 | -0,236403978 | 0,00232134 | -0,01028203 |
2,336403978 | 0,00789983 | 0,236403978 | -0,235867618 | 0,00053636 | -0,00232134 |
2,335867618 | 0,00183588 | 0,235867618 | -0,235743036 | 0,00012458 | -0,00053636 |
2,335743036 | 0,00042699 | 0,235743036 | -0,235714065 | 0,00002897 | -0,00012458 |
2,335714065 | 0,00009933 | 0,235714065 | -0,235707325 | 0,00000674 | -0,00002897 |
Оценим погрешность приближения. Так как не меняет свой знак на данном отрезке, то достигает своего наибольшего и наименьшего значения на концах отрезка , имеем .
Тогда полагая , получим
Следовательно, приближенное значение корня равно .
Запишем приближенное значение корня только верными значащими цифрами в узком смысле.
Имеем . Округлим до . Получим , 0,004286, 0,0056236.
, .
Найдем число верных знаков для . Имеем .
Округлим до . Получим , 0,04, 0,0456236.
Найдем число верных знаков для . Имеем .
Ответ: ; ;
Программа:
Program MetHord; {Метод хорд}
Const
Eps=0.00001;
h=0.1;
Function F(xf:Real):Real;
Begin
F:=Sqr(xf-1)*(xf-1)+2*ln(abs(xf-2))-0.2;
End;
{Function F(x)}
Procedure MH(a,b:Real; Var Xn,dX1:Real);
Var
y,Xn1:Real;
Begin
Xn:=b;
y:=F(Xn);
Repeat
Xn1:=a-(F(a)/(F(Xn)-F(a)))*(Xn-a);
y:=F(Xn1);
dX1:=Abs(Xn-Xn1);
Xn:=Xn1
Until dX1<=Eps;
End;
{Procedure Mh(A1,B1,X1,dX1)}
Var
alfa,beta,X,dX,
x1,x2,y1,y2:Real;
Begin {Отделение корней}
Write('Введите промежуток: '); ReadLn(Alfa,Beta);
x1:=alfa;
x2:=x1+h;
y1:=F(x1);
While x2<=beta do
Begin
y2:=F(x2);
If y1*y2<=0
Then
Begin
WriteLn('Корень определен на промежутке (',x1:0:2,'; ',x2:0:2,')');
MH(x1,x2,X,dX);
WriteLn('X = ',X:10:8,' +- ',dX:10:8);
End;
If y1*y2=0
Then
Begin
x2:=x2+h;
y2:=F(x2);
End;
x1:=x2;
x2:=x1+h;
y1:=y2;
End;
If X=0
Then
WriteLn('На этом промежутке корней НЕ СУЩЕСТВУЕТ.');
ReadLn
End.
Результат работы программы:
Введите промежуток: -0.5 0.2
Корень определен на промежутке (-0.10; 0.00)
X = -0.08197433 +- 0.00000123
Введите промежуток: 0.5 1
Корень определен на промежутке (0.80; 0.90)
X = 0.89417410 +- 0.00000187
Введите промежуток: 2.1 2.5
Корень определен на промежутке (2.30; 2.40)
X = 2.33570529 +- 0.00000027
Тестовые примеры.
Постановка задачи:
1)Найти корень нелинейного уравнения F (x) ≡ x 3 +1 методом хорд.
Решение:
Результат работы программы:
Введите промежуток: -1.5 -0.5
Корень определен на промежутке (-1.10; -1.00)
X = -1.00000000 +- 0.00000000
Проверка:
x | y |
-3,000 | -26,000 |
-2,750 | -19,797 |
-2,500 | -14,625 |
-2,250 | -10,391 |
-2,000 | -7,000 |
-1,750 | -4,359 |
-1,500 | -2,375 |
-1,250 | -0,953 |
-1,000 | 0,000 |
-0,750 | 0,578 |
-0,500 | 0,875 |
-0,250 | 0,984 |
0,000 | 1,000 |
0,250 | 1,016 |
0,500 | 1,125 |
0,750 | 1,422 |
1,000 | 2,000 |
1,250 | 2,953 |
1,500 | 4,375 |
1,750 | 6,359 |
2,000 | 9,000 |
2,250 | 12,391 |
2,500 | 16,625 |
2,750 | 21,797 |
3,000 | 28,000 |
3,250 | 35,328 |
3,500 | 43,875 |
2) Найти корень нелинейного уравнения F(x)=x2-1 методом хорд.
Решение:
Результат работы программы:
Введите промежуток: -1.5 -0.5
Корень определен на промежутке (-1.10; -1.00)
X = -1.00000000 +- 0.00000000
Введите промежуток: 0.5 1.5
Корень определен на промежутке (1.00; 1.10)
X = 1.00000000 +- 0.00000000
Проверка
x | y |
-3,000 | 8,000 |
-2,750 | 6,563 |
-2,500 | 5,250 |
-2,250 | 4,063 |
-2,000 | 3,000 |
-1,750 | 2,063 |
-1,500 | 1,250 |
-1,250 | 0,563 |
-1,000 | 0,000 |
-0,750 | -0,438 |
-0,500 | -0,750 |
-0,250 | -0,938 |
0,000 | -1,000 |
0,250 | -0,938 |
0,500 | -0,750 |
0,750 | -0,438 |
1,000 | 0,000 |
1,250 | 0,563 |
1,500 | 1,250 |
1,750 | 2,063 |
2,000 | 3,000 |
2,250 | 4,063 |
2,500 | 5,250 |
2,750 | 6,563 |
3,000 | 8,000 |
3,250 | 9,563 |
3,500 | 11,250 |
3) Найти корень нелинейного уравнения ln(x)=0 методом хорд.
Решение:
Результат работы программы:
Введите промежуток: 0.5 1.5
Корень определен на промежутке (1.00; 1.10)
X = 1.00000000 +- 0.00000000
Проверка:
x | y |
-3,000 | -22,000 |
-2,750 | -16,297 |
-2,500 | -11,625 |
-2,250 | -7,891 |
-2,000 | -5,000 |
-1,750 | -2,859 |
-1,500 | -1,375 |
-1,250 | -0,453 |
-1,000 | 0,000 |
-0,750 | 0,078 |
-0,500 | -0,125 |
-0,250 | -0,516 |
0,000 | -1,000 |
0,250 | -1,484 |
0,500 | -1,875 |
0,750 | -2,078 |
1,000 | -2,000 |
1,250 | -1,547 |
1,500 | -0,625 |
1,750 | 0,859 |
2,000 | 3,000 |
2,250 | 5,891 |
2,500 | 9,625 |
2,750 | 14,297 |
3,000 | 20,000 |
3,250 | 26,828 |
3,500 | 34,875 |
Вторая тема курсовой работы:
Метод касательных.
Постановка задачи:
Вычислить корень уравнения на заданном отрезке с точностью , используя метод касательных.
Цель работы:
Изучить метод нахождения корней уравнений методом хорд. Составить программу расчета корней уравнения методом касательных.
Краткая теория:
Дано нелинейное уравнение F (x) = 0, где функция у = F (x) определена и непрерывно-дифференцируема для всех , причем функция меняет знак на концах этого отрезка т.е. F (a) · F (b) < 0.
Найти приближенное решение данного уравнения F (x)=0 с точностью ε= 10-4, а так же необходимое для этого число разбиений отрезка .
Приближенное решение ξ;и погрешность приближения Δ ξ;находятся по следующей схеме:
если F (b) F" (x) > 0 на [ a, b ],то, ;
если F (a) F" (x) > 0 на [ a, b ],то, .
, ;
Приближенное решение ξ, и погрешность приближения Δ ξ:
,
Блок-схемы:
Отделение корнейМетод касательных
II) Найти приближенные решения уравнения методом касательных (методом Ньютона) с точностью .
Отделим корни этого уравнения графически
.
Рассмотрим первый корень. Уточним его методом касательных. Для этого определим знаки функции и второй ее производной на этом отрезке : , . Используем формулу , .
x | y | f'(x) | h | dx |
-0,5 | 0,24498997 | -1,141474403 | -0,2146259018 | |
-0,285374098 | 0,00052408 | -1,133873442 | -0,0004622074 | -0,2146259018 |
-0,284911891 | 0,00000001 | -1,133835983 | -0,0000000076 | -0,0004622074 |
Оценим погрешность приближения. Так как не меняет свой знак на данном отрезке, то достигает своего наибольшего и наименьшего значения на концах отрезка .
, .
Для нашего уравнения имеем .
Тогда полагая , получим
Следовательно, приближенное значение корня равно .
Запишем приближенное значение корня только верными значащими цифрами в узком смысле.
Имеем .
Округлим до . Получим , , .
Найдем число верных знаков для . Имеем , Так как , то получим приближенное значение корня с числом верных знаков .
Уточним второй корень . Определим знаки функции и второй ее производной на отрезке : , . Используем формулу , .
x | y | f'(x) | h | dx |
0,31705803 | 2,919395388 | 0,1086040047 | ||
1,891395995 | 0,021479519 | 2,52613874 | 0,0085029053 | 0,1086040047 |
1,88289309 | 0,000128416 | 2,495948852 | 0,0000514496 | 0,0085029053 |
1,88284164 | 4,6921E-09 | 2,495766457 | 0,0000000019 | 0,0000514496 |
Оценим погрешность приближения. Так как не меняет свой знак на данном отрезке, то достигает своего наибольшего и наименьшего значения на концах отрезка . , .
Для нашего уравнения имеем .
Тогда полагая , получим
Следовательно, приближенное значение корня равно .
Запишем приближенное значение корня только верными значащими цифрами в узком смысле.
Имеем .
Округлим до . Получим , , .
Найдем число верных знаков для . Имеем ,
Округлим до . Получим , , .
Найдем число верных знаков для . Имеем .
Так как , то получим приближенное значение корня с числом верных знаков .
Ответ: ,
Программа:
Program Metod_Kasatelnih;
Const
Eps=0.00001;
H=0.25;
Var
alfa,beta,X,dX,
x1,x2,y1,y2:Real;
Function F(xf:Real):Real;
Begin
F:=sqr(xf)-2sin(xf-1)-2
End;
Function dF(Xf:Real):Real;
Begin
dF:=2xf-2cos(xf-1)
End;
Function d2F(x1,x2:Real):Real;
Function ddF(xf:Real):Real;
Begin
ddF:=2+2sin(xf-1)
End;
Var
S:Real;
Begin
S:=0;
While x1<=x2 do
Begin
S:=S+ddF(x1);
x1:=x1+H/2;
End;
d2F:=S;
End;
Procedure M_Kas(a,b:Real; Var Xn,dX1:Real);
Var
Xn1:Real;
Begin
If F(a)*d2F(a,b)>0
Then Xn:=a
Else Xn:=b;
dX1:=1;
While Abs(dx1)>EPS do
Begin
Xn1:=Xn;
Xn:=Xn1-F(Xn1)/dF(Xn1);
dX1:=Xn1-Xn;
End;
End;
Begin {Отделение корней}
Write('Введите промежуток: '); ReadLn(Alfa,Beta);
x1:=alfa;
x2:=x1+H;
y1:=F(x1);
While x2<=beta do
Begin
y2:=F(x2);
If y1*y2<=0
Then
Begin
WriteLn('Корень определен на промежутке (',x1:0:2,'; ',x2:0:2,')');
M_Kas(x1,x2,X,dX);
WriteLn('X = ',X:10:8,' +- ',dX:10:8);
End;
If y1*y2=0
Then
Begin
x2:=x2+H;
y2:=F(x2);
End;
x1:=x2;
x2:=x1+H;
y1:=y2;
End;
If X=0 Then WriteLn('На этом промежутке корней НЕ СУЩЕСТВУЕТ.');
ReadLn
End.
Результат работы программы:
Введите промежуток: -0.5 0
Корень определен на промежутке (-0.50; -0.25)
X = -0.28491188 +- -0.00000001
Введите промежуток: 1.5 2
Корень определен на промежутке (1.75; 2.00)
X = 1.88284164 +- 0.00005145
Тестовые примеры.
Постановка задачи:
1)Найти корень нелинейного уравнения F (x) ≡ x 3 +1 методом касательных.
Решение:
Результат работы программы:
Введите промежуток: -1.5 -0.5
Корень определен на промежутке (-1.25; -1.00)
X = -1.00000000 +- -0.00000419
Проверка:
x | y |
-3,000 | -26,000 |
-2,750 | -19,797 |
-2,500 | -14,625 |
-2,250 | -10,391 |
-2,000 | -7,000 |
-1,750 | -4,359 |
-1,500 | -2,375 |
-1,250 | -0,953 |
-1,000 | 0,000 |
-0,750 | 0,578 |
-0,500 | 0,875 |
-0,250 | 0,984 |
0,000 | 1,000 |
0,250 | 1,016 |
0,500 | 1,125 |
0,750 | 1,422 |
1,000 | 2,000 |
1,250 | 2,953 |
1,500 | 4,375 |
1,750 | 6,359 |
2,000 | 9,000 |
2,250 | 12,391 |
2,500 | 16,625 |
2,750 | 21,797 |
3,000 | 28,000 |
3,250 | 35,328 |
3,500 | 43,875 |
2) Найти корень нелинейного уравнения F(x)=x2-1 методом касательных.
Решение:
Результат работы программы:
Введите промежуток: -1.5 -0.5
Корень определен на промежутке (-1.25; -1.00)
X = -1.00000000 +- -0.00000005
Введите промежуток: 0.5 1.5
Корень определен на промежутке (0.75; 1.00)
X = 1.00000000 +- 0.00000000
Проверка
x | y |
-3,000 | 8,000 |
-2,750 | 6,563 |
-2,500 | 5,250 |
-2,250 | 4,063 |
-2,000 | 3,000 |
-1,750 | 2,063 |
-1,500 | 1,250 |
-1,250 | 0,563 |
-1,000 | 0,000 |
-0,750 | -0,438 |
-0,500 | -0,750 |
-0,250 | -0,938 |
0,000 | -1,000 |
0,250 | -0,938 |
0,500 | -0,750 |
0,750 | -0,438 |
1,000 | 0,000 |
1,250 | 0,563 |
1,500 | 1,250 |
1,750 | 2,063 |
2,000 | 3,000 |
2,250 | 4,063 |
2,500 | 5,250 |
2,750 | 6,563 |
3,000 | 8,000 |
3,250 | 9,563 |
3,500 | 11,250 |
3) Найти корень нелинейного уравнения ln(x)=0 методом касательных.
Решение:
Результат работы программы:
Введите промежуток: 0.5 1.5
Корень определен на промежутке (0.75; 1.00)
X = 1.00000000 +- -0.00000018
Проверка:
x | y |
-3,000 | -22,000 |
-2,750 | -16,297 |
-2,500 | -11,625 |
-2,250 | -7,891 |
-2,000 | -5,000 |
-1,750 | -2,859 |
-1,500 | -1,375 |
-1,250 | -0,453 |
-1,000 | 0,000 |
-0,750 | 0,078 |
-0,500 | -0,125 |
-0,250 | -0,516 |
0,000 | -1,000 |
0,250 | -1,484 |
0,500 | -1,875 |
0,750 | -2,078 |
1,000 | -2,000 |
1,250 | -1,547 |
1,500 | -0,625 |
1,750 | 0,859 |
2,000 | 3,000 |
2,250 | 5,891 |
2,500 | 9,625 |
2,750 | 14,297 |
3,000 | 20,000 |
3,250 | 26,828 |
3,500 | 34,875 |
Дата добавления: 2015-12-21; просмотров: 15; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!