Метод хорд. Метод касательных.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«БИРСКАЯ ГОСУДАРСТВЕННАЯ СОЦИАЛЬНО-ПЕДАГОГИЧЕСКАЯ АКАДЕМИЯ»

 

ФИЗИКО-МАТЕМАТИЧЕСКИЙ ФАКУЛЬТЕТ

 

КАФЕДРА МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ И

ИНФОРМАЦИОННЫХ СИСТЕМ

 

 

Реферат

Метод хорд. Метод касательных.

 

 

Выполнила: студентка 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!