Решение уравнения 2ех+3х-1=0 приближёнными методами. Построение графика функции с помощью табличного процессора Еxсel, страница 2

            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 Блок-схема алгоритма.


Блок-схема: подготовка: i=1..3

 

 


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.