0
저는 루트 검색을위한 고정 소수점 방법을 구현하고 있습니다. 다음은 코드입니다.Matlab - 함수 : 변수 벡터를 반환합니다.
clear;
clc;
f = inline('y^4 - 2', 'y');
phii = inline('y - (y^4 -2)/(4*(y^3))', 'y');
x0 = 4;
toler = 10^-10;
nmax = 1000;
a = fixpoint(x0,toler,nmax,f,phii)
function[alpha,res,iters] = fixpoint(x_0,tol,max_iters,fun,phi)
error = tol +1;
iters = 0;
xvect = x_0;
x = x_0;
res = fun(x);
xdif = [];
while iters < max_iters & error > tol
iters = iters +1;
x_n = phi(x);
error = abs(x_n - x);
xdif = [xdif; error];
x = x_n;
xvect = [xvect;x];
res = [res;fun(x)];
end
alpha = xvect(end);
residual = res(end);
return
end
이 방법은 정상적으로 작동합니다. 내가 가지고있는 유일한 문제는 alpha, res (마지막 엔트리가 중요도의 나머지이지만 모든 값이 필요한 벡터) 및 반복의 세 가지를 모두 반환해야한다는 것입니다.
현재 알파 만 반환됩니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까?