Курсовая работа: Современное состояние вычислительной техники

В алгебраическом методе отделения корней с некоторым шагом h просматривают достаточно большую область существования корня уравнений.

f(x)
у

х
x
xi
xi+h
h
b
a
xi +1 =xi + h

Из математики известно, что непрерывная функция на небольшом отрезке содержит корень уравнения, если на концах отрезках функция f(x) имеет разные знаки.

Уточнение корня по методу половинного деления.

Пусть решается уравнение f(x)=0 и функция f(x) непрерывна на отрезке [a,b] =[x1 ,x2 ].

Отрезок [a,b] содержит корень, т.е. f(a)*f(b)<0.

Делим отрезок [a,b] пополам, т.е. выбираем начальное уравнение корня x=, если f(x)=0, то х является корнем уравнения, если f(x) не равно нулю, то выбираем тот из отрезков [a,x] или [x,b], на концах которого функция f(x) имеет противоположные знаки. Выбранный отрезок снова делим пополам и проводим те же рассуждения. Процесс деления отрезков пополам продолжается до тех пор, пока длина отрезка на концах которого функция имеет разные знаки не станет < e

[b-a]< e =10-5 .


Схема реализации алгоритма имеет вид: [a,b]=[x1 ,x2 ] e=10-5

Уточнение корня по методу Хорд

По методу Хорд выбирается произвольное начальное значение корня из отрезка [a,b] на котором корень существует xÎ[a,b]=[x1 ,x2 ].

Затем по методу Хорд корень уточняется. Найденное новое значение корня подставляется в правую часть уравнения и т.д. пока разность между двумя приближениями не станет меньше < e= 10-5 . Расчётная формула метода Хорд имеет вид:

xn +1 = xn - ( b - x ).

Графический метод Хорд имеет вид:



Отделение корней


program otd;

x 1 =a

label 10;

x 2 =x1 + h
var

a,b,x1,x2,y1,y2,h,d:real;

y 1 =f(x1 )
function f(x:real):real;

begin

y 2 =f(x2 )
f:=2.2*x-exp(x*ln(2));

Нет
end;

Да
begin

writeln(‘введите a,b,h’);

readln(a,b,h);

x 1 =x2

x2 =x1 +h

y1 =y2

x1:=a;x2:=x1+h;

y1:=f(x1);

10: y2:=f(x2);

Да
if y1*y2<0 then writeln(x1:8:5,' ',x2:8:5);

x1:=x2;x2:=x1+h;

Нет
y1:=y2;

if x2<=b then goto 10;

readln;

end.

ввод:

0.1,10,1e-4

ответ:

х1=0.10000

х2=1.10000


Уточнение корней

Метод половинного деления


x =(a+b)/2
program del;

label 2, 10;

z=f(x)
var a,b,e,x,y,z:real;
Да
function f(x:real):real;
Нет

Нет
Да
begin

f:= 2.2*x-exp(x*ln(2));

a=x

y=z

b=x

end;

begin

Да
writeln(???????? a,b,e?);


readln(a,b,e);
Нет
y:=f(a);

10:x:=(a+b)/2;

z:=f(x);

if z=0 then goto 2;

К-во Просмотров: 401
Бесплатно скачать Курсовая работа: Современное состояние вычислительной техники