How can I simplify this expression using "abs" function?
显示 更早的评论
8 个评论
Dyuman Joshi
2023-11-20
What have you tried yet?
Sathish
2023-11-20
Sathish
2023-11-20
Star Strider
2023-11-20
Sathish
2023-11-20
Unfortunately (for you), MATLAB does not seem to be able to simplify this expression significantly beyond a particular point, see below.
WolframAlpha gives a weird-ish output (I can't recognize what the symbols similar to # are supposed to be) - https://www.wolframalpha.com/input?i=sum+abs%28k%2F6+-+n%2F6+%2B+k%5E2%2F2+%2B+k%5E3%2F3+-+n%5E2%2F2+-+n%5E3%2F3+%2B+%28k*%282*k+%2B+1%29*%28k+%2B+1%29%29%2F6%29%2C+k%3D1+to+n-1
You could try using MAPLE and see what output it gives.
It is also worth noting that not all symbolic expression can be simplified.
syms n k
A = (1/6)*(2*n^3 + 3*n^2 + n - 2*k^3 - 3*k^2 - k);
B = (1/6)*(k*(k+1)*(2*k+1));
C = symsum((abs(A-B)),k,1,n-1)
simplify(C, 'Steps', 100)
simplify(C, 'Steps', 200)
Sathish
2023-11-20
Walter Roberson
2023-11-20
I think in the Wolfram output that the # stand in for the variable whose value has to be found to make the expression zero
回答(2 个)
This seems to work —
syms n k
Expr = 7/6 * symsum((2*n^3 + 3*n^2 + n - 2*k^3 - 3*k^3 - k)-(k*(k+1)*(2*k+1))/6, k, 1, n-1)
Expr = simplify(Expr, 500)
.
5 个评论
Dyuman Joshi
2023-11-20
@Star Strider, there is an absolute sign missing in your code.
Sathish
2023-11-20
I thought the ‘|’ were 1.
Edited version —
syms n k
Expr = abs(1/6 * symsum((2*n^3 + 3*n^2 + n - 2*k^3 - 3*k^3 - k)-(k*(k+1)*(2*k+1))/6, k, 1, n-1))
Expr = simplify(Expr, 500)
Added abs call.
.
Dyuman Joshi
2023-11-20
The abs() call is inside the symsum() call.
Edited —
syms n k
Expr = symsum(abs((2*n^3 + 3*n^2 + n - 2*k^3 - 3*k^2 - k)/6-(k*(k+1)*(2*k+1))/6), k, 1, n-1)
Expr = simplify(Expr, 400)
.
You must determine the value for k0 where the expression
2*n^3 + 3*n^2 + n - 2*k^3 - 3*k^2 - k - k*(k+1)*(2*k+1)
changes sign from positive to negative. Then you can add
1/6*(2*n^3 + 3*n^2 + n - 2*k^3 - 3*k^2 - k - k*(k+1)*(2*k+1))
from k = 1 to k = floor(k0) and add
-1/6*(2*n^3 + 3*n^2 + n - 2*k^3 - 3*k^2 - k - k*(k+1)*(2*k+1)))
from k = floor(k0)+1 to k = n-1.
syms n k
p = simplify(2*n^3 + 3*n^2 + n - 2*k^3 - 3*k^2 - k - k*(k+1)*(2*k+1))
s = solve(p,k,'MaxDegree',3)
result = simplify(1/6*symsum(2*n^3 + 3*n^2 + n - 2*k^3 - 3*k^2 - k - k*(k+1)*(2*k+1),k,1,floor(s(1)))-...
1/6*symsum(2*n^3 + 3*n^2 + n - 2*k^3 - 3*k^2 - k - k*(k+1)*(2*k+1),k,floor(s(1))+1,n-1))
subs(result,n,13)
k = 1:12;
n = 13;
expr = 1/6*abs(2*n^3 + 3*n^2 + n - 2*k.^3 - 3*k.^2 - k - k.*(k+1).*(2*k+1))
sum(expr)
类别
在 帮助中心 和 File Exchange 中查找有关 Mathematics 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




