Вы можете объявить sum
линейным.
declare(sum, linear);
e: sum((y[i] - (a*x[i]+b))^2, i, 1, n);
e: expand(e);
dea: diff(e, a);
deb: diff(e, b);
linsolve([dea, deb], [a, b]);
Выходы
n n n
==== ==== ====
\ \ \
( > x y ) n - ( > x ) > y
/ i i / i / i
==== ==== ====
i = 1 i = 1 i = 1
(%o7) [a = -------------------------------------,
n n
==== ====
\ 2 \ 2
( > x ) n - ( > x )
/ i / i
==== ====
i = 1 i = 1
n n n n
==== ==== ==== ====
\ \ \ 2 \
( > x ) > x y - ( > x ) > y
/ i / i i / i / i
==== ==== ==== ====
i = 1 i = 1 i = 1 i = 1
b = - --------------------------------------------]
n n
==== ====
\ 2 \ 2
( > x ) n - ( > x )
/ i / i
==== ====
i = 1 i = 1
или с обозначениями для сумм:
declare(sum, linear) $
tellsimpafter('sum(x[i],i,1,n), sx) $
tellsimpafter('sum(y[i],i,1,n), sy) $
tellsimpafter('sum(y[i]^2,i,1,n), sy2) $
tellsimpafter('sum(x[i]^2,i,1,n), sx2) $
tellsimpafter('sum(x[i]*y[i],i,1,n), sxy) $
e: sum((y[i] - (a*x[i]+b))^2, i, 1, n);
e: expand(e);
dea: diff(e, a);
deb: diff(e, b);
linsolve([dea, deb], [a, b]);
n sxy - sx sy sx sxy - sx2 sy
(%o22) [a = -------------, b = - ---------------]
2 2
n sx2 - sx n sx2 - sx