Matlab problems with fsolve


by La82
Tags: fsolve, matlab
La82
La82 is offline
#1
Nov20-11, 09:37 PM
P: 6
Hi everyone,

I am a matlab newbie and am having some problems getting fsolve to work. I tried using the example given in the help section but it keeps saying that my function (lambda_y1) since that is the first one it finds is unknown.

My functions are generated like this (sorry for the messy notation):

function F = myfun(lambda_y1,lambda_y2,h_1,h_2,F_c1,F_c2)

F = [g_1+607200.*lambda_1.^3-1899000.*lambda_1.^2+1976400.*lambda_1-684600;

g_2+607200.*lambda_2.^3-1899000.*lambda_2.^2+1976400.*lambda_2-684600;

lambda_y1.^2.*(4.*h_m1.^2+y_01.^2)-(4.*(h_m1-h_1).^2+(lambda_1.*y_01).^2);

lambda_y2.^2.*(4.*h_m2.^2+y_02.^2)-(4.*(h_m2+h_2).^2+(lambda_2.*y_02).^2);

F_c1.^2.*(4.*(h_m1-h_1).^2+(lambda_1.*y_01).^2)-16.*g_1^2.*(h_m1 - h_1).^2;

F_c2.^2.*(4.*(h_m2+h_2).^2+(lambda_2.*y_02).^2)-16.*g_2^2.*(h_m2 + h_2).^2];

I call it like this:
x0=[0.5,0.5,0.0005,0.0005,0.1,0.1];
f = fsolve(@myfun,x0,lambda_y1,lambda_y2,h_1,h_2,F_c1,F_c2);

All the constants except for the unknowns are given earlier.

Can anyone help me get this to run?

Lonnie
Phys.Org News Partner Science news on Phys.org
SensaBubble: It's a bubble, but not as we know it (w/ video)
The hemihelix: Scientists discover a new shape using rubber bands (w/ video)
Microbes provide insights into evolution of human language
vivek.iitd
vivek.iitd is offline
#2
Nov21-11, 07:07 AM
P: 54
What are the unknowns you are trying to find???
vivek.iitd
vivek.iitd is offline
#3
Nov21-11, 07:23 AM
P: 54
First of all the syntax which you are using is not correct,
most common and simple syntax is "f = fsolve(@fun,x0)", where x0 are the initial guesses.

In your case also i guess x0 are the initial guesses, the correct syntax should be


x0=[0.5,0.5,0.0005,0.0005,0.1,0.1];
f = fsolve(@myfun,x0);


Also, the myfun should like as follows:



it should initialize all the unknowns with their initial guesses i.e.
unknown1 = x0(1);
unknown2 = x0(2);
and so on,

also you should define all the values of the constants inside the myfun itself.
Constant1 = a;
Constant2 = b; etc.

I guess it will solve the problem.

La82
La82 is offline
#4
Nov21-11, 10:47 AM
P: 6

Matlab problems with fsolve


Hi again,

Yep that did it, thanks alot, but now I have run into another problem. I run my equations and get the following stopping criteria:

No solution found.

fsolve stopped because the problem appears regular as measured by the gradient,
but the vector of function values is not near zero as measured by the
default value of the function tolerance.

I get that there must be a problem with my equations, but I have no idea what to look for!

Lonnie
vivek.iitd
vivek.iitd is offline
#5
Nov21-11, 01:21 PM
P: 54
As you think, may be there is some problem with your equations, then it will be better if you check them with some known values, see if it is giving correct result.
(Also there may be the case that there is "no solution", which i think is not the case, if you are expecting some solution)
Also it will be helpful if you simplify the equations.
You will have to debug it...and see if there are any improvements.


Register to reply

Related Discussions
Fsolve and FOR loops Math & Science Software 1
MATLAB fsolve question Engineering, Comp Sci, & Technology Homework 3
FSOLVE in Matlab Math & Science Software 0
Matlab + fsolve...Please Help General Engineering 4
MATLAB Help w/ fsolve Math & Science Software 6