MATLAB Answers

Jon

Series summation issue - conversion to double error

Asked by Jon
on 20 Feb 2013
Accepted Answer by bym

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

Products

No products are associated with this question.

2 Answers

bym
Answer by bym
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!


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


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today