% =========== % Sección 1.1 % =========== % % Las siguientes instrucciones deben estar en un fichero aparte % ##################### Inicio del fichero #################### function s=signo(x) disp('Inicio de la funcion'); if x>0; s='positivo'; elseif x<0; s='negativo'; else; s='nulo'; end disp('Fin de la funcion'); % ##################### fin del fichero #################### x=2;signo(x) signo(2) % [sqrt(2),sqrt(3),sqrt(4)] sqrt([2,3,4]) % [signo(-2),signo(0),signo(1)] signo([-2,0,1]) % % Ejercicio 1 % Opcion mediante valores simples. NO funciona con vectores % Definicion de la función (debe estar en el fichero f1.m) % ##################### Inicio del fichero #################### function y=f1(x) if (x<=-1);y=-2*x-1; elseif(x<1);y=x^2; else;y=2*x-1; end % ##################### fin del fichero #################### % Ejecución de la función % para dibujarla seria necesario acudir a bucles ya que X=linspace(-2,2);plot(x,f1(X)) % da resultados erroneos % % Definicion correcta de la función (debe estar en el fichero f2.m) % ##################### Inicio del fichero #################### % function y=f2(x) y=zeros(size(x)); i=find(x<=-1);y(i)=-2*x(i)-1; i=find(x>-1&x<1);y(i)=x(i).^2; i=find(x>=1);y(i)=2*x(i)-1; % ##################### fin del fichero #################### % y para dibujarla X=linspace(-2,2);plot(x,f2(X)) % =========== % Sección 1.2 % =========== % % Las siguientes instrucciones deben estar en un fichero aparte % ##################### Inicio del fichero #################### function clasifica(numlados) switch numlados case {0,1,2}; disp.('No es un polígono cerrado'); case 3;disp.('Triángulo'); case 4;disp.('Cuadrilatero'); case 3;disp.('Pentágono'); otherwise; disp.('Poligono') end % ##################### fin del fichero #################### % =========== % Sección 1.3 % =========== % serie=0;for i=1:10; serie=serie+i*i;end i=1:10;serie=i*i' % alternativa sin bucles i=1:10;serie=sum(i.^2) % otra alternativa sin bucles factorial=1; for i=2:10;factorial=factorial*i; end factorial=prod(1:10) % alternativa sin bucles % Ejercicio 2 % ##################### Inicio del fichero #################### function y=primo(x) y='true'; for i=2:floor(sqrt(x)); disp(i); if mod(x,i)==0;y='false';break;end end % ##################### fin del fichero #################### % Ejercicio 3 % ##################### Inicio del fichero #################### function y=armonica(n) if n<=0|mod(n,1)~=0;error('el argumento debe ser un natural');end y=0;for i=1:n;y=y+1/(i);end % y=1:n;y=sum(1./y); % Otra alternativa % ##################### fin del fichero #################### armonica(12) % =========== % Sección 1.4 % =========== % Las siguientes instrucciones deben estar en el fichero armonica2.m % ##################### Inicio del fichero #################### function y=armonica2(error) y=1; k=1; while (1/k)>error;k=k+1;y=y+1/k;end % ##################### fin del fichero #################### % Ejercicio 4 % ##################### Inicio del fichero #################### function [y,k]=armonica2(error) y=1; k=1; while (1/k)>error;k=k+1;y=y+1/k;end % ##################### fin del fichero #################### % Ejercicio 5 % ##################### Inicio del fichero #################### function y=norma(x,p) y=abs(x).^p; y=(sum(y)^(1/p) % ##################### fin del fichero #################### % Ejercicio 6 % ##################### Inicio del fichero #################### function q = horner(p,x) % % Funcion que evalua el polinomio p(x) en el punto x % p(x) almacena los coeficientes del polinomio en orden decreciente % en un vector fila np=size(p); if all(np~=1);error('El primer argumento debe ser un vector');end; nx=size(x); if all(nx~=1);error('El segundo argumento debe ser un vector');end; % q=p(1)*ones(size(x)); for i=2:max(np) q=p(i)+x.*q; end % ##################### fin del fichero ####################