Taylor series in matlab
6 次查看(过去 30 天)
显示 更早的评论
I'm working on trying to approximate a taylor series for log(1+x) in matlab. However, I wasn't given an equation, and I haven't finished calculus yet and I'm struggling to get the right equation for the proximation. I can't use the built in functions in matlab to accomplish this sadly. Right now my code is.
x = linspace(0,pi, 100);
N=10;
logApprox = zeros(1,length(x));
for i = 1:length(x)
for j = 1:N
Number = (j - 1);
logApprox(i) = logApprox(i) + (-1)^(j + 1)*((x(i)^N)/N)^(Number)/factorial(Number);
end
end
disp(logApprox)
2 个评论
Walter Roberson
2021-4-25
That particular function does not need the factorial, and you are raising to the wrong power
Order 7 for example:
- x^6/6 + x^5/5 - x^4/4 + x^3/3 - x^2/2 + x
采纳的回答
Walter Roberson
2021-4-25
- x^6/6 + x^5/5 - x^4/4 + x^3/3 - x^2/2 + x
Look at that more carefully. Suppose you have a loop index, K, then you have a term X^K/K*(-1)^(K+1)
After that what you need to know is to use the .^ operator instead of the ^ operator -- x.^K/K*(-1)^(K+1)
You do not need to loop over the x values; you can use vectorized calculations.
1 个评论
Walter Roberson
2021-4-25
With a fairly small amount of extra work, you can eliminate the loop, but that requires understanding implicit expansion.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Calculus 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!