MATLAB Matlab For Loop Problem: Solve y=x^3+1

  • Thread starter Thread starter kschul14
  • Start date Start date
  • Tags Tags
    Loop Matlab
AI Thread Summary
Understanding for loops in MATLAB can be challenging, especially when solving equations like y = x^3 + 1. In this case, the task involves using a for loop to compute values over a specified range of x from 0 to 2, with 100 uniformly distributed points. A common mistake is using "i^3" instead of "i.^3", which is necessary for element-wise operations on vectors. Additionally, using "linspace" can simplify the creation of the range of x values. It's important to note that MATLAB prefers vectorized operations over loops for efficiency. The discussion also touches on the use of machine epsilon (eps) for checking proximity to zero in functions, emphasizing the need for correct indexing and understanding of MATLAB's vectorization capabilities.
kschul14
Messages
2
Reaction score
0
I'm have a really hard time understanding for loops in matlab. How can I solve y=x^3+1 with a for loop?
 
Physics news on Phys.org
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.
 
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
 
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.
 
kschul14 said:
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

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.
 
Code:
for i=0:01:2
    y(i)=1+i^3
end

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?
 

Similar threads

Replies
9
Views
3K
Replies
2
Views
3K
Replies
4
Views
1K
Replies
1
Views
2K
Replies
32
Views
4K
Replies
8
Views
2K
Back
Top