function newtonRapshon syms x; f=input('Digite la funcion deseada (con variable x)'); df=diff(f); %derivada de f x0=input('Digite el valor inicial'); n=input('Digite numero de iteraciones'); tol=input('Digite el error maximo de permitido'); for k=1:n x1=x0-subs(f,x0)/subs(df,x0); if(abs(x1-x0)
syms x; f=input('Digite la funcion deseada (con variable x)'); df=diff(f); %derivada de f x0=input('Digite el valor inicial'); n=input('Digite numero de iteraciones'); tol=input('Digite el error maximo de permitido'); for k=1:n x1=x0-subs(f,x0)/subs(df,x0); if(abs(x1-x0)
NECESITO AYUDA hice todo, hasta vi en los comentarios de que faltaba otras función para el for, pero cuando lo quiero ejecutar me dice que el 'syms x;' esta mal e incluso si le quito la función de NewtonRaphson no se ejecuta. Comparto el código: function NewtonRaphson syms x; f=input('Digite la función deseada (con variable x)'); df=diff(f); %derivada de f x0=input('Digite el valor inicial'); n=input('Digite número de iteraciones'); tol=input('Digite el error máximo de permitido'); for k=1:n x1=x0-subs(f,x0)/subs(df,x0); if(abs(x1-x0)
Por lo que me indicas, el problema está en que no puedes crear variables simbólicas. En la parte superior de la pantalla de Matlab, da clic en Add ons, busca symbolic math toolbox, dale instalar.
hola bro, a mi me enseñaron un metodo parecido, te lo comparto porque me sale error en abs(xr-x0) menor a EPS espero tu ayuda porfa clear all; close all; syms x; % no se pone el sym cuando va lo de vere osea sin feval F=input('ingrese la funcion: F='); x0=input('ingrese el valor de x0 :'); EPS=input('ingrese el criterio de convergencia : '); EPS1=input('Ingrese criterio de exactitud='); Imax=input('Ingrese la interacion maxima int='); %numero maximo de interacciones salida de emergencia i=1; vt=14.7802; DF = diff (F); while i
En la línea 22, dice frintf coloca fprintf. En cuanto al problema que mencionas, radica en la evaluación de la función. La estás evaluando como función inline cuando en realidad es una función simbólica. Para ir al grano, cada vez que evalues requieres el comando subs; por ejemplo, la iteración del método debe escribirse así: xr=x0 - subs(F,x0)/subs(DF,x0); Sugiero que cambies ese letrero final "el metodo falla, no converge a una raiz" por fprintf(' x%d=%f',i,xr) Ponlo antes de la línea i=i+1 para que muestre el valor obtenido en cada iteración. Por último, te dejo un par de videos para que tengas clara la diferencia entre funciones simbólicas y funciones inline. Video de funciones inline: ua-cam.com/video/JIFzGpl8wuo/v-deo.html Video de funciones simbólicas: ua-cam.com/video/kI_1l4i2hYo/v-deo.html
syms x; f=input('Digite la funcion deseada (con variable x)'); df=diff(f); %derivada de f x0=input('Digite el valor inicial'); n=input('Digite numero de iteraciones'); tol=input('Digite el error maximo de permitido'); for k=1:n x1 =x0-subs(f,x0)/subs(df,x0); if(abs(x1-x0)
No tienes instalada la librería. Para instalarla, abre Matlab en la pestaña Home encontrarás Add-Ons, dale clic y luego get add-ons, eso te despliega un listado de librerías, busca Symbolic Math Toolbox que es la que necesitas.
function newtonRapshon syms x; f=input('Digite la funcion deseada (con variable x)'); df=diff(f); %derivada de f x0=input('Digite el valor inicial'); n=input('Digite numero de iteraciones'); tol=input('Digite el error maximo de permitido'); for k=1:n x1=x0-subs(f,x0)/subs(df,x0); if(abs(x1-x0)
bro en la versión 2014 presenta error en el fprintf, parece que no relaciona la iteración, ya que no concatena el número de iteración con la raíz obtenida:(
@@programmath mire, me ocurre lo mismo :( Error using fprintf Function is not defined for 'sym' inputs. Error in Met_Newton_Raphson (line 37) fprintf('x%d=%f ',k,x1);
function newtonRapshon
syms x;
f=input('Digite la funcion deseada (con variable x)');
df=diff(f); %derivada de f
x0=input('Digite el valor inicial');
n=input('Digite numero de iteraciones');
tol=input('Digite el error maximo de permitido');
for k=1:n
x1=x0-subs(f,x0)/subs(df,x0);
if(abs(x1-x0)
Al momento de correrlo me sale Error en newtonRapshon line 1
es por el syms x;
que puedo hacer
syms x;
f=input('Digite la funcion deseada (con variable x)');
df=diff(f); %derivada de f
x0=input('Digite el valor inicial');
n=input('Digite numero de iteraciones');
tol=input('Digite el error maximo de permitido');
for k=1:n
x1=x0-subs(f,x0)/subs(df,x0);
if(abs(x1-x0)
te amo muxo
@@BrayanCampos-tv7uh lo pudiste resolver porque a mi me sale lo mismo
BRO COMO PODRIA CONTACTARTE, NECESITO UN PROGRAMA DE DERIVADAS DE ORDEN SUPERIOR A LA ENESIMA, LA FORMULA GENERAL POR APROXIMACIONES
Gracias amigaso
NECESITO AYUDA hice todo, hasta vi en los comentarios de que faltaba otras función para el for, pero cuando lo quiero ejecutar me dice que el 'syms x;' esta mal e incluso si le quito la función de NewtonRaphson no se ejecuta. Comparto el código: function NewtonRaphson
syms x;
f=input('Digite la función deseada (con variable x)');
df=diff(f); %derivada de f
x0=input('Digite el valor inicial');
n=input('Digite número de iteraciones');
tol=input('Digite el error máximo de permitido');
for k=1:n
x1=x0-subs(f,x0)/subs(df,x0);
if(abs(x1-x0)
Por lo que me indicas, el problema está en que no puedes crear variables simbólicas. En la parte superior de la pantalla de Matlab, da clic en Add ons, busca symbolic math toolbox, dale instalar.
Después del end que cierra el ciclo if, qué continua? Porque tienes cerrado el ciclo for, quiere decir que hay algo que continua después de ese end.
Después del end del if sigue
fprintf('x%d=%f
', k, x1)
x0=x1;
Y luego el end del for.
error en: x1=x0-subs(f,fx0)/subs(df,x0);
cómo soluciono el error. copié tal cual tu código pero me sigue apareciendo error ¡ayuda!
Es posible que tengas inconveniente con las variables simbólicas, por favor indícame exactamente qué dice el error.
hola bro, a mi me enseñaron un metodo parecido, te lo comparto porque me sale error en abs(xr-x0) menor a EPS
espero tu ayuda porfa
clear all; close all;
syms x; % no se pone el sym cuando va lo de vere osea sin feval
F=input('ingrese la funcion: F=');
x0=input('ingrese el valor de x0 :');
EPS=input('ingrese el criterio de convergencia : ');
EPS1=input('Ingrese criterio de exactitud=');
Imax=input('Ingrese la interacion maxima int='); %numero maximo de interacciones salida de emergencia
i=1;
vt=14.7802;
DF = diff (F);
while i
En la línea 22, dice frintf coloca fprintf.
En cuanto al problema que mencionas, radica en la evaluación de la función. La estás evaluando como función inline cuando en realidad es una función simbólica. Para ir al grano, cada vez que evalues requieres el comando subs; por ejemplo, la iteración del método debe escribirse así:
xr=x0 - subs(F,x0)/subs(DF,x0);
Sugiero que cambies ese letrero final "el metodo falla, no converge a una raiz" por
fprintf('
x%d=%f',i,xr)
Ponlo antes de la línea i=i+1 para que muestre el valor obtenido en cada iteración. Por último, te dejo un par de videos para que tengas clara la diferencia entre funciones simbólicas y funciones inline.
Video de funciones inline: ua-cam.com/video/JIFzGpl8wuo/v-deo.html
Video de funciones simbólicas: ua-cam.com/video/kI_1l4i2hYo/v-deo.html
a mi me sale error......
syms requires Symbolic Math Toolbox.
Error in NewtonRaphson (line 1)
syms x;
syms x;
f=input('Digite la funcion deseada (con variable x)');
df=diff(f); %derivada de f
x0=input('Digite el valor inicial');
n=input('Digite numero de iteraciones');
tol=input('Digite el error maximo de permitido');
for k=1:n
x1 =x0-subs(f,x0)/subs(df,x0);
if(abs(x1-x0)
No tienes instalada la librería.
Para instalarla, abre Matlab en la pestaña Home encontrarás Add-Ons, dale clic y luego get add-ons, eso te despliega un listado de librerías, busca Symbolic Math Toolbox que es la que necesitas.
Alguien me podria explicar a que se refiere lo de el número de iteraciones?
Es el número de veces que vas a repetir el proceso.
Para el polinomio:
x5 + 5x4 - 2x3 - 24x2 = 0
Encontrar el número de raíces nulas, positivas y negativas
Para ese problema debes emplear el teorema de los signos de Descartes.
Este video te será de utilidad.
ua-cam.com/video/dif5Eywjyc8/v-deo.html
Error using fprintf
Function is not defined for 'sym' inputs.
Error in newtonRapshon (line 14)
fprintf('x%d=%f
',k,x1)
ese es el error que sale
Es posible que hayas creado x1 como variable simbólica. Compárteme el resto del código para ver si es por eso.
function newtonRapshon
syms x;
f=input('Digite la funcion deseada (con variable x)');
df=diff(f); %derivada de f
x0=input('Digite el valor inicial');
n=input('Digite numero de iteraciones');
tol=input('Digite el error maximo de permitido');
for k=1:n
x1=x0-subs(f,x0)/subs(df,x0);
if(abs(x1-x0)
bro en la versión 2014 presenta error en el fprintf, parece que no relaciona la iteración, ya que no concatena el número de iteración con la raíz obtenida:(
Por favor, compárteme la línea de código que muestra el error.
@@programmath mire, me ocurre lo mismo :(
Error using fprintf
Function is not defined for 'sym' inputs.
Error in Met_Newton_Raphson (line 37)
fprintf('x%d=%f
',k,x1);
No veo que estés usando la variable simbólica en el fprintf; por favor, comparteme el código que escribiste para revisarlo en detalle.
como lo grafico
Este video te puede servir.
ua-cam.com/video/XlSw_m-fpBw/v-deo.html
@@programmath muchas gracias :D
nos podrías facilitar el script??
Al final del video se ve el código completo.
error en : if(abs(x1-x0)
Por favor, comparte el código en un mensaje ya que la línea que me muestras está bien