
Добавил:
DungeonMaster
t.me
мой будущий Dungeon
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:IT ФЭЛ, кафедра МНЭ, 1 сем / Курсач / guzlo2
.m 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');%Выделение заданной точки
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');%Выделение заданной точки