3. Текст программы clc;
clear;
% ввод данных
eps=input('Введите погрешность ');
a=input('Введите число, соответствующее началу интервала
');
b=input('Введите число, соответствующее концу интервала
'); i1=0; i2=0; i3=0; dY=0.1;
xL=a; % начало интервала xR=b; % его конец
% ищем точки пересечения cos(x) и sin(x)
while dY>0 && xL<xR % ищем точку пересечения графиков в ИНТЕРВАЛЕ
dY=cos(xL)-sin(xL); xL=xL+0.1;
end
dY=0.1; % заново присваиваем значение dY, тк оно нам еще понадобиться
xR=xL-0.1; % конец нового интервала xL=xL-0.2; % начало нового интервала xM=(xR+xL)/2;
if (cos(xL)-sin(xL))*(cos(xR)-sin(xR))<0 % проверка наличия корня
i1=i1+1;
end
x=xL:0.0001:xR; % те значения х, на которых будет строиться график с пересечением функций
j1=1; % счетчик шагов
while abs(sin(xM)-cos(xM))>eps % уточнение корня xM=(xR+xL)/2; % его серединка
if (sin(xL)-cos(xL))*(sin(xM)-cos(xM))<0 % проверка на наличие пересечения ф-ций в первой половине интервала
xR=xM; % корень в первой половине интервала else
7
xL=xM; % корень во второй половине end
j1=j1+1; end
disp('Функции cos(x) и sin(x) пересекаются?'); if i1==1
disp('Да!')
else
disp('Нет!')
end
if i1==1
disp('В точке:') disp(xM)
end
disp('Шагов='); disp(j1); nexttile plot(x,sin(x),x,cos(x));
hold on;% режим сохранения результатов графического вывода title('The graphic of sin(x), cos(x) functions');%
заголовок
xlabel('The coordinate of Ox');%ось ox ylabel('The coordinate of Oy');% ось oy grid on;% сетка графика legend('cos(x)','sin(x)');
% ищем точки пересечения sin(x) и tg(x)
xL=a;
xR=b;
while dY>0 && xL<xR % ищем точку пересечения графиков в ИНТЕРВАЛЕ
dY=sin(xL)-tan(xL); xL=xL+0.1;
end
dY=0.1;
xR=xL-0.1; xL=xL-0.2; xM=(xR+xL)/2;
if (sin(xL)-tan(xL))*(sin(xR)-tan(xR))<=0 % проверка наличия корня
i2=i2+1;
8
end
x=xL:0.0001:xR;
j2=1; % счетчик шагов
while abs(tan(xM)-sin(xM))>eps % уточнение корня xM=(xR+xL)/2;
if (tan(xL)-sin(xL))*(tan(xM)-sin(xM))<0 xR=xM; % корень в первой половине интервала
else
xL=xM; % корень во второй половине end
j2=j2+1; end
disp('Функции sin(x) и tg(x) пересекаются?'); if i2==1
disp('Да!')
else
disp('Нет!')
end
if i2==1
disp('В точке:') disp(xM)
end
disp('Шагов='); disp(j2); nexttile plot(x,tan(x),x,sin(x));
hold on;% режим сохранения результатов графического вывода title('The graphic of sin(x), tg(x) functions');%
заголовок
xlabel('The coordinate of Ox');%ось ox ylabel('The coordinate of Oy');% ось oy grid on;% сетка графика legend('sin(x)','tg(x)');
% ищем точки пересечения cos(x) и tg(x)
xL=a;
xR=b;
while dY>0 && xL<xR % ищем точку пересечения графиков в ИНТЕРВАЛЕ
dY=cos(xL)-tan(xL);
9
xL=xL+0.1; end
dY=0.1;
xR=xL-0.1; xL=xL-0.2; xM=(xR+xL)/2;
if (cos(xL)-tan(xL))*(cos(xR)-tan(xR))<0 % проверка наличия корня
i3=i3+1;
end
x=xL:0.0001:xR;
j3=1; % счетчик шагов
while abs(tan(xM)-cos(xM))>eps % уточнение корня xM=(xR+xL)/2;
if (tan(xL)-cos(xL))*(tan(xM)-cos(xM))<0 xR=xM; % корень в первой половине интервала
else
xL=xM; % корень во второй половине end
j3=j3+1; end
disp('Функции cos(x) и tg(x) пересекаются?'); if i3==1
disp('Да!')
else
disp('Нет!')
end
if i3==1
disp('В точке:') disp(xM)
end
disp('Шагов='); disp(j1); nexttile plot(x,tan(x),x,cos(x));
hold on;% режим сохранения результатов графического вывода title('The graphic of cos(x), tg(x) functions');%
заголовок
xlabel('The coordinate of Ox');%ось ox ylabel('The coordinate of Oy');% ось oy
10
grid on;% сетка графика legend('cos(x)','tg(x)');
11