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

Matlab function HW help please

  1. Nov 6, 2005 #1
    Hi, i need to write function for the following.
    W=k1x if x<d
    W=k1x+2k2(x-d) if x>=d

    Question is: Create function that computes distance x using the input parameters W, k1, k2, and d.
    W=500 and 2000
    so i get the formulas solving for x that are
    x=W/k1 and x=(W+2k2d)/(k2+2k2)
    but I dont know how to solve for x as I get error which says that x is not defined when i use if/else and i tried using for loop and got the same problem.
    here is my code:
    function x = spring (W)
    if x < 0.1
    else x >= 0.1

    Any help please?
  2. jcsd
  3. Nov 6, 2005 #2
    I see the problem not with the code but with the concept of this calculation it self. If you took a look on what you have written it's obvious why doesn't it work.
    How can you evaluate a function depending on the output of the function?
    you say for example
    y = 3 * x if y < 5
    y = 5 * x + 7 if y >= 5
    this conditions can't be on the dependent variable it can only be on the independent variable you can calculate it easily.
    so y = 3 * x if x < 5/3
    and y = 5 * x + 7 if x >= -2/5

    I know that's are not mutual exclusive conditions. Which in fact what you are doing in first place?

    but why matlab say this error?
    review the code:
    Code (Text):

    function x = spring (W)
    if x < 0.1
    see untill this comparison you haven't made any evaluation for the x.
    If your calculation are recurrsive - depend on the previous value of x -, then you can assume an inital value for x to make this comparison

    That's all,
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook