Matlab - algoritmos del metodo de muller en matlb 7 parapolinomios

 
Vista:
sin imagen de perfil

algoritmos del metodo de muller en matlb 7 parapolinomios

Publicado por jouberth (4 intervenciones) el 15/10/2012 00:53:48
soy novato en programacion necesito un algoritmo apropiado para este polinomio por el metodo de muller ya que con el que tengo no me da resultados gracias por su respuestadisp('evaluar la aproximacion de la raiz x^3-x-1=0 en el intervalo dado');
disp('dado fx,x0,x1,x2,N,d1,d2');
('criterio de parada ');
x0=input('x0= ');
x1=input('x1= ');
x2=input('x2= ');
N=input('numero de iteraciones n=');
disp('n r');
h1=x1-x0;
h2=x2-x1;
d1=((f(x1)-f(x0))/h1);
d2=(f(x2)-f(x1))/h2;
a=(d2-d1)/(h2+h1);
b=a*h1+d1;
c=fx2;
n=0;
whileN>0
d=-b+sqrt(b*b-4*a*c)/2*a;
d=r;
fprintf('%3.0f 10.8f\n',n,c);
n=n+1;
if n==N
break
end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

algoritmos del metodo de muller en matlb 7 parapolinomios

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 15/10/2012 15:49:09
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
disp('dado fx,x0,x1,x2,N,d1,d2');
 ('criterio de parada ');
 x0=input('x0= ');
 x1=input('x1= ');
 x2=input('x2= ');
 N=input('numero de iteraciones n=');
 disp('n r');
 h1=x1-x0;
 h2=x2-x1;
 d1=((f(x1)-f(x0))/h1);    % evaluas en f, pero aun no haz definido f, (error)
 d2=(f(x2)-f(x1))/h2;
 a=(d2-d1)/(h2+h1);
 b=a*h1+d1;
 c=fx2;   % fx2 de donde lo obtienes,
 n=0;
 whileN>0    % entre whille y N tiene que haber un espacio
 d=-b+sqrt(b*b-4*a*c)/2*a;
 d=r;   % asignas a d el valor de r, pero donde hallas r? (ERROR)
 fprintf('%3.0f 10.8f\n',n,c);
 n=n+1;
 if n==N
 break
 end


estudiar bucle while, inline, fprintf y tienes q ejecutar tu codigo con problemas ya resueltos, para ver si tu programa esta dando resultados correctos.


http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/Muller.html


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacionMatlab
[email protected]

http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

algoritmos del metodo de muller en matlb 7 parapolinomios

Publicado por jouberth (4 intervenciones) el 16/10/2012 07:23:20
gracias por la respuesta es muy valiosa pero con este algoritmo tampoco tengo resultados cual sera el error que estoy cometiendo espero de su valiosa ayuda gracias fx= x^3-x-1=0 con una aproximacion cuadratica');
disp('dado x0,f(x0),x1,f(x1),x2,f(x2),N,');
('criterio de parada ');
f(x)=a(x-x2)^2+b(x-x2)+c;
f(x0)=a(x0-x2)^2+b(x0-x2)+c;
f(x1)=a(x1-x2)^2+b(x1-x2)+c;
f(x2)=a(x2-x2)^2+b(x2-x2)+c %f(x2)=c
x0=input('x0= ');
x1=input('x1= ');
x2=input('x2= ');
N=input('numero de iteraciones n=');
disp('n x3');
h1=x1-x0;
h2=x2-x1;
d1=f(x1)-f(x0)/h1;
d2=f(x2)-f(x1)/h2;
n=0;
while N>0
a=(d2-d1)/(h2+h1);
b=a*h1+d1;
c=f(x2);
x3=(-2*c/b+sqrt b^2-4*a*C)+x2;
fprintf('%3.0f 10.8f\n',n,c);
n=n+1;
if n==N
break
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

algoritmos del metodo de muller en matlb 7 parapolinomios

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 16/10/2012 14:41:02
Antes de usar una variable tienes que definir.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
disp('dado x0,f(x0),x1,f(x1),x2,f(x2),N,');
 ('criterio de parada ');
 f(x)=a(x-x2)^2+b(x-x2)+c;  %usas x2, c  y aun no lo haz defenido, entonces la pc que valor db tomar?
 f(x0)=a(x0-x2)^2+b(x0-x2)+c;
 f(x1)=a(x1-x2)^2+b(x1-x2)+c;
 f(x2)=a(x2-x2)^2+b(x2-x2)+c %f(x2)=c
 x0=input('x0= ');
 x1=input('x1= ');
 x2=input('x2= ');
 N=input('numero de iteraciones n=');
 disp('n x3');
 h1=x1-x0;
 h2=x2-x1;
 d1=f(x1)-f(x0)/h1;  % esta no  está evaluando  la funcIón (error).
 d2=f(x2)-f(x1)/h2;% esta no  está evaluando  la funcIón (error).
 n=0;
 while N>0
 a=(d2-d1)/(h2+h1);
 b=a*h1+d1;
 c=f(x2);% esta no  está evaluando  la funcIón (error).
 x3=(-2*c/b+sqrt b^2-4*a*C)+x2;
 fprintf('%3.0f 10.8f\n',n,c);
 n=n+1;
 if n==N
 break
 end



Te di las recomendacionesa arriba que funciones debe revisar, pero al parecer no lo haz hecho.
la idea es que tu debes saber perfectamente que esta haciendo cada linea de tu codigo, tienes que asegurar eso, ademas segun lo que estoy viendo, tu conocimiento de matlab es minimo, debes hacer liena por linea tu codigo e ir probando cada linea que escribas.


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacionMatlab
[email protected]

http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

algoritmos del metodo de muller en matlb 7 parapolinomios

Publicado por jouberth (4 intervenciones) el 23/10/2012 05:17:56
lo tomare muy en cuenta la verdad que estoy casi en cero en matlab pero voy hacer lo posible por entenderlo gracias por todo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

algoritmos del metodo de muller en matlb 7 parapolinomios

Publicado por jouberth (4 intervenciones) el 22/11/2012 06:32:40
cual es la falla que tengo o falta agregar un comando para que mi resultado sea correcto solo muestra el resultado cuando le quito el punto ycoma ; o lo he programado mal espero de su ayuda gracias

% metodo de muller
disp('dado fx=x^3-x-1=0,hallar la aproximacion de la raiz');
disp('f,xo,x1,x2,N ,r');
disp('criterio de parada');
disp(' n ,fx0,fx1,fx2,h1,h2,d1,d2,a,b,c, r ');
x0=input ('x0= ');
x1=input ('x1= ');
x2=input ('x2= ');
N=input ('numero de iteraciones,n=');
n=0
while N>0
fx0=(x0)^3-(x0)-1
fx1=(x1)^3-(x1)-1
fx2=(x2)^3-(x2)-1
h1=x1-x2
h2=x0-x2
d1=fx1-fx2
d2=fx0-fx2
c=fx2
a=(d1*h2-d2*h1)/( h1^2*h2-h1*h2^2)
b=(d2*h1^2-d1*h2^2)/( h1^2*h2-h1*h2^2)
x3=x2-(2*c)/(b+sqrt(b^2-4*a*c))
n==N
break
end
r=x3
x0=x1
x1=x2
x2=x3
h1=x1-x2
h2=x0-x2
d1=fx1-fx2
d2=fx0-fx2
c=fx2
a=(d1*h2-d2*h1)/ ( h1^2*h2-h1*h2^2)
b=(d2*h1^2-d1*h2^2)/ (h1^2*h2-h1*h2^2)
x3=x2-(2*c)/(b+sqrt(b^2-4*a*c))
if (b+sqrt(b^2-4*a*c))>(b-sqrt(b^2-4*a*c));
( b+sqrt(b^2-4*a*c));
else
( b-sqrt(b^2-4*a*c));
n=n+1;
fprintf('%3.0f % 10.8f\n', n,r);
break
end
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

algoritmos del metodo de muller en matlb 7 parapolinomios

Publicado por Erick (1 intervención) el 31/05/2019 08:06:49
Considero que tu programa corre perfecto, el error que dices del punto y coma que el programa te pide es como opcional para que según el programa no te imprima en pantalla, pero tu necesitas que si te imprima en pantalla, si no lo que sucede es que si el programa corre pero tu no sabes que paso porque ocultaste el resultado con ";". Te recomiendo usar clc y clear antes de las lineas de código para que el programa se vea mas limpio para el usuario
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar