How can I troubleshoot problems with fsolve in MATLAB?

  • MATLAB
  • Thread starter La82
  • Start date
  • Tags
    Matlab
In summary, the problem seems to be with the equations, and it may be helpful if you simplify them and check them with known values.
  • #1
La82
6
0
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
 
Physics news on Phys.org
  • #2
What are the unknowns you are trying to find?
 
  • #3
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 bex0=[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.
 
  • #4
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
 
  • #5
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.
 

What is fsolve in Matlab?

Fsolve is a built-in function in Matlab that is used to solve systems of nonlinear equations. It is commonly used for finding the roots of a set of equations.

What types of equations can be solved using fsolve?

Fsolve can be used to solve any system of nonlinear equations, including polynomial, exponential, and trigonometric equations.

How does fsolve work?

Fsolve uses an iterative method known as the Newton-Raphson method to find the roots of a system of equations. It starts with an initial guess and then uses this guess to refine its solution until it reaches a desired accuracy.

What are the inputs and outputs of fsolve?

The inputs of fsolve are the system of equations to be solved, the initial guess, and any additional parameters. The output is the solution, which is a vector containing the values of the variables that satisfy the equations.

What should I do if fsolve is not converging?

If fsolve is not converging, it could be due to a few reasons such as a poor initial guess, a badly conditioned system of equations, or an incorrect implementation of the equations. You can try adjusting the initial guess or using a different solver. You can also check your equations for errors or try using a different method of solving the equations.

Similar threads

  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
1K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
2
Views
5K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
2
Views
3K
  • Engineering and Comp Sci Homework Help
Replies
4
Views
4K
Replies
6
Views
1K
  • Introductory Physics Homework Help
Replies
1
Views
1K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
13
Views
6K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
4
Views
6K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
5
Views
5K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
3K
Back
Top