11 Microsoft Excel. Шаговый метод
x |
f(x) |
|
|
|
|
|
|
|
|
|
| ||
0 |
1 |
|
|
|
|
|
|
|
|
|
| ||
0,5 |
-0,58579 |
|
|
|
|
|
|
|
|
|
| ||
1 |
-2 |
|
|
|
|
|
|
|
|
|
| ||
1,5 |
-3,17157 |
|
|
|
|
|
|
|
|
|
| ||
2 |
-4 |
|
|
| |||||||||
2,5 |
-4,34315 |
|
| ||||||||||
3 |
-4 |
|
| ||||||||||
3,5 |
-2,68629 |
|
| ||||||||||
4 |
0 |
|
| ||||||||||
4,5 |
4,627417 |
|
| ||||||||||
5 |
12 |
|
| ||||||||||
|
|
|
| ||||||||||
|
|
|
| ||||||||||
|
|
|
| ||||||||||
|
Подбор параметра |
| |||||||||||
|
x |
f(x) |
| ||||||||||
|
0,309909 |
-5E-06 |
| ||||||||||
|
4 |
0 |
| ||||||||||
|
|
|
| ||||||||||
|
Поиск решения |
| |||||||||||
|
0,309907 |
-3,7E-07 |
|
|
|
|
|
|
|
|
| ||
|
4 |
0 |
|
|
|
|
|
|
|
|
| ||
|
|
|
|
|
|
|
|
|
|
|
|
12 Microsoft Excel. Метод половинного деления Алгоритм
Заполнить ячейки A1:H1 последовательно следующим образом: a, b, c=(a+b)/2, f(a), f(b), f(c), |b-a|<=e.
Ввести в ячейку A2 число 0, в ячейку B2 - число 0.5.
В ячейку C2 ввести формулу: =(A2+B2)/2.
В ячейку D2 ввести формулу: =2^A2-4*A2, скопировать эту формулу в ячейки E2:F2.
Ввести в ячейку G2 формулу: =ЕСЛИ(ABS(B2-A2)<=2*$H$2;C2; "-").
Ввести в ячейку H2 число 0,001.
В ячейку A3 ввести формулу: =ЕСЛИ(D2*F2<0;A2;C2).
В ячейку B3 ввести формулу: =ЕСЛИ(D2*F2<0;C2;B2).
Диапазон ячеек C2:G2 скопировать в диапазон ячеек C3:G3.
Выделить диапазон ячеек A3:G3 и с помощью маркера заполнения заполнить все нижестоящие ячейки до получения результата в одной из ячеек столбца G (это ячейки A3:G53).
13
14
Pascal. Шаговый метод
Блок-схема
Начало
F(x)=sin(3.14x)+x2-1
c,d,h
k=0
a=e
b=a+h
F(a)*F(b)<=0
k=k+1
k,a,b
a=b
b>d
конец.
Программа
Program ex_1;
Uses crt;
Var c,d,h,a,b:real ; k:integer ;
Function F(x:real ):real ;
Begin
F:= exp(x*ln(2))-4*x
End ;
Begin
Writeln ('vvedite c,d,h');
Readln (c,d,h);
k:= 0 ;
a:=c;
Repeat
b:=a+h;
If F(a)*F(b)<= 0 then
begin
k:=k+1 ;
Writeln ('k=',k,' a=',a:5 :2 ,' b=',b:5 :2 );
end ;
a:=b;
until b>d;
end.
Ответ: k=1 a=0 b=0.5
k=2 a=3.5 b=4
k=3 a=4 b=4.5
16
Pascal. Метод половинного деления
Блок-схема
Начало
a,b,e
f(a)
c
f(a)*f(c)<0
a=c
b=c
b-a >=e
x
конец.
17
Программа
program mdp;
function f(x: real): real;
begin
f:=exp(x*ln(2))-4*x;
end;
var
a, b, e, c, x: real;
begin
write('a=');
read(a);
write('b=');
read(b);
write ('e=');
read(e);
c:=(a+b)/2;
while(b-a)>e do
begin
if(a)*f(c)<0 then
b:=c
else
a:=c;
writeln('a=', a:3:4, 'b=', b:3:4, 'f(a)=', f(a):6:9, 'f(b)=',f(b):6:9);
c:=(a+b)/2;
18
end;
x:=(a+b)/2;
writeln ('x=',x:3:3,' f(x)=',f(x):4:4);
readln;
end.
Ответ:
a=0
b=0.5
e=0.001
a=0.2500b=0.5000f(a)=0.189207115f(b)=-0.585786438
a=0.2500b=0.3750f(a)=0.189207115f(b)=-0.203160445
a=0.2500b=0.3125f(a)=0.189207115f(b)=-0.008142188
a=0.2813b=0.3125f(a)=0.090247360f(b)=-0.008142188
a=0.2969b=0.3125f(a)=0.040980536f(b)=-0.008142188
a=0.3047b=0.3125f(a)=0.016401064f(b)=-0.008142188
a=0.3086b=0.3125f(a)=0.004124898f(b)=-0.008142188
a=0.3086b=0.3105f(a)=0.004124898f(b)=-0.002009781
a=0.3096b=0.3105f(a)=0.001057274f(b)=-0.002009781
x=0.310 f(x)=-0.0005
19
a=3.5
b=4
e=0.001
a=3.9000b=3.9500f(a)=-0.671472135f(b)=-0.345018737
a=3.9000b=3.9250f(a)=-0.671472135f(b)=-0.510526065
a=3.9000b=3.9125f(a)=-0.671472135f(b)=-0.591564328
a=3.9000b=3.9063f(a)=-0.671472135f(b)=-0.631658927
a=3.9000b=3.9031f(a)=-0.671472135f(b)=-0.651600629
a=3.9000b=3.9016f(a)=-0.671472135f(b)=-0.661545147
a=3.9000b=3.9008f(a)=-0.671472135f(b)=-0.666510831
x=3.900 f(x)=-0.6690