Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Series summation issue - conversion to double error

Asked by Jon on 20 Feb 2013

Hi, I'm trying to write a series summation code and I'm getting the "conversion to double" error when I plot.

Here's the part of the code with trouble:

syms m
rhs = (1./(1+(2.*(t- m.*p))./tc)).* exp((-2.*r^2)./(r^2.*(1+ (2.*(t-m.*p)./tc))));
summation1 = symsum(rhs,0,1.89E5);

Where tc, r, and p are constants and t is a timespace with 36 spaces.

Is the problem that I'm asking it to sum from 0 to 1.89e5 with those 36 time spaces?

Thanks

EDIT: http://i.imgur.com/mz2KV5h.jpg Link is of the sum

0 Comments

Jon

Products

No products are associated with this question.

2 Answers

Answer by proecsm on 21 Feb 2013
Accepted answer

At some point, Matlab gives up & returns the indefinite summation. You can try this:

clc;clear
syms m
tc = 3;
p = 3;
t = 1:10;
r =2;
rhs = (1./(1+(2.*(t- m.*p))./tc)).* exp((-2.*r^2)./(r^2.*(1+ (2.*(t-m.*p)./tc))));
summation1 = symsum(rhs);
f = matlabFunction(summation1);
f(189000)
f(10)
ans =
    1.0e-005 *
    Columns 1 through 8
     -0.2646   -0.2646   -0.2646   -0.2646   -0.2646   -0.2646   -0.2646   -0.2646
    Columns 9 through 10
     -0.2646   -0.2646
ans =
    Columns 1 through 8
     -0.0608   -0.0634   -0.0662   -0.0692   -0.0725   -0.0762   -0.0802   -0.0847
    Columns 9 through 10
     -0.0897   -0.0954

1 Comment

Jon on 23 Feb 2013

Thank you, this will work for now while I have a dozen or so points, but it gets quite complex when I want to extend my time.

Many thanks!

proecsm
Answer by Walter Roberson on 20 Feb 2013

You could try

double(summation1)

If that gives you the same error then your summation1 must still contain some symbolic variable. Try

symvar(summation1)

2 Comments

Jon on 20 Feb 2013

I get the same error when using both

Conversion to double from sym is not possible.

I had read about converting that symbolic variable and figured that could be the issue but I used the

subs(summation1, 'new array to replace "m" ' ) 

and that seemed to accept it, now it's about fixing my values

EDIT: False alarm - it just makes the variable a single value.

Jon on 21 Feb 2013

http://i.imgur.com/mz2KV5h.jpg

Here's the sum for completeness

Walter Roberson

Contact us