Удивительно, но никто еще не предложил использовать функцию, предназначенную для этого в Matlab. Используйте fzero здесь. В любом случае, Fzero - лучший выбор, чем fsolve, для которого требуется набор инструментов оптимизации. И, да, вы можете сделать это с помощью метода Ньютона, или даже деления пополам или секущего метода. Но заново изобретать колесо - это вообще неправильно. Используйте функциональность, которая уже существует, когда она есть.
Проблема в том, чтобы найти точку, в которой
sin(2*x) == log(x)
Здесь log (x) относится к натуральному логарифму. Сделайте это, вычитая одно из другого, а затем ищите ноль результата.
fun = @(x) sin(2*x) - log(x);
Прежде чем сделать это, ВСЕГДА готовьте сюжет. ezplot может сделать это для вас.
ezplot(fun)
На графике будет показан один корень от 1 до 2.
fzero(fun,2)
ans =
1.3994