Добавил:
I want to die Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 сем / пояснительная записка.pdf
Скачиваний:
1
Добавлен:
04.04.2022
Размер:
975.27 Кб
Скачать

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