⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 secant.m

📁 数值分析, 同济大学教材<<现代数值数学和计算>>数值分析课程所有算法的matlab代码,所有例程均经过测试,私家珍藏
💻 M
字号:

function [x, it, hist]=secant(x0, x1, f, maxit, tol, opt) 

if nargin<6,            opt = 2; 
    if nargin<5,        tol = 1e-4; 
        if nargin<4,    maxit = 100; 
            if nargin<3,error('too few input!!'); 
            end; end; end; end; 
xold = x0; 
x    = x1; 
fold = feval(f,xold); 
fx   = feval(f,x); 
f0   = fold; 
hist = [ x0 x1; fold fx]; 
for it = 1:maxit, 
    if opt==1, 
        xp = x0; 
        fp = f0; 
    elseif opt==2, 
        xp = xold; 
        fp = fold; 
    end 
    xn = x - fx * (x-xp) / (fx-fp) ; 
    fn = feval(f,xn); 
    hist = [hist [xn;fn] ]; 
    if abs(fn)<tol, 
        disp('Secant method successes!!'); 
        return; 
    end 
    if opt==2, 
        xold  = x; 
        fold  = fx; 
    end 
    x  = xn; 
    fx = fn; 
end 
disp('Secant method fails!!'); 
%% end of secant 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -