Определим функцию f (x) = x^2 - 5cos(x-1); Необходимо найти ноль функции f (x) , т.е. значение х, при котором f(x) = 0; f(x) обратится в 0 , если cos(x-1) > 0 => - pi/2 < x < pi/2 => => (2 - pi)/2 < x < (2 + pi)/2 Корня будет два. Определим интервал для первого корня. Левая граница а = - 0,57, правая граница b = 1 Для второго корня левая граница а = 1, правая b = 2 корни будем находить методом деления пополам. Интервал [ a, b] делится пополам и определяется знак функции в этой точке, в зависимости от знака изменяется левая или правая граница интервала.
Программа будет следующей:
function f(x: real): real; begin f:=x*x-5*cos(x-1); end; { основная программа } var a,b,c,eps: real; k: integer; { a - начало интервала, b - конец } begin write('a = '); readln(a); write('b = '); readln(b); if f(a)*f(b)<0 then begin write('точность вычислений eps: '); readln(eps); k:=1; while abs(a-b)>eps do begin c:=(a+b)/2; if f(c)<>0 then begin if f(c)*f(b)<0 then a:=c else b:=c end; k:=k+1; end; writeln('корень = ',a:12:8); writeln('количество итераций: ',k); end else writeln('интервал задан неверно'); end.
a = -0.57 b = 1 точность вычислений eps: 0.00001 корень = -0.51726021 количество итераций: 19
a = 1 b = 2 точность вычислений eps: 0.00001 корень = 1.83345795 количество итераций: 18
var y:real;
begin
write('y = ');
readln(y);
writeln(sqrt(sqrt(y)-5*y+8):5:3);
end.
Пример:
y = 0.09
2.802
2.
var x,y,t1,t2,t3:real;
begin
write('x = ');
readln(x);
t1:=x*x; // x^2
t2:=x+2.5; // x+2.5
t3:=t1*t2; // x^3+2.5*x^2
y:=t3-x; // x^3+2.5*x^2-x
y:=y+1; // x^3+2.5*x^2-x+1
writeln('1) y = ',y:5:2);
writeln('2) y = ',x*x*x+2.5*x*x-x+1:5:2);
end.
Пример:
x = 3
1) y = 47.50
2) y = 47.50
3.
var a,b,c:real;
begin
write('a = ');
readln(a);
write('b = ');
readln(b);
c:=sqrt(a*a+b*b);
writeln('c = ',c:6:4);
end.
Пример:
a = 3
b = 4
c = 5.0000