ayuda en matlab
Publicado por ivan (9 intervenciones) el 25/09/2011 05:37:32
Que tal buenas noches. Disculpen tengo problemas con matlab, me encargaron un programa en matlab que obtuviera las raices de un polinomio de cualquier grado, me piden que obtenga por elmetodo de newton-rahpson la primera raiz y despues de ahi con una division sintetica reducir el polinomio, si no es de un segundo grado, volver a encontrar la raiz con el mismo metodo de n-r y despues volver a aplicar la division sintetica hasta que el mismo polinomio sea de grado dos y aplicar la formula general para el calculo de raices. El maestro nos proporciono algunas funciones para elcalculo de la division sintetica pero a la hora de poder unirlas al programa ya no se como hacerlo puede alguien ayudarme..........!! lo necesito por favor
function b=divPolin_r(a,r)
%divPolin_r.m
%funcion para dividir el polinomio dado en 'a' entre (x-r)donde r es raiz del polinomio.
%b sera un polinomio de grado menos que a.
N=length(a) -1
b=zeros(1,N);
% a continuacion implementamos una division sintetica:
s=0;
for i = N:-1:1,
bi=a(i+1); % en s quedo b(i)*r de la iteracion anterior
s=b(i)*r; &es lo que se le va a sumar en la proxima iteracion
end
derivada..................
da=zeros(1,length (a));
for k= 1:length(a)-1,
da(k)=(k)*a(k+1);
_________________________________________________________
evaluarpolinomio(p,x)
x=1;
for k=1:lenght(p)
s=s+p(k)*x^k;
end
e=evaluarpolinomio(p,x)
x=x-(evaluarpolinimio(p,x)/evaluarpolinomio(derivadapolinomio(p),x));
if abs(evaluarpolinomio(p,x))>.001
___________________________________________________
a=[22.64,-29.05,6.6,1]
b=[-20.58, 7.7, 1]
function b=divPolin_r(a,r)
%divPolin_r.m
%funcion para dividir el polinomio dado en 'a' entre (x-r)donde r es raiz del polinomio.
%b sera un polinomio de grado menos que a.
N=length(a) -1
b=zeros(1,N);
% a continuacion implementamos una division sintetica:
s=0;
for i = N:-1:1,
bi=a(i+1); % en s quedo b(i)*r de la iteracion anterior
s=b(i)*r; &es lo que se le va a sumar en la proxima iteracion
end
derivada..................
da=zeros(1,length (a));
for k= 1:length(a)-1,
da(k)=(k)*a(k+1);
_________________________________________________________
evaluarpolinomio(p,x)
x=1;
for k=1:lenght(p)
s=s+p(k)*x^k;
end
e=evaluarpolinomio(p,x)
x=x-(evaluarpolinimio(p,x)/evaluarpolinomio(derivadapolinomio(p),x));
if abs(evaluarpolinomio(p,x))>.001
___________________________________________________
a=[22.64,-29.05,6.6,1]
b=[-20.58, 7.7, 1]
Valora esta pregunta


0