EJERCICIOS MATLAB

EJERCICIO 1

Apartado a)

% function x=factr(n)
% if n==0
%     x=1;
% else
%     x=n.*factr(n-1);
% end

EJERCICIO 1

Apartado b)

% function x=combina(n,i)
% %(n i)=n!/(i!*(n-i)!)
% x=factr(n)/(factr(i)*factr(n-i));
% end


EJERCICIO 1

Apartado c)

% function b=bernstein(n,i,t)
% %B(x)=(n i)t^i(1-t)^(n-i)
% b=combina(n,i)*t.^i.*(1-t).^(n-i);
% end


figure(1)
t=linspace(0,1);
n=3;%grado
for i=0:n
    b=bernstein(n,i,t);
    plot(t,b);
    hold on;
end
xlabel('t');
ylabel('Polinomio de Bernstein grado 3');
title('Polinomios de Bernstein');
legend('B_3_,_0','B_3_,_1','B_3_,_2','B_3_,_3');

EJERCICIO 1

Apartado d)

%Q=sumatorio(Vi+1*Bn,i)

clc;clear;
t=linspace(0,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)
xlabel('t');
ylabel('Polinomio de Bernstein grado 3');

EJERCICIO 2

Apartado a)


clc;clear
[NUMEROS,TEXTO,RESTO]=xlsread('sotaventogaliciaanual.xlsx');
figure(2)
hist(NUMEROS,0:25)

EJERCICIO 2

Apartado b)

[NUMEROS,TEXTO,RESTO]=xlsread('sotaventogaliciaanual.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)

EJERCICIO 2

Apartado c)


[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,'g')

EJERCICIO 2

Apartado d)

[NUMEROS,TEXTO,RESTO]=xlsread('sotaventogaliciaanual.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 segundo orden
% Método de "ode45"

m=20; % masa del cuerpo
k=20; % cte elástica del muelle
% condiciones iniciales
x0=[1,0]; % 1 es posición inicial, 0 es velocidad inicial
tf=40; % tiempo final
figure(3)
for c=[5,40,20]
    f=@(t,x) [x(2);(-k*x(1)-c*x(2))/(m)]; % x(1) es el desplazamiento y x(2) es la velocidad
    [t,x]=ode45(f,[0,tf],x0);
    plot(t,x(:,1),'r')
    hold on

end
legend('Cte de amortiguación 5','Cte de amortiguación 40','Cte de amortiguación 20')
grid on
xlabel('Tiempo (s)')
ylabel('Desplazamiento (m)');
title('Sistema masa-resorte-amortiguador')

EJERCICIO 4

function varargout = Prototipo_gui(varargin)
% PROTOTIPO_GUI MATLAB code for Prototipo_gui.fig
%      PROTOTIPO_GUI, by itself, creates a new PROTOTIPO_GUI or raises the existing
%      singleton*.
%
%      H = PROTOTIPO_GUI returns the handle to a new PROTOTIPO_GUI or the handle to
%      the existing singleton*.
%
%      PROTOTIPO_GUI('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in PROTOTIPO_GUI.M with the given input arguments.
%
%      PROTOTIPO_GUI('Property','Value',...) creates a new PROTOTIPO_GUI or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before Prototipo_gui_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to Prototipo_gui_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help Prototipo_gui

% Last Modified by GUIDE v2.5 12-Jan-2019 17:10:26

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @Prototipo_gui_OpeningFcn, ...
                   'gui_OutputFcn',  @Prototipo_gui_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before Prototipo_gui is made visible.
function Prototipo_gui_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to Prototipo_gui (see VARARGIN)

% Choose default command line output for Prototipo_gui
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes Prototipo_gui wait for user response (see UIRESUME)
% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = Prototipo_gui_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;

% --- Executes on slider movement.
function slider1_Callback(hObject, eventdata, handles)
% hObject    handle to barra (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'Value') returns position of slider
%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider


% --- Executes during object creation, after setting all properties.
function slider1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to barra (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: slider controls usually have a light gray background.
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end


function a_Callback(hObject, eventdata, handles)
% hObject    handle to a (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of a as text
%        str2double(get(hObject,'String')) returns contents of a as a double


% --- Executes during object creation, after setting all properties.
function a_CreateFcn(hObject, eventdata, handles)
% hObject    handle to a (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


function to_Callback(hObject, eventdata, handles)
% hObject    handle to to (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of to as text
%        str2double(get(hObject,'String')) returns contents of to as a double

% --- Executes during object creation, after setting all properties.
function to_CreateFcn(hObject, eventdata, handles)
% hObject    handle to to (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


function peso_Callback(hObject, eventdata, handles)
% hObject    handle to peso (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of peso as text
%        str2double(get(hObject,'String')) returns contents of peso as a double


% --- Executes during object creation, after setting all properties.
function peso_CreateFcn(hObject, eventdata, handles)
% hObject    handle to peso (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


function hmin_Callback(hObject, eventdata, handles)
% hObject    handle to hmin (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of hmin as text
%        str2double(get(hObject,'String')) returns contents of hmin as a double


% --- Executes during object creation, after setting all properties.
function hmin_CreateFcn(hObject, eventdata, handles)
% hObject    handle to hmin (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


function flecha_Callback(hObject, eventdata, handles)
% hObject    handle to flecha (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of flecha as text
%        str2double(get(hObject,'String')) returns contents of flecha as a double


% --- Executes during object creation, after setting all properties.
function flecha_CreateFcn(hObject, eventdata, handles)
% hObject    handle to flecha (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


function longitud_Callback(hObject, eventdata, handles)
% hObject    handle to longitud (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of longitud as text
%        str2double(get(hObject,'String')) returns contents of longitud as a double


% --- Executes during object creation, after setting all properties.
function longitud_CreateFcn(hObject, eventdata, handles)
% hObject    handle to longitud (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
a = eval(get(handles.a,'String'));
vano=eval(get(handles.a,'String'));
tension=eval(get(handles.to,'String'));
peso=eval(get(handles.peso,'String'));
hmin=eval(get(handles.hmin,'String'));
x=linspace(0,vano);
h=(tension/peso)*(cosh(peso*vano/(2*tension))-1);
l=(tension/peso)*(sinh((peso*vano)/(tension)));
y=(tension./peso).*(cosh((peso.*(2.*x-vano))./(2.*tension))-cosh((peso.*vano)./(2.*tension)))+h+hmin;

plot(x,y)
ylim([0,max(y)*1.2]);

set(handles.flecha,'String',h);
set(handles.long,'String',l);



% --- Executes on slider movement.
function barra_Callback(hObject, eventdata, handles)
% hObject    handle to barra (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
s=get(handles.barra,'Value');
set(handles.a,'String',s);


% Hints: get(hObject,'Value') returns position of slider
%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider


% --- Executes during object creation, after setting all properties.
function barra_CreateFcn(hObject, eventdata, handles)
% hObject    handle to barra (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: slider controls usually have a light gray background.
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end