Sketch the analytical solution, using the formula below. HELP
3 views (last 30 days)
Show older comments
Joe Selfridge
on 19 Dec 2021
Edited: John D'Errico
on 19 Dec 2021
clc
clear all
m=1
k=100
x0=5e-2
v0=30e-2
w=sqrt(k/m)
f=w/(2*pi)
t=1/f
n=10
x(1)=x0*cos(w*t)+(v0/w)*sin(w*t)
for n=2:n
x(n+1)=x(n-1)*cos(w*t(n-1))+(v0/w)*sin(w*t(n-1))
end
plot(t,x)
I am getting the error mesage "Index exceeds the number of array elements (1)." What am I doing wrong, please help
"
0 Comments
Accepted Answer
John D'Errico
on 19 Dec 2021
Edited: John D'Errico
on 19 Dec 2021
I might guess that you actually meant to MULTIPLY t with the value (n-1) in this exprssion:
x(n+1)=x(n-1)*cos(w*t(n-1))+(v0/w)*sin(w*t(n-1))
Instead, remember that MATLAB does not have implicit multiplication. You need to use the * or the .* operator as appropriate. Here, it will not matter which you use.
x(n+1)=x(n-1)*cos(w*t*(n-1))+(v0/w)*sin(w*t*(n-1))
As well, I would suggest that this next line of code is an incredibly bad idea:
for n=2:n
MATLAB does not charge you more, if you use a different variable name. MATLAB will not be more efficient. Reusing the same variable name there is going to cause you innumerable headaches.
What else? I think you have a problem in your code, because you NEVER actually define x(2). You defined x(1). Then your loop starts at n==2. Therefore the first time through the loop, you define x(n+1), where n = 2. So you defined x(3) as the next element. x(2) was never defined. However, you will use x(2) later on.
I predict this code will produce arbitrarily useless strangeness. But that is just a guess. And since we were never told what the actual forumula you want to produce, we are merely guessing.
0 Comments
More Answers (1)
Image Analyst
on 19 Dec 2021
t is a scalar with value 0.6283. There is no second or third element of t so you can't index t with (n-1).
0 Comments
See Also
Categories
Find more on Line Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!