Plotting in Matlab with Range for Independent Variable

2 visualizaciones (últimos 30 días)
Matlab12345
Matlab12345 el 19 de Dic. de 2019
Respondida: Star Strider el 19 de Dic. de 2019
I'm creating a simple model of a spring-mass system and am trying to plot the amplitude as a function of the spring constant. I'm using the equation natural frequency = s=sqrt(k/m), where k is the spring constant and m is the mass. Also, amplitude = sqrt(natural frequency^2 + initial position^2)/natural frequency.
I'm not getting any errors, but I'm getting an empty plot and an "answer" in the command window that I do not need.
The code I have so far is:
function A = amp(k)
g = 4; %initial position
m = 2; %mass
k = 0.05:0.1:0.3; %range of spring constant
A = sqrt((sqrt(k/m)).^2+16)/(sqrt(k/m));
figure(3)
plot(k,A);
end
I'd appreciate it if someone could take a closer look at the code.

Respuesta aceptada

Star Strider
Star Strider el 19 de Dic. de 2019
You need to use element-wise operations in the division:
A = sqrt((sqrt(k/m)).^2+16)./(sqrt(k/m));
Try this:
g = 4; %initial position
m = 2; %mass
k = 0.05:0.01:0.3; %range of spring constant
A = sqrt((sqrt(k/m)).^2+16)./(sqrt(k/m));
figure(3)
plot(k,A);
I also increased the number of elements in ‘k’.

Más respuestas (0)

Categorías

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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by