Transforming from Maclaurin to Taylor
조회 수: 1 (최근 30일)
이전 댓글 표시
I have a polynomial function in terms of x, in which the highest power never exceeds 6. This function will look like a Maclaurin Series with finite terms. How to tell Matlab to rewrite this function into a Taylor one, which will express the function in terms of (x-a), where a is a real, positive number?
E.g. Original function: f(x)=x^3+x^2+x+1
Transformed functions:
If a=1, g(x)=(x-1)^3+4*(x-1)^2+6*(x-1)+4
if a=2, g(x)=(x-2)^3+7*(x-2)^2+17*(x-2)+15
and etc.
I tried using rem but it returned an error message, saying that f(x) must be a real value in order to use rem.
댓글 수: 0
채택된 답변
William Alberg
2020년 5월 15일
If i understand correctly, your code looks something like this:
syms x
f(x) = x^3 + x^2 + x +1
f(x-1)
f(x-2)
And you want to expand the expressions. This can be done with the expand command:
expand(f(x-1))
>> x^3 - 2*x^2 + 2*x
expand(f(x-2))
>> x^3 - 5*x^2 + 9*x - 5
댓글 수: 3
William Alberg
2020년 5월 15일
Ahh, I completely misunderstood that!
I dont know how to achieve that, since matlab dont like the "k*(x-a)^1" part, and will rewrite it. I can however get the correct "k*(x-a)^n" for n > 1
My (not complete) solution is this:
f(x) = x^3 + x^2 + x +1;
a = 1;
temp = expand(subs(f(x),x,y + a))
g(x) = subs(temp,y,x-a)
>>6*x + 4*(x - 1)^2 + (x - 1)^3 - 2
추가 답변 (0개)
참고 항목
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!