PABLO PORRES FERNANDEZ
Contents
EJERCICIO 1
type mibernstein
type factr
type combina
function berns=mibernstein(n,k,t)
berns=combina(n,k)*(t.^k).*(1-t).^(n-k);
end
function f=factr(n)
if n==0
f=1;
else
f=n*factr(n-1);
end
end
function comb=combina(n,k)
comb=factr(n)/(factr(k)*factr(n-k));
end
Bezier
t=linspace(0,1);
vector=[1 2 4 4.6;1 3 -1 1.5];
plot(vector(1,:),vector(2,:),'-o');
n=size(vector);
n=n(2);
xs=size(t);
x=zeros(n,xs(2));
for k=1:n
x(k,:)=mibernstein(n-1,k-1,t)*vector(1,k);
y(k,:)=mibernstein(n-1,k-1,t)*vector(2,k);
end
r=sum(x);
s=sum(y);
hold on;
grid on
plot(r,s)
Grafica Bernstein
t=linspace(0,1);
n=3;
figure
for k=0:n
bernst=mibernstein(n,k,t);
plot(t,bernst);
grid on
hold on;
end
xlabel('Tiempo (s).')
ylabel('Polinomios de Bernstein.')
title('Polinomios de Bernstein de Tercer Grado.')
legend('Bernstein30','Bernstein31','Bernstein32','Bernstein33')
EJERCICIO 2
A)
[V]=xlsread('sotaventogaliciaanual.xlsx','B:B');
hist(V)
hold on
title('Histograma de las Frecuencias.')
B)
V=xlsread('sotaventogaliciaanual.xlsx','B:B');
v=0.5:1:max(V);
viento=hist(V,v);
frecuencia=viento/sum(viento);
func=@(x,v) (x(1)/x(2))*((v/x(2)).^(x(1)-1)).*exp(-(v/x(2)).^x(1));
k=std(V);
c=mean(V);
x0=[k c];
xf=nlinfit(v,frecuencia,func,x0);
hold on
bar(v,frecuencia,'c');
v=linspace(0,max(V),100);
y=func(xf,v);
plot(v,y,'r')
title('Ajuste de la funci?n de Weibull.')
xlabel('Velocidad (m/s).')
ylabel('Frecuencia (Hz).')
hold off
C)
U=xlsread('sotavento_curva potencia.xlsx','A:A');
V=xlsread('sotavento_curva potencia.xlsx','B:B');
vect=linspace(0,25);
vect1 = interp1(U,V,vect,'pchip');
figure
plot(U,V,'o',vect,vect1,':.');
title('Interpolaci?n de la curva de la potencia.');
legend('Valores de la curva de la potencia','Interpolaci?n','Location','Southeast');
EJERCICIO 3
masa=20;
k=20;
c=5;c1=40;c2=200;
x0=[1,0];
tf=40;
f=@(t,x) [x(2);-c*x(2)/masa-k*x(1)/masa];
[t1,x1]=ode45(f,[0,tf],x0);
figure
plot(t1,x1(:,1))
grid on
xlabel('Tiempo (s).')
ylabel('Distancia (m).')
title('Sistema compuesto por una masa, un resorte y un amortiguador.')
hold on
f1=@(t,x) [x(2);-c1*x(2)/masa-k*x(1)/masa];
[t2,x2]=ode45(f1,[0,tf],x0);
plot(t2,x2(:,1))
f2=@(t,x) [x(2);-c2*x(2)/masa-k*x(1)/masa];
[t3,x3]=ode45(f2,[0,tf],x0);
plot(t3,x3(:,1))
legend('C=4','C=40','C=200')