Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function[] = newton(f, a, b)
- if isa(f, 'function_handle')
- fprintf('Введенная функция соответствует необходимому формату. Ищем корень\n')
- else
- fprintf('Введенная функция не соответствует формату function_handle\n')
- return
- end
- if b < a
- fprintf('Введенное число b больше, чем a. Меняем местами\n')
- c = b;
- b = a;
- a = c;
- fprintf('Текущее значение a: %f, текущее значение b: %d\n', a, b)
- end
- fplot(f, [0.1 4])
- grid on, hold on
- xlabel('x')
- ylabel('y')
- %epsilon = 0.01;
- syms x;
- % if (f(a) * subs(diff(f(x), 1), a)) > 0
- % fprintf('Выбираем в качестве точки для первого приближения точку a\n')
- % approx = a;
- % else
- % if (f(b) * subs(diff(f(x), 1), b)) > 0
- % fprintf('Выбираем в качестве точки для первого приближения точку b\n')
- % approx = b;
- % end
- % end
- %
- approx = (a + b)/2;
- differential = diff(f(x));
- for i = 1:1:5
- %fprintf('Текущая точка: %f\n', approx)
- approx = approx - f(approx) / subs(differential, approx);
- end
- fprintf('Найденный корень: %f\n', approx)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement