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

Matlab for loop problem

  1. Jan 19, 2012 #1
    I'm have a really hard time understanding for loops in matlab. How can I solve y=x^3+1 with a for loop?
     
  2. jcsd
  3. Jan 19, 2012 #2
    Why would you use a for loop? Are you implementing some sort of iterative algorithm? Just use the cubic formula.
    This really belongs in the programming section. I'll ask one of the mods to move it.
     
  4. Jan 19, 2012 #3
    it's an assignment. we are supposed to use the dot operator which is really easy and a for loop and the range is 0<=x<=2 with 100 points distributed uniformly. I have tryed the fallowing
    for i=0:01:2
    y(i)=1+i^3
    end
    this won't work
     
  5. Jan 19, 2012 #4

    jhae2.718

    User Avatar
    Gold Member

    To get a uniformly space range of numbers on a specified interval use the linspace command.

    If you are trying to find the zero(s) of the function, what is a test you can use to check if you are close?

    You may also find eps, the machine epsilon, to be of use.
     
  6. Jan 19, 2012 #5
    You're trying to raise a vector to a power; using "i^3" will attempt to multiply i*i*i, which is not what you want. The correct expression is "i.^3". You should be able to figure out what to do from there.
     
  7. Jan 19, 2012 #6

    jhae2.718

    User Avatar
    Gold Member

    Code (Text):

    [COLOR="Blue"]for[/COLOR] i=0:01:2
        y(i)=1+i^3
    [COLOR="Blue"]end [/COLOR]
     
    You are using i as an index for y, when i is not an integer. (You can't get the 0.1th element of y, for example.)

    In MATLAB, you should always prefer using vectors to loops. How can you vectorize this?
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Matlab for loop problem
  1. MATLAB - Simple loop? (Replies: 6)

  2. Problem in loops (Replies: 14)

Loading...