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

 Réponse acceptée

Dimitris Kalogiros
Dimitris Kalogiros le 22 Sep 2019

0 votes

Dear John
Put your function into the same folder with the program (m-file) that calls it.

4 commentaires

John  Smith
John Smith le 22 Sep 2019
Thank you for the answer, but I checked this and I really have the file in the working directory.
In fact, I have another function in the directory, which runs with no problems...
Dimitris Kalogiros
Dimitris Kalogiros le 22 Sep 2019
I wonder , what is the calling program.
If you don't mind , could you provide it ?
John  Smith
John Smith le 23 Sep 2019
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 le 24 Sep 2019
Hm hm, I don't know if it is necessary , but I always follow this rule.

Connectez-vous pour commenter.

Plus de réponses (4)

emmanuel john Lavarias
emmanuel john Lavarias le 27 Sep 2021

0 votes

  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
Ahteshamul Hoque Tareq le 8 Jan 2022

0 votes

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 le 13 Déc 2023

0 votes

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

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by