Sei sulla pagina 1di 8

APLICAES DE CLCULO NUMRICO MATLAB

ENGENHARIAS-2017
PROFESSORA: GRACIELA MARQUES

1-A tenso, v, atravs de uma resistncia dada como (Lei de Ohm), v = Ri, onde I a
corrente e R a resistncia. A potncia dissipada no resistor R Dado pela expresso:

P =R.i2

Se R = 10 Ohms e a corrente aumentada de 0 para 10 A com incrementos de 2A,


Vamos usar o MATLAB para gerar uma tabela de corrente, tenso e dissipao de
energia.

R = 10; % Valor de resistncia


I = (0: 2: 10); % Gerar valores atuais
V = i. * R; % Array multiplicao para obter tenso
P = (i. ^ 2) * R; % De clculo de potncia
Sol = [i v p]

2- Para um circuito R-L, a tenso v (t) ea corrente i (t) so dadas como:

Faa o grfico v (t) e i (t) para t = 0 a 20 milissegundos.


Comandos:
t=0:1E-3:20E-3;
v=10*cos(337*t);
pi=3.1415;
a_rad= (60*pi/180);
i=5*cos(337*t +a_rad);
figure(02)
plot(t,v,'*',t,i,'o')
title('Tenso e corrente de um circuito RL')
xlabel('Milisegundos'),ylabel('Tenso (V) e corrente (mA)')
text(0.003,1.5,'v(t)');
text(0.009,2,'i(t)')

3-O ganho em funo da freqncia de um amplificador acoplado capacitivamente


mostrado abaixo.
Faa a interpolao frequncia x ganho.
frequencia= [ 20 40 80 100 120 2000 5000 8000 10000 12000];
ganho=[5 10 30 32 34 34 34 34 32 30];
n=2;
p=polyfit(frequencia,ganho,n)

n=3;
p=polyfit(frequencia,ganho,n)

n=9;
p=polyfit(frequencia,ganho,n)

PLOTAR GRFICO

frequenciai=linspace(0,1,100);
z=polyval(p,frequenciai);
figure (01)
plot(frequencia,ganho,'o',frequencia,ganho,frequenciai,z,':')
title('Ajuste de curva')
xlabel('Frequncia (Hz)'),ylabel('Ganho(dB)')
%Interpolao Unidimensional
figure(02)
plot(frequencia,ganho,frequencia,ganho,'+')
title('Interpolao Unidimensional')
xlabel('Frequncia (Hz)'),ylabel(' Ganho(dB)')

CLCULO DOS Db EM QUALQUER PONTO DA FUNO.


%valor do ganho em qualquer frequencia

t=interp1(frequencia,ganho,1023)

t=interp1(frequencia,ganho,1023,'spline')

% INTERPOLAO EM UM INTERVALO
t=interp1(frequencia,ganho,[2000 5000 100000],'spline')
t=interp1(frequencia,ganho,frequencia,'spline');
figure(03)
plot(frequencia,ganho,'--',frequencia,ganho,' +', frequencia,t,'r')
title('Interpolao Spline(Diferencial)')
xlabel('Frequncia (Hz)'),ylabel('Ganho(dB)')

b)Desenhe um grfico de ganho versus freqncia usando uma escala logartmica.


Figure(04)
h=semilogx(frequencia,ganho)
title('Amplificador')
xlabel('Frequncia em Hz'),ylabel('Ganho em dB')

Forma polar
Figure(05)
polar(frequencia,ganho)
grid
title('Forma polar')

SUBPLOTAR FUNES
x=-4:0.5:4;
y=x.^2;
z=x.^3;
figure(09)
subplot(211),plot(x,y),title('Raiz quadrada de x')
subplot(212),plot(x,z),title('Raiz cbica de x')

CURVAS
ezplot(exp(-x), [0 10])
hold on
ezplot(sin(x), [0 10])
hold off
title exp(-x) and sin(x)

OU

X = 0:0.1:10;
plot(X, exp(-X), X, sin(X))

Razes
f(x)=x4 +3x3+4x2+2x +6
x= [ 1 3 4 2 6];
>> plot(x)
>> r=roots(x)

CAMPO DE FORA
[x, y] = meshgrid(-1.1:.2:1.1, -1.1:.2:1.1);
quiver(x, -y);
axis equal;
axis off
ANIMAO

t = 0:0.01:10*pi;
x = t.*sin(t);y=t.*cos(t);
comet3(x,y,t);

t= 0:0.01*pi:2*pi;
figure
axis equal;
axis([ -1 1 -1 1]);
comet(cos(t),sin(t))

X=0:0.01:1;
for j=0:50
plot(X,sin(j*pi/5)*sin(pi*X)), axis([ 0, 1, -2, 2])
M(j+1)= getframe;
end
movie (M)
VRIOS GRFICOS

Movie_figure = figure('position',[100 250 300 200]);

M = moviein(15);

[x,y] = meshgrid([-10:0.5:10]);
for frame_number = 1:15
z = bessel(0,( frame_number-1)*.2 + sqrt(x.^2 +y.^2));
surf(x,y,z);
axis([-10 10 -10 10 -.5 1]);
figure(movie_figure);
M(:,frame_number) = getframe;
end
movie(M);
frame_order = [1:15 14:-1:1];
number_repeats = 5;
movie(M,[number_repeats frame_order]);

M = getframe;
Iluminando uma sala

Suponhamos que precisamos decidir onde colocar as luminrias no teto de um


sala, medindo 10 metros x 4 metros x 3 metros de altura, a fim de melhor
ilumin-lo. Por razes estticas, pede-se que usemos um pequeno nmero de
lmpadas incandescentes. Queremos que as lmpadas totalizem um mximo de 300
watts.Para um determinado nmero de lmpadas, como devem ser colocadas para
maximizar a intensidade da luz na parte mais escura da sala? Tambm gostaramos de
ver quanta melhoria h em ir de uma lmpada de 300 watts a duas
lmpadas de 150 watts para trs lmpadas de 100 watts, e assim por diante. Para manter
as coisas simples , podemos assumir que no h mveis na sala e que a luz refletida
das paredes insignificante em comparao com a luz direta das
lmpadas.
f(x) = 300/(4*pi*((x - 5)2 + (y - 2)2 + 32))
iluminacao= 300/(4*pi*((x - 5)2 + (y - 2)2 + 32))

Podemos usar ezcontourf para plotar essa expresso em todo o piso. Use o mapa de
cores para organizar uma gradao de cores que nos ajude a ver a iluminao. (Consulte
a ajuda on-line do graph3d para obter mais opes de colormap.)

ezcontourf(iluminao,[0 10 0 4]);
colormap(gray);
axis equal tight

subs(iluminacao,{x,y},{0,0})

subs(iluminacao,{x,y},{5,2})

Duas lmpadas
light2 = inline(vectorize(150/(4*pi*((x - d)2 + (y - 2)2 +
32))), x, y, d)
[X,Y] = meshgrid(0:0.1:10, 0:0.1:4); contourf(light2(X, Y, 3)+
light2(X, Y, 7), 20); axis equal tight
contourf(light2(X, Y, 2) + light2(X, Y, 8), 20);
axis equal tight

contourf(light2(X, Y, 1) + light2(X, Y, 9), 20);


axis equal tight

figure(03)
d = 0:0.1:5;
plot(d, light2(0, 0, d) + light2(0, 0, 10 - d))

plot(d, light2(5, 0, d) + light2(5, 0, 10 - d))

hold on;
plot(d, light2(0, 0, d) + light2(0, 0, 10 - d));
hold off

Achar a otimizao( a melhor distncia)


syms d;
eqn = inline(char(light2(0, 0, d) + light2(0, 0, 10 -d) - light2(5, 0,
d) - light2(5, 0, 10 - d)))

qualquer distncia

fzero(eqn, [0 5])
light2(0, 0, 1.441) + light2(0, 0, 10 - 1.441)

Trs lmpadas

light3 = inline(vectorize(100/(4*pi*((x - d)2 + (y - 2)2 +


32))), x, y, d)
Figure(04)
[X,Y] = meshgrid(0:0.1:10, 0:0.1:4);
contourf(light3(X, Y, 1) + light3(X, Y, 5) + light3(X, Y, 9), 20);

axis equal tight


d = 0:0.1:5;
for x = 0:0.5:5
plot(d, light3(x, 0, d) + light3(x, 0, 5) + ...
light3(x, 0, 10 - d))
hold on
end
hold off

MAIS FUNES
A) Calculate and plot the discrete function x(n) = 25 cos(m + 5) e-0.1n com 0
n40.

n=0:1:40;
x=25*cos(pi*n+5).*exp(-0.1*n);
stem(n,x);
axis([ 0 40 -10 10]); grid;
text(10,5,'x(n)=25cos(pi*n+5)exp(-0.1n)');

B)Os dados experimentais de tenso em uma barra de ao so dados pela Tabela. Traar
os dois conjuntos de dados experimentais com alongamento como varivel
independente e a tenso como varivel. Conecte os pontos de dados ponto-a-ponto com
segmentos de linha. Rotule as curvas .

E=[0:10];
Ti=[0 1000 1700 3300 4500 7000 10400 12100 13300 14100 14700];
Td=[ 0 0 1500 2200 3600 5900 8700 11400 12900 13300 14700];
plot(E,Ti,'-*',E,Td,'-o')
gtext('A fora de tenso aumentando')
gtext('A fora de tenso diminuindo')
x=[0:10];
y=[0:100:15000];
xlabel('Fora de tenso(lbs)')
ylabel('Alongamento da barra de ao')
title('Tenso aplicada a uma barra de ao')
grid on

Fractal
Gerar fractals com MATLAB fcil! No caso de voc querer fazer
Alteraes, ou correes, use um M-file: Insira os comandos abaixo:
col=20;
m=400;
cx=-.6;
cy=0;
l=1.5;
x=linspace(cx-l,cx+l,m);
y=linspace(cy-l,cy+l,m);
[X,Y]=meshgrid(x,y);
Z=zeros(m);
C=X+i*Y;
for k=1:col;
Z=Z.^2+C;
W=exp(-abs(Z));
end
colormap copper(256);
pcolor(W);
shading flat;
axis(square,equal,off);

Fractais

n=70000; % numero de interaes


a = [a1 a2 a3 a4] % dimenses
a=[0 0.85 0.2 -0.15];
b=[0 0.04 -0.26 0.28];
c=[0 -0.04 0.23 0.26];
d=[0.16 0.85 0.22 0.24];
e=[0 0 0 0];
f=[0 1.6 1.6 0.44];
%iniciando as variaveis
x(1)=0;
y(1)=0;
j=0;
for i=1:n
prob=rand;
%prob < p1
if prob<0.01
j=1;
% p1 < prob < p1 + p2
elseif prob>0.01 && prob<0.86
j=2;
% p1 + p2 < prob < p1 + p2 + p3
elseif prob>0.86 && prob<0.93
j=3;
else
j=4;
end
x(i+1)=a(j)*x(i)+b(j)*y(i)+e(j);
y(i+1)=c(j)*x(i)+d(j)*y(i)+f(j);
end
plot(x,y,'g.','MarkerSize',1)

FRACTAL
shg
clf reset
set(gcf,'color','white','menubar','none', ...
'numbertitle','off','name','Fractal Fern')
x = [.5; .5];
h = plot(x(1),x(2),'.');
darkgreen = [0 2/3 0];
set(h,'markersize',1,'color',darkgreen,'erasemode','none');
axis([-3 3 0 10])
axis off
stop = uicontrol('style','toggle','string','stop', ...
'background','white');
drawnow
p = [ .85 .92 .99 1.00];
A1 = [ .85 .04; -.04 .85]; b1 = [0; 1.6];
A2 = [ .20 -.26; .23 .22]; b2 = [0; 1.6];
A3 = [-.15 .28; .26 .24]; b3 = [0; .44];
A4 = [ 0 0 ; 0 .16];
cnt = 1;
tic
while ~get(stop,'value')
r = rand;
if r < p(1)
x = A1*x + b1;
elseif r < p(2)
x = A2*x + b2;
elseif r < p(3)
x = A3*x + b3;
else
x = A4*x;
end
set(h,'xdata',x(1),'ydata',x(2));
cnt = cnt + 1;
drawnow
end
t = toc;
s = sprintf('%8.0f points in %6.3f seconds',cnt,t);
text(-1.5,-0.5,s,'fontweight','bold');
set(stop,'style','pushbutton','string','close', ...
'callback','close(gcf)')

Potrebbero piacerti anche