Taylor series in matlab
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Brendan Clark
 el 25 de Abr. de 2021
  
    
    
    
    
    Comentada: Walter Roberson
      
      
 el 25 de Abr. de 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 comentarios
  Walter Roberson
      
      
 el 25 de Abr. de 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
Respuesta aceptada
  Walter Roberson
      
      
 el 25 de Abr. de 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 comentario
  Walter Roberson
      
      
 el 25 de Abr. de 2021
				With a fairly small amount of extra work, you can eliminate the loop, but that requires understanding implicit expansion.
Más respuestas (0)
Ver también
Categorías
				Más información sobre Calculus en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

