MATLAB Answers

Problem in using symsum

5 views (last 30 days)
Ipshita
Ipshita on 28 Nov 2020
I am writing a code to solve a problem by least square method. Can someone tell what is wrong in this code?
syms x k
x(1)=-2;
x(2)=-1;
x(3)=0;
x(4)=1;
x(5)=2;
f(1)=-2;
f(2)=-1;
f(3)=0;
f(4)=1;
f(5)=2;
for i=0:4
a(i)=symsum((x(k))^i,k,1,5)
end
Error using sym/subsindex (line 857)
Invalid indexing or function definition. Indexing must follow MATLAB indexing. Function arguments must be symbolic variables, and function body must be sym expression.
Error in sym/subsref (line 902)
R_tilde = builtin('subsref',L_tilde,Idx);
Error in NMa2q2 (line 13)
a(i)=symsum((x(k))^i,k,1,5)

  0 Comments

Sign in to comment.

Answers (1)

Bastian Arturo Romero Mardones
Edited: Bastian Arturo Romero Mardones on 28 Nov 2020
syms x k
x(1)=-2;
x(2)=-1;
x(3)=0;
x(4)=1;
x(5)=2;
f(1)=-2;
f(2)=-1;
f(3)=0;
f(4)=1;
f(5)=2;
for i=0:4
a{i+1}=symsum((x*(k)).^i,k,1,5) %change this line
end
if you need double variables and not syms, use:
a{i+1}=double(symsum((x*(k)).^i,k,1,5))

  4 Comments

Show 1 older comment
Bastian Arturo Romero Mardones
But the symsum() function in your code returns 5 values, for each i value.
Ipshita
Ipshita on 28 Nov 2020
yes, it should return 5 values, i.e. a(1), a(2), a(3), a(4), a(5). But it is not returning, that is the problem.
Bastian Arturo Romero Mardones
did you try using double ()?
a{i+1}=double(symsum((x*(k)).^i,k,1,5))
with double() this is the output
maybe i don't understand good your problem, sorry

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!