%% 22.10.2024 % İkiye Bölme Algoritması clear all, close all, clc; F = @(x) ((tanh(x)*(x^2 - 2)*(x + 1))); dF = @(x) (tanh(x)*(x^2 - 2) - (x^2 - 2)*(tanh(x)^2 - 1)*(x + 1) + 2*x*tanh(x)*(x + 1)); %% xalt = -1; % alt sınır xust = 2; % üst sınır t=xalt:0.0001:xust; f1= (tanh(t).*(t.^2 - 2).*(t + 1)); f2= (tanh(t).*(t.^2 - 2) - (t.^2 - 2).*(tanh(t).^2 - 1).*(t + 1) + 2.*t.*tanh(t).*(t + 1)); plot(t,f1,'Color','b','LineWidth',2) hold on plot(t,f2,'r','LineWidth',2,'LineStyle','-.') hold off legend('fx','f^1x') %% while true xa = input('xa değerini giriniz: '); xb = input('xb değerini giriniz: '); if dF(xa)*dF(xb) < 0 break; else disp('Girilen değerler şartı sağlamıyor!'); continue end end fprintf('Iter.\t xa\t xb \t xk \t F(xk)\t dF(xk) \t\n'); fprintf('----------------------------------------------------------------\n'); i=0; xk = xa + abs(xb-xa)/2; disp([i,xa,xb,xk,F(xk),dF(xk)]) while true i = i + 1; xk = xa + abs(xb-xa)/2; if( dF(xk)== 0 || xb-xa < 1e-4) break; elseif dF(xk)*dF(xa)>0 xa=xk; else xb=xk; end disp([i,xa,xb,xk,F(xk),dF(xk)]) end fprintf('Fonksiyonu min yapan değer = %f\n',xk);