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!




