How can I solve an equation using fixed point method?

조회 수: 6 (최근 30일)
Carla Coutinho
Carla Coutinho 2016년 7월 2일
댓글: Radu Trimbitas 2020년 3월 20일
g(x)=2^-x;
[1/3,1];
tol=10^-4;
max=100
  댓글 수: 2
David Miller
David Miller 2016년 7월 2일
편집: David Miller 2016년 7월 2일
Please be more specific. What does [1/3,1] and max=100 represent? I assume tol is the tolerance for convergence, sometimes referred to as epsilon.
Radu Trimbitas
Radu Trimbitas 2020년 3월 20일
Yes, David, tol is the tolerance, or epsilon; max is the maximum number of iterations; x0 is the initial approximation (starting value)
Code for sapmeth
function [z,ni]=sapmeth(f,x0,tol,maxit)
for k=1:maxit x1=f(x0);
if abs(x1-x0) < tol %success
z=x1; ni=k;
return;
end;
x0=x1;
end error('iteration number exceeded')
Call:
f=@(x) 2^(-x);
x0=0.6;
[z,ni]=sapmeth(f,x0,1e-6,100)
Results
z=0.641185
n=15

댓글을 달려면 로그인하십시오.

답변 (1개)

Radu Trimbitas
Radu Trimbitas 2016년 7월 4일
If you wish to solve x=2^(-x) use successive approximation method. Provide a function, a starting value and a tolerance. function [z,ni]=sapmeth(f,x0,tol,maxit) for k=1:maxit x1=f(x0); if abs(x1-x0) < tol %success z=x1; ni=k; return; end; x0=x1; end error('iteration number exceeded')
if you provide the input parameters f=@(x) 2^(-x), x0=0.6 and call [z,ni]=[z,ni]=sapmeth(f,x0,1e-6,100) after 15 iterations one obtains the fixpoint z=0.641185

카테고리

Help CenterFile Exchange에서 Numeric Solvers에 대해 자세히 알아보기

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by