Taylor series in matlab
    6 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Brendan Clark
 il 25 Apr 2021
  
    
    
    
    
    Commentato: Walter Roberson
      
      
 il 25 Apr 2021
            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 Commenti
  Walter Roberson
      
      
 il 25 Apr 2021
				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
Risposta accettata
  Walter Roberson
      
      
 il 25 Apr 2021
        - 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 Commento
  Walter Roberson
      
      
 il 25 Apr 2021
				With a fairly small amount of extra work, you can eliminate the loop, but that requires understanding implicit expansion.
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Calculus in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

