Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

How do I find the Critical points of a multi-variable function using MATlab?

  1. Mar 22, 2005 #1
    How do I find the Critical points of a two-variable function using MATlab?

    I have a problem, I cannot seem to find the critical points of a two-variable function for the life of me!

    The funtion [tex]f(x,y) = 10x^2y - 5x^2 - 4y^2 - x^4 -2y^4[/tex] is supposed to have six potential critical points. I have the following:

    [tex]f_x = 20yx - 10x - 4x^3[/tex]
    [tex]f_y = 10x^2 - 8y - 8y^3[/tex]

    For what it's worth:

    [tex]\nabla f_x = (20y - 10 - 12x^2) i + (20x) j[/tex]
    [tex]\nabla f_y = (20x) i + (-8-24y^2) j[/tex]

    [tex]\nabla f_x = \lambda\nabla f_y[/tex]

    [tex]\lambda = \frac{20y - 10 - 12x^2}{20x} = \frac{20x}{-8-24y^2}[/tex]

    I know that the potential critical points are at [tex]f_x = f_y = 0[/tex], but how do I find these using MATlab, or even on paper. How would I solve for both equations?

    I just can't crack this problem!

    P.S. - I have MATlab version 6.5
    Last edited: Mar 22, 2005
  2. jcsd
  3. Mar 22, 2005 #2
    Here are some preliminary (probably wrong) answers:

    Ok, I took the first equation [tex]f_x = 20yx - 10x - 4x^3 = 0[/tex] and factored out a [tex]2x[/tex] to get [tex]2x (10y - 5 - 2x^2) = 0[/tex].

    Then I solved for [tex]-2x^2[/tex] to get [tex]-2x^2 = 5 - 10y[/tex] and I substituted that into the second equation of [tex]f_y = 10x^2 - 8y - 8y^3 = 0[/tex] to get [tex]f_y = -5(5 - 10y) - 8y - 8y^3[/tex]. This resolves down to [tex]-8y^3 + 42y = 25[/tex] which one can solve and get [tex]y = 1.898, 0.647, -2.545[/tex], but what do I do now?
    Last edited: Mar 22, 2005
  4. Mar 22, 2005 #3
    Using the supposed answers, I figured this:

    Plug this [tex]y = 1.898, 0.647, -2.545[/tex] into [tex]f_x = 20yx - 10x - 4x^3[/tex] to get [tex]x = \pm 2.644, \pm 0.857, 0[/tex]

    Are these correct? When the [tex](x, y)[/tex]'s are plugged into [tex]f_x[/tex] and [tex]f_y[/tex] they are pretty close to zero (rounding). But for some reason I don't think this is correct. How would I check with MATlab?
  5. Mar 22, 2005 #4
    This may not be any help but ...

    have you tried creating symbolic variables for x and y?

    >syms x y
    and then solve for g
    (I would have tyied this before posting but my MATlab has a bug and willl not recognise the syms command!)
    Last edited: Mar 22, 2005
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook