You are on page 1of 2

% Script para aplicar Newton-Raphson a mifuncion % Lectura de datos % Tengo que leer la cota de error 'cota', % el nmero de iteraciones

mximo 'n' % y el valor inicial 'xi' cota = input ('Cota de error objetivo: '); n = input ('N mximo de iteraciones: '); xi = input ('Valor inicial de la x: '); xanterior = xi; x = xanterior; eanterior = inf; e = eanterior; i = 1; % contador de iteraciones % Voy a dibujar las tangentes mientras calculo figure(1) clf hold on fplot('mifuncion(x)',[-2 2],'b'); grid % Debo realizar un procedimiento iterativo %mientras el error sea mayor que la cota % y el nmero de iteracin sea menor que n while (e>cota) & (i<n) y = mifuncion (xanterior); yd = mifuncion_derivada (xanterior); x = xanterior - y/yd; % Para dibujar yant=mifuncion(xanterior); plot ([xanterior x],[yant 0],'r') e = abs (x - xanterior); xanterior = x; eanterior = e; i=i+1; end hold off % Comprobacin de por cual de las dos % %(tres) condiciones sali

if (e<cota) disp ('Se encontr la solucin'); disp ('La solucin hallada es: '); x disp ('La cota de error es: '); e disp ('El nmero de iteraciones utilizado es: '); i disp ('Y el valor de la funcin en dicho punto es: '); mifuncion(x) else disp ('Se super el nmero de iteraciones'); end

function y = mifuncion (x) y = x*x+0.5-exp(-x);

function y = mifuncion_derivada (x) y = 2*x+exp(-x);

% Producto escalar y vectorial de vectores clear u=input('Introduce un vector u de dimensin 3: '); v=input('Introduce el otro vector v: '); disp('La longitud de los vectores es, respectivamente: '); norm(u) norm(v) disp('El producto escalar es: '); u'*v disp('El ngulo entre los vectores en grados es: '); 180/pi*subspace(u,v) disp ('El producto vectorial es: '); p=pvect(u,v) clf % Ahora dibujamos el producto vectorial hold on plot3 ([0 u(1)],[0 u(2)],[0 u(3)],'b'); text (u(1)+.1,u(2)+.1,u(3)+.1,'u'); plot3 ([0 v(1)],[0 v(2)],[0 v(3)],'b'); text (v(1)+.1,v(2)+.1,v(3)+.1,'v'); plot3 ([0 p(1)],[0 p(2)],[0 p(3)],'k'); text (p(1)+.1,p(2)+.1,p(3)+.1,'p'); hold off grid view(3)

% Hacer un programa que lea 10 numeros y determine %cuales y cuantos de ellos % son multiplos de 7 for i=1:10 a(i) = input (['Numero ' num2str(i) ' :']); end disp('Mltiplos de 7: '); m=0; for i=1:10 if rem(a(i),7)==0 disp(a(i)) m=m+1; end end if m==0 disp('No hay.'); else disp(['Son en total ' num2str(m)]); end

% Producto vectorial para vectores de 3D function producto = pvect (u,v) if length(u)~=3 | length(v)~=3 disp('Error en las dimensiones de los vectores'); return else producto(1,1)=u(2)*v(3)-u(3)*v(2); producto(2,1)=u(3)*v(1)-u(1)*v(3); producto(3,1)=u(1)*v(2)-u(2)*v(1); end