Contents
ejercicio 1
%apartado a % function f=factr(n) % if n==0 % f=1; % else % f=n*factr(n-1); % end % end %apartado b % function f1=combina(n,i) % f1=factr(n)/(factr(i)*factr(n-i)); % end %apartado c % function f2=bernstein(t,n,i) % f2=combina(n,i)*(t.^i).*((1-t).^(n-i)); % end % apartadod t=linspace(0,1); n=3; for i=0:n; f2=bernstein(t,n,i); figure(1);plot(t,f2) hold on end xlabel('t') ylabel('polinomio de Bernstein') title('polinomio de Bernstein gr3') legend('B_3_,_0','B_3_,_1','B_3_,_2','B_3_,_3'); t=linspace(0,1); V=[1 2 4 4.6;1 3 -1 1.5]; figure(2);plot(V(1,:),V(2,:),'-o') n=size(V); n=n(2); s=size(t); x=zeros(n,s(2)); y=zeros(n,s(2)); for i=1:n x(i,:)=bernstein(t,n-1,i-1)*V(1,i); y(i,:)=bernstein(t,n-1,i-1)*V(2,1); end a=sum(x); b=sum(y); hold on; figure(3); plot(a,b);



ejercicio 2
%apartado a dw=xlsread('sotaventogaliciaanual.xlsx'); nbins=linspace(0,25,25); figure(3);plot(dw) figure; hist(dw,nbins) %apartado b dw=xlsread('sotaventogaliciaanual.xlsx'); %interpolar si es necesario if any(isnan(dw)) %si hay algún NaN x=1:length(dw); i=find(~isnan(dw)); velocidad=interp1(x(i),dw(i),x); end %histograma x=0.5:1:max(dw); horas=hist(dw,x); %convierte a frecuencias y ajusta a la función de Weibull frec=horas/sum(horas); f=@(a,x) (a(1)/a(2))*((x/a(2)).^(a(1)-1)).*exp(-(x/a(2)).^a(1)); a0=[2 8]; %valor inicial de los parámetros af=nlinfit(x,frec,f,a0); hold on %diagrama de frecuencias bar(x,frec,'c'); %para representar la curva de ajuste x=linspace(0,max(dw),100); y=f(af,x); figure(4);plot(x,y,'r') title('Ajuste a la función Weibull') xlabel('Velocidad') ylabel('Frecuencia') hold off %apartado c Pr=1300; x0=3.0;xr=20;x1=25; %datos de la curva de potencia k=2.3849; c=6.0208; %parametros weibul calculados anteriormente potencia=xlsread('sotavento_curva potencia.xlsx','B2:B27'); x=0:1:25; pot=potencia(x>=x0 & x<=xr); hold on x=x0:1:xr; plot(x,pot,'ro','markersize',3,'markerfacecolor','r') title('Ajuste de la curva de potencia de un aerogenerador'); axis([0 15 -10 1550]) xlabel('velocidad') ylabel('potencia') grid on %ajuste p=polyfit(x,pot',3); %ajuste a un polinomio de tercer grado yp=polyval(p,x); figure(5);plot(x,yp,'k') hold off %apartado d %cálculo de la potencia media Pr=1300; x0=3.0;xr=20;x1=25; %datos de la curva de potencia k=2.3849; c=6.0208; %parametros weibul calculados anteriormente potencia=xlsread('sotavento_curva potencia.xlsx','B2:B27'); x=0:1:25; pot=potencia(x>=x0 & x<=xr); x=x0:1:xr; p=polyfit(x,pot',3); %ajuste a un polinomio de tercer grado %calculo de la potencia media f=@(x) (k/c)*((x/c).^(k-1)).*exp(-(x/c).^k); %función de Weibull h=@(x) f(x).*polyval(p,x); power=quad(h,x0,xr)+Pr*quad(f,xr,x1); fprintf('La potencia media es: %3.1f\n',power)
La potencia media es: 203.4




Ejercicio 3
ejer3
movimiento muelle
function ejer3 %para coef amortiguamiento 5 [t1, xx1]=ode45(@muelle, [0,40], [1,0],[ ], 5); plot(t1,xx1(:,1),'g')
hold on %para coef amortiguamiento 40 [t2, xx2]=ode45(@muelle, [0,40], [1,0],[ ], 40); plot(t2,xx2(:,1),'r')
%para coef amortiguamiento 200 [t3, xx3]=ode45(@muelle, [0,40], [1,0],[ ], 200); figure(7);plot(t3,xx3(:,1)) end
ejer3
% funcion muelle
