Tarea Matlab OscarOcioVierna
Contents
EJERCICIO 1.A
EJERCICIO 1.B
EJERCICIO 1.C
t=linspace(0,1);
n=3;
figure(1);
for i=0:n
b=bernstein(n,i,t);
plot(t,b);
hold on;
end
xlabel('t');
ylabel('Polinomio de Bernstein');
title('Polinomios de Bernstein de grado 3');
legend('B_3_,_0','B_3_,_1','B_3_,_2','B_3_,_3');
EJERCICIO 1.D
t=linspace(0,1);
Vx=[1 2 4 4.6];
Vy=[1 3 -1 1.5];
figure(2);
plot(Vx,Vy,'-o');
n=length(Vx);
s=size(t);
x=zeros(n,s(2));
y=zeros(n,s(2));
for i=1:n
x(i,:)=bernstein(n-1,i-1,t)*Vx(i);
y(i,:)=bernstein(n-1,i-1,t)*Vy(i);
end
a=sum(x);
b=sum(y);
hold on;
plot(a,b);
legend('Poligono de control','Curva de Bezier');
xlabel('x');
ylabel('y');
title('Curva de Bezier dado un poligono');
EJERCICIO 2.A
vel=xlsread('sotaventogaliciaanual.xlsx','B2:B52129');
figure(4)
hist(vel,25)
hold on;
title('Histograma velocidad del viento');
EJERCICIO 2.B
clear all,clc
velocidad=xlsread('sotaventogaliciaanual.xlsx','B2:B52129');
if any(isnan(velocidad))
x=1:length(velocidad);
i=find(~isnan(velocidad));
velocidad=interp1(x(i),velocidad(i),x);
end
figure(5)
x=0.5:1:max(velocidad);
horas=hist(velocidad,x);
k=mean(velocidad);
c=(std(velocidad))^2;
frec=horas/sum(horas);
f=@(a,x) (a(1)/a(2))*((x/a(2)).^(a(1)-1)).*exp(-(x/a(2)).^a(1));
a0=[k c];
af=nlinfit(x,frec,f,a0)
hold on
bar(x,frec);
x=linspace(0,max(velocidad),100);
y=f(af,x);
plot(x,y,'r')
title('Ajuste no lineal a la función Weibull')
xlabel('Velocidad')
ylabel('Frecuencia')
hold off
af =
2.3849 6.0208
EJERCICIO 2.C
clear all
x=xlsread('sotavento_curva potencia.xlsx','A2:A27');
y=xlsread('sotavento_curva potencia.xlsx','B2:B27');
xd=linspace(0,25);
yd=interp1(x,y,xd,'pchip');
figure(6)
plot(x,y,'*',xd,yd,'red');
hold on
xlabel('velocidad');
ylabel('potencia');
grid on;
title('Interpolación con un polinomio de tercer gardo');
EJERCICIO 2.D
clear all,clc
velocidad=xlsread('sotaventogaliciaanual.xlsx','B2:B52129');
if any(isnan(velocidad))
x=1:length(velocidad);
i=find(~isnan(velocidad));
velocidad=interp1(x(i),velocidad(i),x);
end
x=0.5:1:max(velocidad);
horas=hist(velocidad,x);
k=mean(velocidad);
c=(std(velocidad))^2;
frec=horas/sum(horas);
f=@(a,x) (a(1)/a(2))*((x/a(2)).^(a(1)-1)).*exp(-(x/a(2)).^a(1));
a0=[k c];
af=nlinfit(x,frec,f,a0);
f1=@(x) f(af,x);
x3=xlsread('sotavento_curva potencia.xlsx','A2:A27');
y3=xlsread('sotavento_curva potencia.xlsx','B2:B27');
fd=@(xd) interp1(x3,y3,xd,'pchip');
f3=@(x) f1(x).*fd(x);
potenciamedia=quad(f3,0,25)
potenciamedia =
189.7883
EJERCICIO 3
m=20;
k=20;
c=[5 40 200];
x0=[1 0];
tf=40;
figure(3)
for i=1:length(c)
f=@(t,x) [x(2);(-c(i)*x(2)-k*x(1))/m];
[t,x]=ode45(f,[0,tf],x0);
plot(t,x(:,1));
grid on;
hold on;
end
xlabel('t');
ylabel('x');
legend('c = 5','c = 40','c = 200');
title('Movimiento sistema masa-resorte-amortiguador');
EJERCICIO 4
