Ejercicios de Matlab

Contents

Ejercicio 1

figure(1)
t=linspace(0,1,20);
n=3;
for i=0:3
    b=bernstein(n,i,t);
    hold on
    plot(t,b)
end
legend('b0','b1','b2','b3')
title('Gráfica de polinomios Bernstein n=3')
xlabel('t');
ylabel('polinomio');


t = 0:0.01:1;
V=[1, 2, 4, 4.6;
    1, 3, -1, 1.5];
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(n-1,i-1,t)*V(1,i);
    y(i,:)=bernstein(n-1,i-1,t)*V(2,i);
end
a=sum(x);
b=sum(y);
hold on;
plot(a,b)
hold off

Ejercicio 2

apartado a)

figure(2)
[N,T,R]=xlsread('sotaventogaliciaanua.xlsx');

histogram(N,0:25)

apartado b)

figure(3)
[NUMEROS,TEXTO,RESTO]=xlsread('sotaventogaliciaanua.xlsx');
k0=mean(NUMEROS);
c0=std(NUMEROS)^2;
y=histc(NUMEROS,0:25);
frecuencias=y/sum(y);
a0=[c0 k0];
x=0:25;
x=x';
f=@(a,x) (a(1)/a(2))*((x/a(2)).^(a(1)-1)).*exp(-(x/a(2)).^a(1));
af=nlinfit(x,frecuencias,f,a0);

xd=linspace(0,25);
yd=f(af,xd);
bar(0:25,frecuencias)
hold on
plot(xd,yd)
hold off

apartado c)

 figure(4)
[NUMEROS,TEXTO,RESTO]=xlsread('sotavento_curva potencia.xlsx');
velocidad=NUMEROS(:,1);
pot=NUMEROS(:,2);
xd=linspace(0,25);
yd=interp1(velocidad,pot,xd,'pchip');
plot(velocidad,pot,'*')
hold on
plot(xd,yd)
hold off

apartado d)

[NUMEROS,TEXTO,RESTO]=xlsread('sotaventogaliciaanua.xlsx');
k0=mean(NUMEROS);
c0=std(NUMEROS)^2;
BINS=0:25;
y=histc(NUMEROS,BINS);
frecuencias=y/sum(y);
a0=[c0 k0];
x=0:25;
x=x';
f=@(a,x) (a(1)/a(2))*((x/a(2)).^(a(1)-1)).*exp(-(x/a(2)).^a(1)); %distribución de weibull
af=nlinfit(x,frecuencias,f,a0);

%función de potencia
[NUMEROS,TEXTO,RESTO]=xlsread('sotavento_curva potencia.xlsx');
velocidad=NUMEROS(:,1);
pot=NUMEROS(:,2);
P=polyfit(velocidad,pot,3);
g=@(x) f(af,x).*polyval(P,x);
Potencia_media=quad(g,0,10)
Potencia_media =

  197.2897

Ejercicio 3

%Resolución de una ODE de orden 2
%Con el método "ode45"

%mD2x(t)+cDx(t)+kx
m=20;
k=20;
c=5;c1=40;c2=200;
x0=[1,0];%1 es el desplazamiento inicial y cero la velocidad inicial
tf=40; %Tiempo final de 40
f=@(t,x) [x(2);-c*x(2)/m-k*x(1)/m];
[t,x]=ode45(f,[0,tf],x0);
plot(t,x(:,1))
grid on
xlabel('t')
ylabel('x')
title('sistema masa-resorte-amortiguador')
hold on
f1=@(t,x) [x(2);-c1*x(2)/m-k*x(1)/m];
[t,x]=ode45(f1,[0,tf],x0);
plot(t,x(:,1))
f2=@(t,x) [x(2);-c2*x(2)/m-k*x(1)/m];
[t,x]=ode45(f2,[0,tf],x0);
plot(t,x(:,1))
legend("c=5","c=40","c=200")
hold off