Условие задачи
1. Разработать и реализовать программу на языке MATLAB (Scilab), реализующую численное нахождение хотя бы одного корня заданного нелинейного уравнения заданным методом (в соответствии с вариантом) с погрешностью 10-5.
2. В случае невозможности отыскания хотя бы одного корня нелинейного уравнения указанным методом необходимо подробно разъяснить причину и предложить вариант изменения условий таким образом, чтобы уравнение можно было решить заданным методом.
Ответ
Сначала создаём подпрограмму для отделения корней. Необходимо, чтобы значения функции на концах отрезка локализации [A, B] были разных знаков:
%находим отрезок локализации корня f(x)=0
function [A, B] = Otd(f)
delta =1; tmin=-10; tmax=10;
tt=tmin:delta:tmax;
y = f(tt);
n=length(tt);
A=tt(1);B=tt(2);
%находим отрезок с разными знаками функции на концах
for i=1:(n-1)
if (y(i)*y(i+1)0)
A = tt(i); B=tt(i+1);
break
end
end
fprintf('Корень локализован на отрезке [%d;%d]\n',A,B)
end
Для данной задачи нам нужен один любой корень, пытаемся найти интервал с корнем на отрезке [-10;10]. Как только находим, программу завер...