1. 程式人生 > >【MATLAB】一維搜尋之牛頓法

【MATLAB】一維搜尋之牛頓法

clear;clc;formatcompact

syms x

f =3*x^4-16*x^3+30*x^2-24*x+8;

% f =x^4-4*x^3-6*x^2-16*x+4; %書上P99例題

x0 = 3; %設定初始點

i = 1;

while(i)

    x0 = x0-subs(diff(f,x),x0)/subs(diff(diff(f,x),x),x0);%牛頓法迭代

    if abs(subs(diff(f,x),x0))<1e-4 %迭代停止的條件

        i = 0;

    end

end

disp(sprintf('用牛頓法求得的近似解為%9.15f',double(x0))) %列印結果

程式輸出結果:

用牛頓法求得的近似解為2.000000002785312