Ejercicios Resueltos con MATLAB: Optimización y Visualización
Clasificado en Matemáticas
Escrito el en español con un tamaño de 5,28 KB
1.A
fich=fopen('dat1.txt','w');
v=rand(1,100)*10-5;
for i=1:100
fprintf(fich,'%5.2f \n',v(i));
fprintf('%5.2f \n',v(i))
end
fclose(fich);
1.B
fich=fopen('dat1.txt','r');
n=input('Introduce un número par comprendido entre 1 y 100: ');
while(rem(n,2)~=0 | n<1 | n>100)
n=input('ERROR. Introduce un número par comprendido entre 1 y 100: ');
end
for i=1:100-n
fgets(fich);
end
v=fscanf(fich,'%f',[1,inf]);
m=n/2+1;
A=zeros(m,n/2);
A(1,:)=v(1:n/2);
A(2:m,n/2)=v(m:n);
disp(A)
fclose(fich);
2.A
fich=fopen('dat2.txt','w');
n=fix(rand*100+100);
v=zeros(1,2*n);
v(1:2:2*n-1)=rand(1,n)*40-20;
v(2:2:2*n)=fix(rand(1,n)*20-10);
for i=1:2*n/4
fprintf(fich,'%10.6f %5d %10.6f %5d \n',v(4*i-3:4*i));
fprintf('%10.6f %5d %10.6f %5d \n',v(4*i-3:4*i));
end
fclose(fich);
2.B
f1=fopen('dat2.txt','r');
f2=fopen('codigo.txt','w');
while (~feof(f1))
sin_cod=fgets(f1,1);
switch sin_cod
case '0'
.
.
end
end
fclose(f1);
fclose(f2);
4
fich1=fopen('territorio.txt','r');
fgets(fich1);
i=0;
while ~feof(fich1)
i=i+1;
prov(i,:)=fgets(fich1,30);
extension(i)=fscanf(fich1,'%f');
fgets(fich1);
end
fprintf('%s es la provincia con mayor extensión territorial, con %f miles de kilómetros cuadrados\n',prov(extension==max(extension),:),max(extension));
5
phi=linspace(0,2*pi,100000);
rho=f(phi);
x=rho.*cos(phi);
y=rho.*sin(phi);
hold on
plot(x,y,'r')
y2=y+10;
plot(x,y2)
x3=x+10;
plot(x3,y,'g')
hold off
axis equal
6
hold on
t=linspace(0,pi,500);
x=6*cos(t);
y=6*sin(t);
plot(x,y,'k')
t=linspace(pi,2*pi,500);
x=6*cos(t);
y=6*sin(t);
plot(x,y,'k')
x=linspace(-3*pi,-6,50);
y=sin(x);
plot(x,y)
x=linspace(-6,6,200);
y=sin(x);
plot(x,y,'r','Linewidth',3)
x=linspace(6,3*pi,50);
y=sin(x);
plot(x,y)
axis equal
hold off
7
r1=input('Introduce el valor del radio 1: ');
r2=input('Introduce el valor del radio 2: ');
h=input('Introduce la altura entre coronas: ');
if r1>r2
aux=r1;
r1=r2;
r2=aux;
end
rho=linspace(r1,r2,100);
phi=linspace(0,2*pi,100);
[Mrho,Mphi]=meshgrid(rho,phi);
Mx=Mrho.*cos(Mphi);
My=Mrho.*sin(Mphi);
Mz=zeros(size(Mx));
hold on
mesh(Mx,My,Mz);
Mz=h*ones(size(Mx));
mesh(Mx,My,Mz);
hold off
8
function [A,zmax,zmin]=funcion(nombre)
fichero=fopen(nombre,'r');
Ncol=fscanf(fichero,'%d',[1,1])
fgets(fichero);
Nfil=fscanf(fichero,'%d',[1,1])
for i=1:5
fgets(fichero);
end
[A,cont]=fscanf(fichero,'%f',[Ncol,Nfil])
A=A';
zmax=max(max(A));
zmin=min(min(A));
x=1:Nfil;
y=1:Ncol;
[Mx,My]=meshgrid(x,y);
surf(Mx,My,A);
end
9
x=linspace(-5,5,20);
y=x;
[Mx,My]=meshgrid(x,y);
Mz=Mx.^2+My.^2;
mesh(Mx,My,Mz);
hold on
U=2*Mx;
V=2*My;
W=-ones(size(Mx));
quiver3(Mx,My,Mz,U,V,W);
hold off
1>