не получить результат при выполнении метода секущей в Matlab - PullRequest
0 голосов
/ 18 июня 2020

Я новичок в MATLAB и работаю над методом секущих численных вычислений, но я не получаю результата, как я решил в своем листе бумаги. Я предоставляю свой код. Пожалуйста, скажите, чего мне не хватает в этом коде.

function x = mysecant(f,x0,x1,n)
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here
y0 = f(x0);
y1 = f(x1);

for i = 1:n
    x = x1 - (x1 - x0)*y1/(y1-y0); %secant formula.
    y = f(x);
    x0 = x1;
    y0=y1;
    x1=x;
end

end

1 Ответ

2 голосов
/ 18 июня 2020

В основном мы должны обновлять значения x1 и y1 после каждой итерации в методе секущей. Вы обновляете только x1, но не y1, добавьте y1 = y. Это решит вашу проблему.

function x = mysecant(f,x0,x1,n)
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here
y0 = f(x0);
y1 = f(x1);

for i = 1:n
    x = x1 - (x1 - x0)*y1/(y1-y0); %secant formula.
    y = f(x);
    x0 = x1;
    y0=y1;
    x1=x;
    y1=y;
end

end
...