f(a) X* X
a
функция на концах отрезка имеет одинаковые знаки. Оставшийся отрезок [a, X1] снова делим пополам, получаем точку X2=(a+X1)/2 и вычисляем f(X2). Пусть знак функции f(X2) совпадает со знаком функции f(a), тогда отбрасываем отрезок [a, X2] и оставшийся отрезок [X1, X2] снова делим пополам. Процедуру выполняем до тех пор, пока с заданной точностью не приблизимся к X*, т. е. процесс заканчивается при /f(Xcp)/<=ε или /Xcpl+1-Xcpl/<=ε. Метод половинного деления прост, но вычислительная эффективность его не велика.
1.4.2 Блок схема алгоритма.
1.4.3 Трассировка алгоритма с помощью пакета Mathcad.
1.4.4 Программа на языке Pascal и результаты решения.
Program Pl;
uses crt; var
a,b,c,x,eps,fa,fb,fc:real; i:integer; flag:Boolean;
Function MyFun(x:real):Real;
Begin
MyFun:=2*exp(x)+3*x-1;
End;
(*------------------------------*)
Begin
writeln('a,b,eps'); readln(a,b,eps); fa:=MyFun(a); fb:=MyFun(b);
flag:=true;
While flag do
Begin c:=(b+a)/2; fc:=MyFun(c);
If (fc=0)or(ABS(b-a)<eps) then begin
writeln('a=',a:4:7,' b=',b:4:7,' c=',c:4:7,' f(c)=',fc:4:7,' |b-a|=',abs(b-a):4:7);
flag:=false;
end
Else
Begin
If MyFun(a)*MyFun(c)<0 then b:=c
Else a:=c;
End;
End;
End.
Результат работы программы:
a=-0.2500000 b=-0.1875000 c= -0.2187500 f(c)=-0.0492049 :b-a:=0.0625000
2. Решение нестандартной задачи на языке Pascal.
2.1 Блок-схема алгоритма.
2.2 Трассировка алгоритма.
массив z
i=1
z[1]=5
I=2
z[2]=6
i=3
z[3]=8
массив а
I=1
a[1]=1
i=2
a[2]=3
i=3
a[3]=6
i=1
f[1]=14.70
I=2
f[2]=27.00
I=3
f[3]=52.38
s=0
i=1
s[1]=6
I=2
s=15
I=3
s=29
массив z
i=1
z[1]=5
i=2
z[2]=6
I=3
Z[3]=8
массив a
I=1
A[1]=1
i=2
a[2]=3
I=3
A[3]=6
массив f
I=1
F[1]=14.70
I=2
F[2]=27.00
I=3
F[3]=52.38
S=29
2.3 Решение нестандартной задачи на языке Pascal.
Program rgr;
uses crt,printer;
var
z:array[1..3] of integer;
a:array[1..3] of integer;
f:array[1..3] of real;
S,i,j:integer; begin
for i:=1 to 3 do begin
write('z[',i,']=') ;
readln(z[i]);
end;
begin
for i:=1 to 3 do begin
write('a[',i,']=') ;
readln(a[i]);
end;
for i:=1 to 3 do f[i]:=sqrt((z[i]+a[i])*(z[i]+a[i])*(z[i]+a[i]));
S:=0;
for i:=1 to 3 do S:=S+z[i]+a[i];
writeln('массив z');
for i:=1 to 3 do
write(z[i],' ');
writeln;
writeln('массив a');
for i:=1 to 3 do begin write(a[i],' ');
writeln;
writeln('массив a');
for i:=1 to 3 do begin write(f[i]:4:2,' ');
writeln;
end;
writeln('Сумма эллементов массивов');
writeln(S);
end;
end;
end.
Результаты работы программы:
массив z
5 6 8
массив а
1 3 6
массив f
14.70
27.00
52.38
сумма элементов массивов
29
3. Построение графика функции с помощью табличного процессора Еxсel.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.