Simple fixed-point iteration method

119 次查看(过去 30 天)
My task is to implement (simple) fixed-point interation.
So far, I've got the following and I keep receiving error Undefined function 'fixedpoint' for input arguments of type 'function_handle'.
(I'm new in Matlab, so there may be both syntactical or semantical errors...)
function [ x ] = fixedpoint(g,I,y,tol,m)
% input: g, I, y, tol, max
% g - function
% I - interval
% y - starting point
% tol - tolerance (error)
% m - maximal number of iterations
% x - approximate solution
a=I(1);b=I(2);
if(y<a | y>b)
error('The starting iteration does not lie in I.')
end
x=y;
gx=g(y);
while(abs(x-gx)>tol & m>0)
if(gx<a | gx>b)
error('The point g(x) does not lie in I.')
end
y=x;
x=g(y);
m=m-1;
end

采纳的回答

Dimitris Kalogiros
Dimitris Kalogiros 2019-9-22
Dear John
Put your function into the same folder with the program (m-file) that calls it.
  4 个评论
John  Smith
John Smith 2019-9-23
I am not sure, what I have done, but it is working fine now. ¯\_(ツ)_/¯
Anyway, thank you for your time.
> I wonder , what is the calling program.
It might have been the problem. I guess the function and the file have to share the name, right?(I mean, if I code a function F, then it has to be saved as file F.m.)
Dimitris Kalogiros
Dimitris Kalogiros 2019-9-24
Hm hm, I don't know if it is necessary , but I always follow this rule.

请先登录,再进行评论。

更多回答(4 个)

Ishita Sharma
Ishita Sharma 2020-8-18
f(x)=x^2 - x -1 =0

emmanuel john Lavarias
  1. Solve one real root of ex2x5=0ex2x5=0 with x0=2x0=2 using the Fixed-Point Iteration Method accurate to four decimal places.

Ahteshamul Hoque  Tareq
a=I(1);b=I(2); if(y<a | y>b) error('The starting iteration does not lie in I.') end x=y; gx=g(y); while(abs(x-gx)>tol & m>0) if(gx<a | gx>b) error('The point g(x) does not lie in I.') end y=x; x=g(y); m=m-1; end

Tsega'ab
Tsega'ab 2023-12-13
function [ x ] = fixedpoint(g,I,y,tol,m)
% input: g, I, y, tol, max
% g - function
% I - interval
% y - starting point
% tol - tolerance (error)
% m - maximal number of iterations
% x - approximate solution
a=I(1);b=I(2);
if(y<a | y>b)
error('The starting iteration does not lie in I.')
end
x=y;
gx=g(y);
while(abs(x-gx)>tol & m>0)
if(gx<a | gx>b)
error('The point g(x) does not lie in I.')
end
y=x;
x=g(y);
m=m-1;
end

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by