Write a function called triangle_wave
Mostrar comentarios más antiguos
The function computes the sum Σ((−1^k)*sin((2k+1)(t))/((2k+1)^2)) for each of 1001 values of t uniformly spaced from 0 to 4π inclusive. The input argument is a scalar non-negative integer n, and the output argument is a row vector of 1001 such sums—one sum for each value of t. You can test your function by calling it with n == 20 or greater and plotting the result and you will see why the function is called “triangle_wave”.
For this question, I have written a function to solve it but my code is always rejected by the grader.
This is the plot I get whenever I plot my function;

My attempt made use of a nested for loop as shown:

Please any clue to get my code right will be highly appreciated. Thanks
2 comentarios
Please post your code as text using the "{} Code" format button. Using a screenshot is less convenient, when parts of the code could be used by copy&paste. Now posting an answer requires to retype your code, which is very tedious, because TMW decided to insert a bunch of GUI elements between the question and the answer, such that scrolling is obligatory, if you do not have a 56'' monitor with Giga pixels.
Stephen23
el 5 de Abr. de 2017
@Okongwu Chukwuebuka: please edit your question and delete the useless screenshot and replace it with actual text that we can run. Make sure to format your code by selecting it and then clicking the {} Code button.
Respuesta aceptada
Más respuestas (3)
Torsten
el 5 de Abr. de 2017
1 voto
Use (-1)^k instead of (-1^k).
Best wishes
Torsten.
2 comentarios
Jan
el 5 de Abr. de 2017
+1, Most likely. The text of the question contains (-1^k) already, which is equivocal.
Okongwu Chukwuebuka
el 6 de Abr. de 2017
Konstantinos Pantazis
el 6 de Jul. de 2018
I am new to Matlab but it seems that how I proceed below gives the correct answer.
function v=triangle_wave(n)
t= *linspace*(0,4*pi,1001);
k=0;
l=0;
for k=0:n
l=l+((-1)^k)*sin((2*k+1).*t)./(2*k+1)^2;
end
v=l;
Theocharis Maitis
el 30 de Nov. de 2018
0 votos
function [v]=triangle_wave(n)
t=linspace(0,4*pi,1001);
v=0;
for k=0:n
v=v+((-1)^k)*sin((2*k+1).*t)./(2*k+1)^2;
end
plot(v)
Categorías
Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
