Matlab function problems.

Thread Starter

farmosh203

Joined Nov 26, 2006
20
I was looking in the Help menu in Matlab and they gave an example using the "fsolve" command. When trying to do the same exact example, I was getting an error. Here is what the example in the Help menu says:

"First, write an M-file that computes F, the values
of the equations at x.

function F = myfun(x)
F = [2*x(1) - x(2) - exp(-x(1));
-x(1) + 2*x(2) - exp(-x(2))];

Next, call an optimization routine.

x0 = [-5; -5]; % Make a starting guess at the solution
options=optimset('Display','iter'); % Option to display output
[x,fval] = fsolve(@myfun,x0,options) % Call optimizer"


So I made the following into an M file:

"function F = myfun(x)
F = [2*x(1) - x(2) - exp(-x(1));
-x(1) + 2*x(2) - exp(-x(2))];

x0 = [-5; -5]; % Make a starting guess at the solution
options=optimset('Display','iter'); % Option to display output
[x,fval] = fsolve(@myfun,x0,options) % Call optimizer"




When I try to run this code I get the error:

??? Input argument "x" is undefined.

Error in ==> fun1 at 3
F = [2*x(1) - x(2) - exp(-x(1));



Does anyone know what is wrong or how I can fix this problem? Any help would be great, thanks.
 

scubasteve_911

Joined Dec 27, 2007
1,203
I don't know what to tell you, I ran the code as given and it works perfectly.

I named the m-file as myfun.m and ran the three given lines in succession. It gave the result as per the matlab help file.

Steve
 

Dave

Joined Nov 17, 2003
6,969
I was looking in the Help menu in Matlab and they gave an example using the "fsolve" command. When trying to do the same exact example, I was getting an error. Here is what the example in the Help menu says:

"First, write an M-file that computes F, the values
of the equations at x.

function F = myfun(x)
F = [2*x(1) - x(2) - exp(-x(1));
-x(1) + 2*x(2) - exp(-x(2))];

Next, call an optimization routine.

x0 = [-5; -5]; % Make a starting guess at the solution
options=optimset('Display','iter'); % Option to display output
[x,fval] = fsolve(@myfun,x0,options) % Call optimizer"


So I made the following into an M file:

"function F = myfun(x)
F = [2*x(1) - x(2) - exp(-x(1));
-x(1) + 2*x(2) - exp(-x(2))];

x0 = [-5; -5]; % Make a starting guess at the solution
options=optimset('Display','iter'); % Option to display output
[x,fval] = fsolve(@myfun,x0,options) % Call optimizer"




When I try to run this code I get the error:

??? Input argument "x" is undefined.

Error in ==> fun1 at 3
F = [2*x(1) - x(2) - exp(-x(1));



Does anyone know what is wrong or how I can fix this problem? Any help would be great, thanks.
When you call myfun, what are you passing as the input argument x?

The error message indicates that you are not specifying a workspace variable when calling myfun.

Dave
 
Top