Программа:
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) ≡ x3 +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],то,
.
,
;
Приближенное решение ξ, и погрешность приближения Δξ:
,
Блок-схемы:
Отделение корней Метод касательных
