La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Factorial: con instrucción while function y=factorial(x) i=2 y=1 while i<=x y=y*i i=i+1 end >> factorial(3) i = 2 y = 1 y = 2 i = 3 y = 6 i = 4 ans = 6.

Presentaciones similares


Presentación del tema: "Factorial: con instrucción while function y=factorial(x) i=2 y=1 while i<=x y=y*i i=i+1 end >> factorial(3) i = 2 y = 1 y = 2 i = 3 y = 6 i = 4 ans = 6."— Transcripción de la presentación:

1 Factorial: con instrucción while function y=factorial(x) i=2 y=1 while i<=x y=y*i i=i+1 end >> factorial(3) i = 2 y = 1 y = 2 i = 3 y = 6 i = 4 ans = 6 >> factorial(0) i = 2 y = 1 ans = 1 >> factorial(1) i = 2 y = 1 ans = 1

2 Factorial: con instrucción for function y=factorial(x) y=1 for i=2:x y=y*i end >> factorial(3) y = 1 y = 2 y = 6 ans = 6 function y=factorial(x) y=1 vector=2:x; for i=vector y=y*i end

3 Suma de elementos de un vector function s=suma(vector) s=0; for numero=vector s=s+numero; end >> suma([1:4]) ans = 10 function s=suma(vector) s=0; for i=1:length(vector) s=s+vector(i); end

4

5 Mayor de un vector (y su índice) function m=mayor(x) m=x(1);%mayor es 1° for v=x m=max(m,v); end >> mayor([20,30,10,30]) ans = 30 function im=iMayor(x) im=1; for i=2:length(x) if x(i)>x(im) im=i; end >> iMayor([20,30,10,30]) ans = 2

6 Búsqueda en un vector function ix=indice(x,y) %indice de primer x en y ix=0; for i=1:length(y) if y(i)==x & ix==0 ix=i; end >> indice(30,[20,30,10,30]) ans = 2 function ix=indice(x,y) for ix=1:length(y) if y(ix)==x return %valor de ix end ix=0; %no está >> indice(15,[20,30,10,30]) ans = 0

7 Evaluación de un polinomio (1) function y=polinomio(a,x) n=length(a); exponentes=0:n-1; %[0,1,…,n-1] potencias=x.^exponentes;%[x 0,x 1,…,x n-1 ] productos=a.*potencias; %[a 1 x 0,a 2 x 1,…] y=sum(productos); %a 1 x 0 +a 2 x 1 +… >> polinomio([4,1,0,2],10) ans = 2014

8 Evaluación de un polinomio (2) function y=polinomio(a,x) %y=a(1)*x^0+...+a(n)*x^(n-1) n=length(a); y=0; for i=1:n y = y + a(i) * x^(i-1); end >> polinomio([4,1,0,2],10) ans = 2014

9 Evaluación más eficiente (3) function y=polinomio(a,x) %a(1)*x^0 +... + a(n)*x^(n-1) n=length(a); y=0; potencia=1; for i=1:n %en cada iteración 1 suma, 2 productos y=y+a(i)*potencia; potencia=potencia*x; end

10 Por factorización de Horner (4) function y=polinomio(a,x) %((a(n)*x+a(n-1))*x+... +a(2))*x+a(1) n=length(a); y=0; for i=n:-1:1 %en cada iteración 1 suma, 1 producto y=y*x+a(i); end

11 Script para probar polinomio function testPol(n) %n coefs al azar for i=1:n if rand()<0.5 a(i)=rand();%>0 else a(i)=-rand();%<0 end disp('coeficientes') disp(a) %ejex con n ptos al azar %a la misma distancia x1=-rand(); x2=rand(); x=linspace(x1,x2,n); %evaluar en n ptos for i=1:n y(i)=polinomio(a,x(i)); end %graficar plot(x,y,'b*-') grid %cuadriculado

12 Prueba de script >> testPol(20) coeficientes: Columns 1 through 8 0.0227 0.3541 -0.6076 -0.8844 -0.0781 -0.0451 -0.3148 0.2674 Columns 9 through 16 0.1939 -0.7451 -0.2659 0.0490 0.6574 -0.5741 0.4094 0.8341 Columns 17 through 20 -0.8659 0.7425 0.9585 -0.2600


Descargar ppt "Factorial: con instrucción while function y=factorial(x) i=2 y=1 while i<=x y=y*i i=i+1 end >> factorial(3) i = 2 y = 1 y = 2 i = 3 y = 6 i = 4 ans = 6."

Presentaciones similares


Anuncios Google