ВУЗ:
Составители:
dist = sqrt((Xpoint-Xcircle(i))^2+(Ypoint-Ycircle(i))^2);
% Сравнение расстояния с радиусом круга
if dist <= Rcircle(i)
where = 1; % Требуемый круг найден
% Увеличение числа найденных кругов на единицу
NC = NC + 1;
% Сохранение номера круга в массиве Nums
Nums(NC) = i;
end
end
% Запись полученных результатов в выходной массив ячеек в зависимости
% от числа выходных аргументов, с которыми была вызвана point
switch nargout
case(2)
% Было указано два выходных аргумента, следовательно, надо записать
% только число кругов в первую ячейку varargout
varargout{1} = NC
case(3)
% Было указано три выходных аргумента, следовательно, надо записать
% число кругов и массив с их номерами в первые две ячейки varargout
varargout{1} = NC;
varargout{2} = Nums;
end
%
% Файл-функция half для решения уравнений методом половинного деления
%
function root = half(fname, left, right, epsilon)
% Файл-функция находит корень уравнения f(x)=0
% методом половинного деления
% Использование
% root = half(fname, left, right, epsilon)
% fname -
имя файл-функции, вычисляющей f(x)
% left, right - левая и правая границы отрезка
% epsilon - точность вычислений
% Проверка значений функции на границах отрезка
if feval(fname, left)*feval(fname, right) > 0
error('Одинаковые знаки функции на границах отрезка')
end
% Деление отрезка пополам
while (right - left) > epsilon
center = (right + left)/2; % вычисление середины
dist = sqrt((Xpoint-Xcircle(i))^2+(Ypoint-Ycircle(i))^2);
% Сравнение расстояния с радиусом круга
if dist <= Rcircle(i)
where = 1; % Требуемый круг найден
% Увеличение числа найденных кругов на единицу
NC = NC + 1;
% Сохранение номера круга в массиве Nums
Nums(NC) = i;
end
end
% Запись полученных результатов в выходной массив ячеек в зависимости
% от числа выходных аргументов, с которыми была вызвана point
switch nargout
case(2)
% Было указано два выходных аргумента, следовательно, надо записать
% только число кругов в первую ячейку varargout
varargout{1} = NC
case(3)
% Было указано три выходных аргумента, следовательно, надо записать
% число кругов и массив с их номерами в первые две ячейки varargout
varargout{1} = NC;
varargout{2} = Nums;
end
%
% Файл-функция half для решения уравнений методом половинного деления
%
function root = half(fname, left, right, epsilon)
% Файл-функция находит корень уравнения f(x)=0
% методом половинного деления
% Использование
% root = half(fname, left, right, epsilon)
% fname - имя файл-функции, вычисляющей f(x)
% left, right - левая и правая границы отрезка
% epsilon - точность вычислений
% Проверка значений функции на границах отрезка
if feval(fname, left)*feval(fname, right) > 0
error('Одинаковые знаки функции на границах отрезка')
end
% Деление отрезка пополам
while (right - left) > epsilon
center = (right + left)/2; % вычисление середины
Страницы
- « первая
- ‹ предыдущая
- …
- 28
- 29
- 30
- 31
- 32
- …
- следующая ›
- последняя »
