Sketch the analytical solution, using the formula below. HELP

1 visualización (últimos 30 días)
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
"

Respuesta aceptada

John D'Errico
John D'Errico el 19 de Dic. de 2021
Editada: John D'Errico el 19 de Dic. de 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.

Más respuestas (1)

Image Analyst
Image Analyst el 19 de Dic. de 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).

Categorías

Más información sobre Line Plots en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by