Hi guys, help me, please!
Mostrar comentarios más antiguos
How can I generate this recurrence formula a

(0)=1;a(1)=0;a(2)=3;a(3)=1/6;for n=2:28;a(n+2)=((6/((n+1)*(n+2)))*sum(a(i)*a(n-i);i=0..n));end
9 comentarios
Walter Roberson
el 2 de Oct. de 2019
Add one to each index, because you cannot use 0 as an index.
Shadi Al-Ahmad
el 2 de Oct. de 2019
Shadi Al-Ahmad
el 2 de Oct. de 2019
James Tursa
el 2 de Oct. de 2019
What is the text of your assignment?
Walter Roberson
el 2 de Oct. de 2019
a(0+1)=1;a(1+1)=0;a(2+1)=3;a(3+1)=1/6;for n=2:28;a(n+2+1)=((6/((n+1)*(n+2)))*sum(a(i+1)*a(n-i+1);i=0..n));end
Except that you need to figure out how to rewrite the sum(a(i+1)*a(n-i+1);i=0..n)) part . Hint: use .* instead of * and vectorize
Shadi Al-Ahmad
el 2 de Oct. de 2019
Shadi Al-Ahmad
el 2 de Oct. de 2019
Walter Roberson
el 2 de Oct. de 2019
As I wrote, you need to figure out how to rewrite the sum(a(i+1)*a(n-i+1);i=0..n)) part. MATLAB does not offer any syntax for summation that uses variable=lower..upper notation (not unless you get fairly far into how the Symbolic Toolbox actually works.) MATLAB offers a symbolic summation of the form
symsum(SYMBOLIC_EXPRESSION, SYMBOLIC_VARIABLE, LOWER_BOUND, UPPER_BOUND)
however, the SYMBOLIC_VARIABLE cannot be used to index any array. symsum() is not intended for summation of a small finite number of terms: it is intended for creating formulas, such as
symsum(m^2, m, 1, n)
to get out the formula for the sum of squares of the first n numbers.
You need to find a different way to do the summation of indexed variables.
Shadi Al-Ahmad
el 2 de Oct. de 2019
Respuestas (1)
James Tursa
el 2 de Oct. de 2019
MATLAB indexing is 1-based, not 0-based. You will need to adjust your indexing:
a(1) = 1;
a(2) = 0;
:
etc
4 comentarios
Shadi Al-Ahmad
el 2 de Oct. de 2019
John D'Errico
el 2 de Oct. de 2019
That is irrelevant. You cannot index a variable at index 0.
Shadi Al-Ahmad
el 2 de Oct. de 2019
Walter Roberson
el 2 de Oct. de 2019
You need to find a different way to do the summation of indexed variables.
Hint: use .* instead of * and vectorize
Hint:
>> A = [1 3 5 7]; A(1:3) .* A(2:4)
ans =
3 15 35
Categorías
Más información sobre Matrix Indexing 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!
