Buen dia.
Tengo problemas para graficar el logaritmo natural de un numero, agrego el codigo que tengo, de antemano muchas gracias.
clc;
num = input('Ingrese un número para obtener su Logaritmo Natural: ');
log = CalcularLogNat(num);
fprintf('El logaritmo Natural de=%d\nes=%f',num,log);
x = 1:0.5:num;
f = CalcularLogNat(x);
plot(x,f);
grid;
title('Logaritmo Natural de un Número');
el otro archivo
function logNat = CalcularLogNat(num)
logNat = 0;
if (num == 0)
return;
end
for (i=1:1:1000)
logNat = logNat + ((1/i)*((num-1)/num)^i);
end
return;
end
Actualización:Buen dia.
Lo ideal es no utilizar la instruccion log, o por lo menos mi profesor dijo que no, debemos crear la funcion que calcule el logaritmo natural, no utilizar esa funcion predeterminada de matlab.
De antemano muchas gracias
Copyright © 2024 ANSWERS.MX - All rights reserved.
Answers & Comments
Verified answer
Hola, estuve revisando tus programas y tampoco yo pude graficar con ellos, pero los programas estan bien, lo que está mal es algo en nuestros Matlab's y esta relacionado con el logaritmo natural, cuando traté de obtener el logaritmo natural de un número con la función log me daba un logartimo erróneo diferente al que sale con calculadora o a veces me botaba un error, estuve buscando y puede que esto suceda por incompatibilidad con el sistema operativo o algo asi, la cuestión es que no pude resolver ese problema pero logré graficar el logaritmo natural basándome en tus códigos, el problema es que la única forma que logre hacerlo sin que tardara demasiado tiempo (en graficar) fue uniendo tus codigos en uno solo, te lo pongo, quizá no es muy didactico pero lo puedes estudiar y quizá encuentres lo que sucede. Saludos.
function logNat = CalcularLogNat(num)
num = input('Ingrese un número para obtener su Logaritmo Natural: ');
logNat = 0;
if (num == 0)
return;
end
for i=1:1:1000
logNat = logNat + ((1/i)*((num-1)/num)^i);
end
log=logNat;
fprintf('El logaritmo Natural de=%d\nes=%f',num,log);
x = linspace(0,10,100);
plot(x,log);
grid;
title('Logaritmo Natural de un Número');
return;
end
Muy buena la respuesta de jjasso5, también me ayudo a mi, sugiero que le otorgues los puntos.
La instrucción ' log ' sirve para obtener logaritmos naturales. No es necesario implemantar una función para ello.
Ya que ' log ' es palabra reservada en Matlab, no es bueno usarla como variable.
Prueba este código corregido.
clc; clear; close all
num = input('Ingrese un número para obtener su Logaritmo Natural: ');
fprintf('El logaritmo Natural de %d es %f \n',num, log(num));
x = .01 : .01 : num;
f = log(x);
plot(x, f);
grid;
title('Logaritmo Natural de un Número');
Te sugiero ver el ejemplo de abajo: