Скачиваний:
0
Добавлен:
10.06.2025
Размер:
3 Кб
Скачать
clc;
close all;
clear;
eps=0.001;
e=eps;
r=3;
i = 0; %счетчик для массива с корнями
xn = 0; xk = 10000; %корни полученные при решении 0<sqrt(x)/100<=1
h = 0.1; %шаг
x = xn : h : xk; %массив значений х для построения графиков
f = @(x) cos(x) - sqrt(x)/100; %вводим функцию для разности функций
while xn < xk
    if f(xn) * f(xn + h) < 0 %условие выполняющееся когда произведение разности меньше нуля
        n = xn; %запоминание занчения хn
        k = xn + h; %присваиваем значение хn+h
        while abs(k - n) >= eps
            c = (n + k) / 2; %центр интервала (n;k)
            if f(n) * f(c) < 0 %смотрим находится ли корень в интервал (n;c)
                k = c; %уменьшаем интервал в два раза
            elseif f(k) * f(c) < 0 %смотрим находится ли корень в интервале (c;k)
                n = c; %уменьшаем интервал в два раза
            end
        end
        i=i+1;%увеличиваем значение переменой на 1
        a(i) = (n + k) / 2;%записываем точку пересечения
    end
    xn = xn + h;%увеличиваем значение переменой на h
end
fprintf('Количество точек пересечения: %g\n', i);
for j=1:i
    fprintf('Координаты точки пересечения под номером %g - (%g, %g)\n', j, round(a(j), r), round(sqrt(a(j))/100, r));
end
hold on; %Команда, позволяющая строить несколько графиков
grid on; %Включаем сетку
figure(1);
title('Графики функций y = cos(x) и y = sqrt(x)/100'); %Название графика
xlabel('Ось X'); %Подпись оси x
ylabel('Ось Y'); %Подпись оси y
plot(x, cos(x),'r'); %Построение графика y=cos(x)
plot(x, sqrt(x)/100,'b'); %Построение графика y=sqrt(x)/100
plot(a, sqrt(a)/100,'.k');%Строим точки пересечения графиков
n=input('Введите номер точки пересечения:');
if n>=1 && n<=i %проверяем если ли корень под номером n
    fprintf('Координаты точки пересечения под номером %g - (%g, %g)\n', n, round(a(n), r), round(sqrt(a(n))/100, r));
else
    error('Точки пересечения под номером %g нет', n);
end
plot(a(n), sqrt(a(n))/100,'ok');%Выделение заданной точки
Соседние файлы в папке Курсач