I am having problems getting symsum to calculate the following sumation within this equation:
example.PNG
I am using the following code to get pi:
function piram
%approximates and prints pi with Ramanujan's formula
%called as piram or piram()
%doesn't return a value, but a print
k=sym('k');
sumpart=symsum((factorial(4*k)*(1103+26390*k))/(((factorial(k))^4)*(396^(4*k))),k,0,inf);
inverted=sumpart*((2*sqrt(2))/9801);
approxpi=1/inverted;
fprintf('Using Ramanujan''s formula, a good approximation is %.6f\n',approxpi)
end
Can anyone help with this?

1 comentario

Jacob Oleshchuk
Jacob Oleshchuk el 27 de Nov. de 2018
Sidenote: My error occurs within the symsum

Iniciar sesión para comentar.

 Respuesta aceptada

Steven Lord
Steven Lord el 27 de Nov. de 2018

2 votos

If the only factorial function that appears when you execute:
which -all factorial
is the one included in MATLAB, you probably don't have Symbolic Math Toolbox installed. Check the output of the ver function to test whether you have it installed. If you don't have Symbolic Math Toolbox installed, I would have expected the sym or syms calls to error before you even reached the line where you called symsum, but it's possible you've written your own functions named sym or syms that are being used instead of the versions from Symbolic Math Toolbox.
If what you posted in response to madhan ravi's question was the output of which factorial (without the -all flag) try it with the -all flag and show us what that returns.

4 comentarios

Walter Roberson
Walter Roberson el 27 de Nov. de 2018
People who have the MATLAB Connector for Maple installed but not the Symbolic Toolbox would have access to sym and syms but would be missing access to several symbolic functions.
Steven Lord
Steven Lord el 27 de Nov. de 2018
Good to know.
Jacob Oleshchuk
Jacob Oleshchuk el 27 de Nov. de 2018
I have tried to install the Symbolic Toolbox to no avail as the 'unzipper' (for lack of better term) has an error at the very end of execution. However, I believe that if this works for everyone else who DOES have that program extension, I should just be able to include a note with my project that informs my teacher that they require the Symbolic Toolbox to run the final function of my program (piram). Thanks much.
Walter Roberson
Walter Roberson el 27 de Nov. de 2018
As you are a student you might be able to test your code on MATLAB Online .

Iniciar sesión para comentar.

Más respuestas (1)

madhan ravi
madhan ravi el 27 de Nov. de 2018

0 votos

function piram
syms k
sumpart=symsum((factorial(4*k)*(1103+26390*k))/(((factorial(k))^4)*(396^(4*k))),k,0,inf);
inverted=sumpart*((2*sqrt(2))/9801);
approxpi=1/inverted;
fprintf('Using Ramanujan''s formula, a good approximation is %.6f\n',approxpi)
end

15 comentarios

Jacob Oleshchuk
Jacob Oleshchuk el 27 de Nov. de 2018
is...is my only issue with how i have the symbolic k set?
Jacob Oleshchuk
Jacob Oleshchuk el 27 de Nov. de 2018
Wait, no this didn't fix the code, now it's saying this:
Error using factorial (line 20)
N must be an array of real non-negative integers.
Error in piram (line 7)
sumpart=symsum((factorial(4*k)*(1103+26390*k))/(((factorial(k))^4)*(396^(4*k))),k,0,inf);
madhan ravi
madhan ravi el 27 de Nov. de 2018
Editada: madhan ravi el 27 de Nov. de 2018
clear all at the very beginning of the code , I got the answer in terms of pi as a decimal value , see attached picture
9F571451-5485-4C30-9215-FD2EA5581D41.jpeg
Jacob Oleshchuk
Jacob Oleshchuk el 27 de Nov. de 2018
function piram
%approximates and prints pi with Ramanujan's formula
%called as piram or piram()
%doesn't return a value, but a print
clear all
syms k
sumpart=symsum((factorial(4*k)*(1103+26390*k))/(((factorial(k))^4)*(396^(4*k))),k,0,inf);
inverted=sumpart*((2*sqrt(2))/9801);
approxpi=1/inverted;
fprintf('Using Ramanujan''s formula, a good approximation is %.6f\n',approxpi)
end
This is my new code, it still results in:
Error using factorial (line 20)
N must be an array of real non-negative integers.
Error in piram (line 7)
sumpart=symsum((factorial(4*k)*(1103+26390*k))/(((factorial(k))^4)*(396^(4*k))),k,0,inf);
Error in ProgramPi (line 34)
piram
Jacob Oleshchuk
Jacob Oleshchuk el 27 de Nov. de 2018
Editada: Jacob Oleshchuk el 27 de Nov. de 2018
I have what you have in your picture my guy, are you sure you didn't fix something subconciously?
madhan ravi
madhan ravi el 27 de Nov. de 2018
Editada: madhan ravi el 27 de Nov. de 2018
I didn‘t have any trouble getting the result after running your code , ok type whos k in command window and paste the result here. or try
syms k positive
leaving the rest of the code unchanged
Jacob Oleshchuk
Jacob Oleshchuk el 27 de Nov. de 2018
>> whos k
>> piram
Error using factorial (line 20)
N must be an array of real non-negative integers.
Error in piram (line 7)
sumpart=symsum((factorial(4*k)*(1103+26390*k))/(((factorial(k))^4)*(396^(4*k))),k,0,inf);
>> whos k
>>
i get nothing
madhan ravi
madhan ravi el 27 de Nov. de 2018
I have no clue what mistake you did
Jacob Oleshchuk
Jacob Oleshchuk el 27 de Nov. de 2018
i'm 99% sure the mistake is in my factorial somewhere
Jacob Oleshchuk
Jacob Oleshchuk el 27 de Nov. de 2018
Seeing as that it keeps telling me,
Error using factorial (line 20)
N must be an array of real non-negative integers.
madhan ravi
madhan ravi el 27 de Nov. de 2018
whos factorial
which -all factorial
in command window what does it show?
Jacob Oleshchuk
Jacob Oleshchuk el 27 de Nov. de 2018
C:\Program Files\Matlab\R2018a\toolbox\matlab\specfun\factorial.m
madhan ravi
madhan ravi el 27 de Nov. de 2018
Did you try
syms k positive %?
Walter Roberson
Walter Roberson el 27 de Nov. de 2018
What shows up for
which factorial(k)
Question: is it possible that you have Maple installed but not the MATLAB Symbolic Toolbox ?
madhan ravi
madhan ravi el 27 de Nov. de 2018
@Jacob please respond to sir Walters question

Iniciar sesión para comentar.

Productos

Versión

R2018a

Etiquetas

Preguntada:

el 27 de Nov. de 2018

Comentada:

el 27 de Nov. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by