Добавил:
nikolozzz15@gmail.com Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

NikolaevKirill_gr7291_ver1

.m
Скачиваний:
1
Добавлен:
27.11.2022
Размер:
2 Кб
Скачать
clc  % очистка экрана
clear %  очистка всех переменных
close all % закрытие всех графиков

disp('Николаев Кирилл Викторович'); % ФИО студента
disp('Группа 7291'); % Номер группы
disp('Версия программы 7.5.0(R2007b)');
disp('Дата релиза 18.05.2018');
disp('Вариант №10'); % Номер варианта
disp('Даны две функции: y1(x) = sin(x) и y2(x) = sqrt(x) / 100 . Написать программу на языке MatLab для нахождения методом последовательных приближений координаты x n-ой по счету точки пересечения этих функций на интервале [0, ?). Значение n пользователь вводит с клавиатуры при работе программы. Координатное значение определяется с заданной точностью (? = 0.001). Отобразить графически данные кривые в заданном диапазоне, включая точку пересечения.');
q=input('введите номер  необходимой по счету точки пересечения : '); %номер точки пересечения по счету


e=0.001; %погрешность 
xn=0; %начальное значение 
dx=0.001; % изменение аргумента
n=1; % переменные n,r,q  
r=1; % используются для счетчиков
xt(n)=xn; 


while r<=q % цикл для нахождения первой точки пересечения
    dy=cos(xt(n))-sqrt(xt(n))/100;% нахождение разности между значениям функциями
     if dy>0 % определения знака 
        t=1;
    else
        t=-1;
    end;
    dy=dy*t;
    
    while dy>0 % цикл для нахождения точки пересечения
        dy=cos(xt(n))-sqrt(xt(n))/100;
        dy=dy*t;
        n=n+1;
        xt(n)=xt(n-1)+dx; %индексация значений Х     
        w=1;
         while abs(dy)>e && w<2 %  точное нахождение точки пересечения путем половинного деления отрезка
             x=(xt(n-1)+xt(n))/2;
             dy=cos(x)-sqrt(x)/100;
             dy=dy*t;
             w=w+1;
           
             if dy>0%определение приближенного значения x в зависимости от знака dy
                 x=xt(n-1);
                 

             else
                 x=xt(n);
                 
             end 
             
         end

    end
        
r=r+1;


end
fplot('cos(x)',[0 x+100*dx],'r'); % Вывод графиков функций y1(x) и y2(x)
hold on                           % в заданном диапазоне
fplot('sqrt(x)/100',[0 x+100*dx]);
grid on
legend ('cos(x)','sqrt(x) / 100');
disp('координата х = ');disp(x) %вывод значения координаты Х
Соседние файлы в предмете Информационные технологии