########################################### No. 5.4.1 ##########################
clear;

################################## Отступление #################################
# Решить уравнение методами половинного деления, итераций, секущих и 
# касательных с точностью 0,001.

#                           4
#                      x⋅log (10)
#                     ───────────  = 3
#                        4
#                     log (x - 1)

###################################### Ебануться,  я не понял %%%%%%%%%%%%%%%%%%
# Википедия говорит, что Метод бисекции или метод деления отрезка пополам — 
# простейший численный метод для решения нелинейных уравнений вида f(x)=0. 
# Предполагается только непрерывность функции f(x). Поиск основывается на теореме 
# о промежуточных значениях.
# https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%B1%D0%B8%D1%81%D0%B5%D0%BA%D1%86%D0%B8%D0%B8
# А так же приводит псевдокод
# ##############################################################################
# Пусть
#
#    xn — начало отрезка по х;
#    xk — конец отрезка по х;
#    xi — середина отрезка по х;
#    epsyn = epsy — требуемая точность вычислений по y (заданное приближение интервала [a; b] : b — a к нулю).
#
# Тогда алгоритм метода бисекции можно записать в псевдокоде следующим образом:
#
#    Начало.
#        Ввод xn, xk, epsyn.
#        Если F(xn) = 0, то Вывод (корень уравнения — xn).
#            Если F(xk) = 0, то Вывод (корень уравнения — xk).
#        dx := xk — xn.
#        Пока b — a > epsy повторять:
#            dx := dx / 2;
#            xi := xn + dx;
#            если sign(F(xn)) ≠ sign(F(xi)), то xk := xi;
#            иначе xn := xi.
#        конец повторять
#        Вывод (Найден корень уравнения — xi с точностью по y — epsy).
#    Конец.
# ##############################################################################

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Непонятный, незаконченый код %%%%%%%%%%%%%%%%%%%
%xn = -10 ;
% xk = 10  ;
% epsyn = 0.001 ;
% epsxn = 0.001 ;
% X = xn:epsxn:xk ;
%    func541 = @ (X) (x / (log10(x-1)^4) - 3)   # Зададим f(x) Как функцию (func541(X))
%# ######
%    if func541(xn) == 0 
%        printf('корень уравнения это xn = %f/n',xn) 
%        if func541(xk) == 0
%             printf('корень уравнения это xk = %f/n',xk) 
%        end
%    end
%dx = xk - xn ;
%while (b - a) > epsyn    
%   dx = dx / 2 ;
%   X(1,i) = xn  
%end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
clear;

xn = -10 ;
xk = 10 ;
epsya = 0.1 ;

function Fx = func541(X)
    Fx = ((X / (log10(X - 1).^4)) - 3) ;
end

%func541 = @ (X) ((X / (log10(X - 1).^4)) - 3)
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    figure;
    X = -10:0.001:10 ;
    plot(X,func541(X))
    
    
    
if func541(xn) == 0 
    printf('корень уравнения это xn = %f/n',xn) 
    if func541(xk) == 0
         printf('корень уравнения это xk = %f/n',xk) 
    end
end
dx = xk - xn ;
a = func541(xn);
b = func541(xk);
xi = xn ;
while (b - a) > epsya
    dx = dx / 2 ;
    xi = xn + dx ;
    if ( sign(func541(xn) ~= sign(func541(xi)))  )
        xk = xi ;
    else 
        xn = xi ;
    end
end
printf('Найден корень уравнения — xi = %f с точностью по y — epsy = %f/n',xi,epsya)  
