Académique Documents
Professionnel Documents
Culture Documents
clc
%% Метод хорд
% Основные условия
f=@(x) x-exp(-x);
a=0;
b=1;
e=0.00001;
fa = f(a);
fb = f(b);
p = (a+b)/2;
n = 1;
fp = f(p);
while abs(fp) > exp
if fa*fp < 0
b = p;
else
a = p;
end;
p = (a+b)/2;
n = n + 1;
fa = f(a);
fp = f(p);
end;
x0 = p; % корень
disp(['Решение методом половинного деления: ' num2str(x0)]);% выводим решение
disp(['Количество итераций: ' num2str(n)])% количество затраченных итераций
disp(' ');
plot(x0, f(x0),'or')
% text(x0-0.5,20,['x0 = ', num2str(x0)])% подпись корня уравнения на графике
grid on
title(['Метод половинного деления, x0 = ' num2str(x0) ', k = ' num2str(n)])
%% Метод Ньютона
clear all
f = @(x) x - exp(-x); % функция
df = @(x) ( f(x+1e-6) - f(x-1e-6) )/2e-6; % производная (по определению)
e = 0.00001; % точность
a = -4;
b = 4;
subplot(3,1,3)
fplot(f,[a b]),hold on
%% Метод хорд
% Основные условия
f = @(x) (x-2)^4 - log(x); % функция
a=1;
b=3;
e=0.00001;
fa = f(a);
fb = f(b);
p = (a+b)/2;
n = 1;
fp = f(p);
while abs(fp) > exp
if fa*fp < 0
b = p;
else
a = p;
end;
p = (a+b)/2;
n = n + 1;
fa = f(a);
fp = f(p);
end;
x0 = p; % корень
disp(['Решение методом половинного деления: ' num2str(x0)]);% выводим решение
disp(['Количество итераций: ' num2str(n)])% количество затраченных итераций
disp(' ');
plot(x0, f(x0),'or','LineWidth',3)
% text(x0-0.5,20,['x0 = ', num2str(x0)])% подпись корня уравнения на графике
grid on
title(['Метод половинного деления, x0 = ' num2str(x0) ', k = ' num2str(n)])
%% Метод Ньютона
clear all
e = 0.00001; % точность
a = 1;
b = 3;
subplot(3,1,3)
fplot(f,[a b]),hold on