Sei sulla pagina 1di 39

Problemas Seleccionados

ACE 2007/2008

Parte I

Tópicos:

• Criação de vectores e matrizes

• Manipulação de vectores e matrizes

• Indexação numérica

• Indexação lógica

• Cálculo de expressões matemáticas

• Polinómios

• Sistemas de Equações

• Gráficos de dados unidimensionais

• Gráficos com vectores complexos

Exercı́cio 1. Gere a sequência un = (1/2)n − (1/n)(1/2) para n = 1, 2, . . . , 20. Calcule a


P10
soma S = un .
n=1

Sol:. EX1

Exercı́cio 2. Gere um vector x com 200 pontos tal que x ∈ [−π, π] e calcule
P50
S = exp(x2i−1 )
i=1

Sol:. EX2

Exercı́cio 3. O comando randperm(n) gera aleatoriamente uma permutação dos n


primeiros inteiros. Experimente por exemplo com randperm(10). Gere então um vector
2
3

P com uma permutação aleatória dos 500 primeiros inteiros. Extraia os primeiros 200
elementos de P e coloque-os numa matriz M (20 × 10). Calcule a soma de todos os
elementos da matriz que pertencem às colunas pares

Sol:. EX3

Exercı́cio 4. Gere de forma eficiente (sem explicitar individualmente os seus elementos)


a matriz A. Sem recorrer ao comando “mean” calcule a média de todos os elementos de
A.
 0 
2 21 22 23
 24 . . . . . . 27 
A= 
 28 . . . . . . 211 
212 213 214 215

Sol:. EX4
(−1)n+1
Exercı́cio 5. Gere a sequência un = n para n = 1, 2, . . . , 100. Calcule o
produtório P = 100
Q
n=1 exp(un )

Sol:. EX5
 
0 1 1 0
Exercı́cio 6. Crie a matriz binária A = . De seguida, a partir de A crie de
0 0 1 1
forma eficiente (sem explicitar individualmente os seus elementos) a matriz B Nota: tire
partido da simetria de B relativamente a um eixo vertical virtual entre a 4a e a 5a coluna
 
0 1 1 0 0 1 1 0
B = 0 0 1 1 1 1 0 0
0 0 0 0 1 1 1 1
Obtenha de forma eficiente um vector com o na de “0” de cada coluna de B.

Sol:. EX6

Exercı́cio 7. Gere uma matriz, A, com 4 linhas e 8 colunas e com os valores abaixo
indicados (não utilize a definição exaustiva da matriz). A partir de A crie ainda as
matrizes M 1 e M 2.
4

   
1 0 1 1 1 0 0 0
0 0 1 1 0 1 0 0
 
   
1 0 0 0 1 1 1 1 0
 1 0 0
 0
 0 1 0

0 1 0 0 1 1 1 1 0 0 0 0
 M 2 = 0 0 0 1

A=
0
 M1 =  
0 1 0 0 0 0 0 0
 0 1 1
 1
 1 0 0

0 0 0 1 0 0 0 0 1
 0 1 1

1
 1 0 0

0 0 0 0 1 1 0 0
0 1 0 0 1 1 0 0

Sol:. EX7

Exercı́cio 8. Crie uma matriz A de 5 linhas e 10 colunas com os valores que abaixo se
indicam. A partir da matriz A, crie a matriz B com 10 linhas e 5 colunas da forma que
se sugere.
   
0 25 . . . 225 0 1 ... 4
 5 30 . . . 230
 B =  5 6 ... 9 
 
A= . . . . . . . . . . . .  . . . . . . . . . . . .
20 45 . . . 245 45 46 . . . 49

Sol:. EX8

Exercı́cio 9. Comece por gerar um vector “NImp” com os primeiros 250 inteiros
ı́mpares e um vector “Npar” com os primeiros 250 inteiros pares. Aproveite estes
vectores para, com indexação vectorizada, gerar os primeiros 500 termos da sequência un
de acordo com a seguinte regra
( 1 1

n+3
− √n+4 se n ı́mpar
un =
√1 1
− √n+5 se n par
n+4
100
P
Calcule S = un .
n=1

Sol:. EX9

Exercı́cio 10. Gere um vector “NImp” com os primeiros 500 no s ı́mpares e um vector
“NPar” com os 500 no s pares. Aproveite estes vectores para gerar os primeiros 1000
termos da sequência un de acordo com a seguinte regra
(1
4 se n ı́mpar
un = n 1 n

1+ n se n par

Calcule a parte real de (u1000 )i S em que S = 4 90 un para n ı́mpar sendo i a unidade


p P

imaginária. Sugere-se que use indexação vectorizada quer para gerar un quer para os
5

cálculos subsequentes.

Sol:. EX10. Nota: Para uma avaliação crı́tica do cálculo da parte real de (u1000 )i S deve
ter-se em conta que para n suficientemente grande
1 n
 
1+ n ≈e = 2.7183... e ainda que S≈π

Exercı́cio 11. Gere a seguinte função do tempo B(t) usando um passo de amostragem
de 0.03 s

B(t) = exp(−|t − 5|)sin(t2 ), t ∈ [0, 15] s


Produza o gráfico de B(t) a azul. Os eixos devem confinar-se nos intervalos [0, 10] para
as abcissas e as ordenadas no intervalo[−1.5, 1.5]. Produza de seguida uma função S(t)
que é uma versão de B(t) tomada de 3 em 3 amostras. Sobreponha no gráfico anterior
usando pequenos cı́rculos vermelhos os pontos onde |S(t)| > 0.3. Documente
devidamente o gráfico

Sol:. EX11

Exercı́cio 12. Gere a seguinte função do tempo B(t) usando um passo de amostragem
de 0.01s
πt2
sin( )
B(t) = exp(t 3 ), t ∈ [0, 4] s
Produza o gráfico de B(t) com linha azul, as abcissas devem restringir-se ao intervalo
[1, 4] e as ordenadas ao intervalo [0, 40]. Numa outra figura produza de novo o gráfico de
B(t) mas de acordo com as seguintes especificações: se B(t) < 0.5max(B(t)) devem
usar-se pontos a azul senão os pontos devem ser a vermelho. Documente devidamente os
gráficos.

Sol:. EX12

Exercı́cio 13. Gere a seguinte função B(t) com 400pontos:

ln(1 + |t|)
B(t) = , t ∈ [−15, 15]
1 + exp(0.5|t|)

Produza o gráfico de B(t) a azul. Os eixos devem confinar-se nos intervalos [−10, 10]
para as abcissas e as ordenadas no intervalo [0, 0.5]. Produza de seguida uma função
S(t) que é uma versão de B(t) tomada de 3 em 3 amostras. Sobreponha no gráfico
anterior, usando pequenos cı́rculos vermelhos, os pontos onde |S(t)| > 0.15 e |t| < 5.
Documente devidamente o gráfico

Sol:. EX13
6

Exercı́cio 14. Gere a seguinte função B(t) com passo de amostragem ∆t = 0.05:

exp(−0.5|t|)
B(t) = , t ∈ [−5, 5]
2sin(t2 )
Produza o gráfico de B(t) a azul. Os eixos devem confinar-se nos intervalos [−6, 6] para
as abcissas e [0, 1.5] para as ordenadas. Documente devidamente
P o gráfico. A área sob a
curva B(t) no intervalo [-3.5,3.5] pode aproximar-se por B(tk )∆t em que B(tk ) são os
pontos da função em que |t| < 3.5. Identifique por indexação lógica esses pontos,
sobreponha-os no gráfico anterior com pontos vermelhos e apresente uma estimativa
para área sob a curva nesse intervalo.

Sol:. EX14

Exercı́cio 15. Considere o seguinte polinómio p(z) = (1 + 2i)z 4 + (1 − 2i)z 3 − 1.


Calcule as raı́zes do polinómio p(z). Faça o gráfico a azul, com razão de aspecto 1:1, da
circunferência de raio unitário recorrendo à variável complexa z = exp(iω) com
ω ∈ [0, 2π] (200 pontos). Sobreponha no gráfico as raı́zes do polinómio p(z) com “*” a
vermelho. Reutilizando a definição da variável z, calcule p(z). Numa outra figura crie 2
áreas gráficas dispostas verticalmente. Na área gráfica superior faça o gráfico da parte
real de p(z) em função de ω e na área gráfica inferior o gráfico da parte imaginária de
p(z) em função de ω. Documente devidamente os gráficos.

Sol:. EX15

Exercı́cio 16. Considere uma equação do tipo p(x) = exp(−α). Calcule as raı́zes da
equação para p(x) = x3 − 4x2 + 1 e α = 1. Faça o gráfico (200 pontos) sobreposto de
p(x) e da recta y = exp(−α) no intervalo x ∈ [−1, 4.5]. Mostre, com pequenos cı́rculos
vermelhos, que as raı́zes da equação p(x) = exp(−α) se situam exactamente nas
intersecções de p(x) com a recta y = exp(−α). Documente devidamente o gráfico

Sol:. EX16

Exercı́cio 17. Considere a seguinte equação polinomial p(x) = 0 com


p(x) = (x3 − 2x2 + 3)(x − 1)2 . Calcule um vector r com todas as raı́zes da equação.
Calcule p(x) para x ∈ [−1.25, 1.5] (200 pontos). Faça o gráfico de p(x) e sobreponha-lhe,
recorrendo a indexação lógica, pequenos cı́rculos vermelhos nos locais correspondentes
apenas às raı́zes reais. Considere real qualquer raı́z rk tal que |imag(rk )| < 0.001.
Documente devidamente o gráfico.

Sol:. EX17

Exercı́cio 18. Considere o polinómio p(x) = 2x3 − 3x2 + x − 3. Calcule e faça o gráfico
com 500 pontos de p(x) para x ∈ [0, 2]. Calcule os valores máximo e mı́nimo de p(x) .
Defina um vector y como y = p(x) + 0.4(maxp(x) − minp(x) )N, em que N é um vector
aleatório gaussiano, de média nula e desvio padrão unitário. Calcule a percentagem de
7

casos em que |y − p(x)| < 0.1

Sol:. EX18

Exercı́cio 19. Considere p(x) = (x2 − 2x + 1)(x − 4) e q(x) = (x − 1)(x + 2)(x − 3).
Crie uma figura com 3 áreas gráficas dispostas verticalmente. Para x ∈ [2, 3] com 200
pontos, faça o gráfico de p(x) na 1a área gráfica, e de q(x) na 2a área gráfica. Use a 3a
área gráfica para obter graficamente a solução da equação p(x) = q(x) no intervalo
considerado. Adicione as legendas adequadas.

Sol:. EX19

Exercı́cio 20. Considere a equação da curva designada por nefróide

x = a(3cost + cos3t)
y = a(3sint + sin3t)
Use a notação de variável complexa z = x + iy para obter o gráfico da curva com a = 2 e
t ∈ [0, 2π] com 400 pontos. Note que a razão de aspecto do gráfico deve ser unitária.
Repita os cálculos agora com a = 4 e guarde os resultados num vector w. Mostre, sem
recorrer ao comando hold on, como pode obter o gráfico sobreposto das 2 nefróides.
Adicione as legendas adequadas.

Sol:. EX20

Exercı́cio 21. Considere o seguinte sistema de equações lineares



 x + 2y = 8−z
2y + z = 10 − 3x
4x + 3y = 4 + 2z

Determine a solução do sistema. Fazendo z = z0 , em que z0 é a solução obtida para a


incógnita z, resultam 3 equações de recta do tipo y = mx + b. Defina um intervalo com
200 pontos para x ∈ [−3, 3] e verifique graficamente que o ponto de intersecção das 3
rectas coincide com a solução obtida para o sistema. Nota: pode usar hold on para
sobrepor as rectas. Acrescente as legendas adequadas.

Sol:. EX21
%Exercício 1
%
n = 1:20; % Cria n
un = (1/2).^n - (1./n).^2; % Calcula un
S = sum(un(1:10)) % Calcula a soma dos 10 primeiros
elementos

S =

-0.5507
%Exercício 2
%
x = linspace(-pi,pi,200);
% ou x = -pi:2*pi/199:pi;
n = 1:50;
% os termos de x envolvidos na soma soma são
% x(1), x(3), x(5), ..., x(99)
S = sum(exp(x(2*n-1)))

S =

14.9223

Published with MATLAB® 7.3


%Exercício 3
%
P = randperm(500);
%geram-se todos os inteiros até 500 segundo uma ordenação
aleatória
M = P(1:200); %primeiros 200 elementos de P
M = reshape(M,20,10); %M é reformatada para 20x10
CPares = M(:,2:2:end); %Extracção das colunas pares
S = sum(CPares(:)); %Soma de todos os elementos de CPares

% Nota: resolução alernativa


M = zeros(20,10); %Começa-se por criar M com a
configuração 20x10.
%Podia ser uma qualquer matriz 20x10.
M(:) = P(1:200); %Aos elementos de M são atribuídos os
primeiros
%200 valores de P. Note que M(:) do lado
esquerdo
%da expressão significa que se mantem a
estrutura
%matricial 20x10
CPares = M(:,2:2:end); %Extracção das colunas pares
S = sum(CPares(:)) %Soma de todos os elementos de CPares
%Note que o seu resultado vai concerteza
diferir
%de S. Porquê?

S =

26915

Published with MATLAB® 7.3


%Exercício 4
%
n = 0:15; % vector dos expoentes
A = 2.^n;
A = reshape(A,4,4); % Reformatação pra 4x4
A = A'; % Transposição

% Alternativa;
A = zeros(4); % Cria uma matriz 4x4
A(:) = 2.^(0:15); % Os elementos dessa matriz tomam valores 2^n
A = A';

% Alternativa
% Replicação do 2 em 4x4 seguido de exponenciação ponto a ponto
A = repmat(2,4,4).^reshape(0:15,4,4);
A = A'

A =

1 2 4 8
16 32 64 128
256 512 1024 2048
4096 8192 16384 32768

Published with MATLAB® 7.3


%Exercício 5
%
n = 1:100; %vector n
un = ((-1).^(n+1))./n; %vector un
P = prod(exp(un)); %Cálculo do produtório

% Note que dado estarmos perante uma função exponencial


P = exp(sum(un))

P =

1.9901

Published with MATLAB® 7.3


%Exercício 6
%
A = [0 1 1 0;0 0 1 1];
% A metade direita da matriz inclui A reflectida horizontalmente
% Troca de colunas: 1 com a última , 2 com penúltima etc ...
% A linha final de A inclui uma submatriz de zeros seguida de
% outra com uns
B = [A A(:,end:-1:1);zeros(1,length(A)) ones(1,length(A))];

% Alternativa: usar a instrução fliplr


A
B = [A fliplr(A);zeros(1,length(A)) ones(1,length(A))]

A =

0 1 1 0
0 0 1 1

B =

0 1 1 0 0 1 1 0
0 0 1 1 1 1 0 0
0 0 0 0 1 1 1 1

Published with MATLAB® 7.3


% Exercício 7
%
% Matriz A por concatenação
A = [eye(4) [ones(2,4); zeros(2,4)]]

% M1 por reshape
M1 = reshape(A,8,4)

% M2 por transposição
M2 = A'

A =

1 0 0 0 1 1 1 1
0 1 0 0 1 1 1 1
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0

M1 =

1 0 1 1
0 0 1 1
0 1 0 0
0 0 0 0
0 0 1 1
1 0 1 1
0 0 0 0
0 1 0 0

M2 =

1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 1 0 0
1 1 0 0
1 1 0 0
1 1 0 0
% Exercício 8
%
% Matriz A por reshape
A = 0:5:245;
A = reshape(A,5,10)
% B por transposição de A/5
B = (A/5)'

A =

0 25 50 75 100 125 150 175 200 225


5 30 55 80 105 130 155 180 205 230
10 35 60 85 110 135 160 185 210 235
15 40 65 90 115 140 165 190 215 240
20 45 70 95 120 145 170 195 220 245

B =

0 1 2 3 4
5 6 7 8 9
10 11 12 13 14
15 16 17 18 19
20 21 22 23 24
25 26 27 28 29
30 31 32 33 34
35 36 37 38 39
40 41 42 43 44
45 46 47 48 49

Published with MATLAB® 7.3


%Exercício 9
%
% Índices ímapares até 500
NImp = 1:2:500;
% Ou Nimp = (0:249)*2+1;
%
% Índices pares até 500
NPar = 2:2:500;
% Ou NPar = (1:250)*2
% Definição de Un com índices vectorizados
Un(NImp) = 1./(sqrt(NImp+3)) - 1./(sqrt(NImp+4));
Un(NPar) = 1./(sqrt(NPar+4)) - 1./(sqrt(NPar+5));

% Soma
S = sum(Un(1:100))

S =

0.3801

Published with MATLAB® 7.3


%Exercício 10
%
% Índices ímapares até 1000
NImp = 1:2:1000;
% Ou Nimp = (0:499)*2+1;
%
% Índices pares até 1000
NPar = 2:2:1000;
% Ou NPar = (1:500)*2
% Definição de Un com índices vectorizados
Un(NImp) = 1./(NImp.^4);
Un(NPar) = (1+1./NPar).^NPar;

% Soma
S = (90*sum(Un(NImp))).^(1/4)
U1000 = Un(1000)
U1000_iS = Un(end).^(i*S)

% Como Un(1000) é aprox exp(1) e S tende para Pi obtemos


% a parte real de U1000_iS muito próxima de -1 e a parte
% imaginária próxima de 0.

S =

3.0913

U1000 =

2.7169

U1000_iS =

-0.9987 + 0.0518i

Published with MATLAB® 7.3


% Exercício 11
%
% Definição de t e B(t)
t = 0:0.03:15;
Bt = exp(-abs(t-5)).*sin(t.^2);
plot(t,Bt), axis([0 10 -1.5 1.5]);
xlabel('t'), ylabel('B(t)'), grid;
% Definição de S(t) por indexação
St = Bt(1:3:end);
newt = t(1:3:end);
% Vector de índices lógicos
L = abs(St) > 0.3;
hold on
plot(newt(L),St(L),'r*')
xlabel('t'), ylabel('B(t) e abs(S(t))>0.3');
hold off
% Exercício 12
%
% Definição de t e B(t)
t = 0:0.01:4;
Bt = exp(t.*sin((pi*t.^2)/3));
plot(t,Bt), axis([1 4 0 40]);
xlabel('t'), ylabel('B(t)'), grid;

% Noutra figura
figure
% Índices lógicos
L = Bt < 0.5*max(Bt);
% Note-se a utilização do operador ~ para efectuar a negação de L
plot(t(L),Bt(L),'.b',t(~L),Bt(~L),'.r')
xlabel('t'), ylabel('B(t)'), grid;
Published with MATLAB® 7.3
% Exercício 13
%
% Definição de t e B(t)
t = linspace(-15,15,400);
Bt = log(1+abs(t))./(1+exp(0.5*abs(t)));
plot(t,Bt,'b')
axis([-10 10 0 0.5])
xlabel('t'), ylabel('B(t)'), grid;
hold on
% Definição de S(t) por subamostragem
newt = t(1:3:end);
St = Bt(1:3:end);
% Índices Lógicos
L = (abs(newt) < 5) & (abs(St) > 0.15);
plot(newt(L),St(L),'.r')
hold off
% Exercício 14
%
% Definição de t e B(t)
Deltat = 0.05;
t = -5:Deltat:5;
Bt = exp(-0.5*abs(t))./(2.^(sin(t.^2)));
plot(t,Bt,'b')
axis([-6 6 0 1.5])
xlabel('t'), ylabel('B(t)'), grid;

% Índices lógicos
L = abs(t) < 3.5;
Btk = Bt(L);
Area = sum(Btk)*Deltat
hold on
plot(t(L),Btk,'.r')
hold off

Area =

3.0283
Published with MATLAB® 7.3
% Exercício 15
%
% Coefs do polinómio
coefs = [(1+2*i) (1-2*i) 0 0 -1];
Rts = roots(coefs)
% Gráfico das raízes complexas relativamente ao círculo unitário
W = linspace(0,2*pi,200);
z = exp(W*i);
plot(z), axis equal, axis([-1.5 1.5 -1.5 1.5]), grid
title('Raízes do polinómio (1+2i)z^4 + (1-2i)z^3 - 1')
hold on
% Note-se que Rts é um vector complexo
plot(Rts,'*r')
hold off

% Cálculo de p(z)
Pz = polyval(coefs,z);
figure
subplot(2,1,1)
plot(W,real(Pz))
xlabel('W'), ylabel('real(P(z))'), grid
subplot(2,1,2)
plot(W,imag(Pz))
xlabel('W'), ylabel('imag(P(z))'), grid

Rts =

0.5264 + 1.0597i
0.8271 + 0.0471i
-0.6170 + 0.3305i
-0.1366 - 0.6373i
Published with MATLAB® 7.3
% Exercício 16
%
% Coefs do polinómio
alpha = 1;
COEFS = [1 -4 0 1];
% Para calcular as raízes de p(x)=exp(-alpha) temos de fazer p(x)-
exp(-alpha)=0
% isto é o novo polinómio tem coefs:
NCOEFS = [1 -4 0 1-exp(-alpha)];
Rts = roots(NCOEFS)

% Gráfico de p(x) e da recta y = exp(-alpha)


x = linspace(-1,4.5,200);
Px = polyval(COEFS,x);
Y = ones(size(x))*exp(-alpha);
plot(x,Px,'b');
xlabel('x'), legend('P(x) e Y = exp(-alpha')
hold on
plot(x,Y,'k'); %linha a preto
% Cálculo de P(x) nas raízes de P(x) - exp(-aplha) = 0
PxRts = polyval(COEFS,Rts);
plot(Rts,PxRts,'or')
hold off

Rts =

3.9597
0.4202
-0.3799
Published with MATLAB® 7.3
% Exercício 17
%
% 1ª Sol.
% Estamos perante um produto de polinómios h(x).q(x)
% Q(x) está na forma factorizada e tem uma raíz dupla em 1
rQ = [1 1];
Qcoefs = poly(rQ)
Hcoefs = [3 -2 0 3]
Pcoefs = conv(Hcoefs,Qcoefs)

% Raízes de P
rP = roots(Pcoefs)

% Cálculo de P(x)
x = linspace(-1.25,1.5,200);
Px = polyval(Pcoefs,x);
plot(x,Px,'b'), xlabel('x'), ylabel('P(x)'), grid on

% Raízes reais, usa-se o real para ficarmos apenas com


representação real
rPreais = real(rP(abs(imag(rP))<0.001))
hold on
plot(rPreais,zeros(size(rPreais)),'or')
hold off

% 2ª Sol: Calcular as raízes do polinómio de 3º grau h(x) e


concatenar com
% a raíz dupla [1 1]. Isto é:
rP = [roots([3 -2 0 3])' [1 1]]; % a transposição e apenas para
manter o
% o resultado num vector linha
% o resto da solução é igual à anterior

Qcoefs =

1 -2 1

Hcoefs =

3 -2 0 3
Pcoefs =

3 -8 7 1 -6 3

rP =

-0.8201
0.7434 + 0.8165i
0.7434 - 0.8165i
1.0000
1.0000

rPreais =

-0.8201
1.0000
1.0000
Published with MATLAB® 7.3
% Exercício 18
%
% Coefs do polinómio
COEFS = [2 -3 1 -3];
x = linspace(0,2,500);
Px = polyval(COEFS,x);
plot(x,Px), xlabel('x'), ylabel('P(x)'), grid on
minPx = min(Px)
maxPx = max(Px)

% Definição de y
y = Px + 0.4*(maxPx - minPx)*randn(size(x));

% Cálculo de abs(y - Px)


D = abs(y - Px);
% Casos em que abs(y - Px) < 0.1
L = abs(y - Px) < 0.1;
PercCasos = 100*sum(L)/length(L)

minPx =

-3.0962

maxPx =

PercCasos =

3.4000
Published with MATLAB® 7.3
% Exercício 19
%
RootsP = [roots([1 -2 1])' 4];
Pcoefs = poly(RootsP)
RootsQ = [1 -2 3];
Qcoefs = poly(RootsQ)

x = linspace(2,3,200);
subplot(3,1,1)
Px = polyval(Pcoefs,x);
plot(x,Px,'b'), xlabel('x'), ylabel('P(x)'), grid on
subplot(3,1,2)
Qx = polyval(Qcoefs,x);
plot(x,Qx), xlabel('x'), ylabel('Q(x)'), grid on
subplot(3,1,3)
plot(x,[Px(:) Qx(:)]),xlabel('x'), legend('P(x)','Q(x)'), grid on

% Graficamente pode observar-se que a raíz se encontra em x=2.5


% Analiticamente podemos verificar esta localização
% Dado que os polinómios P e Q são do mesmo grau P(x) = Q(x) é o
% mesmo que P-Q = 0
RootsP_Q = roots(Pcoefs - Qcoefs);
% No intervalo [2,3]
L = (RootsP_Q < 3) & (RootsP_Q > 2);
disp('no intervalo [2,3]')
RootsP_Q(L)

Pcoefs =

1 -6 9 -4

Qcoefs =

1 -2 -5 6

no intervalo [2,3]

ans =

2.5000
Published with MATLAB® 7.3
% Exercício 20
%
%
a = 2;
t = linspace(0,2*pi,400);
x = a*(3*cos(t)+cos(3*t));
y = a*(3*sin(t)+sin(3*t));
z = x+y*i;
plot(z), axis equal, grid on, title('Nefroide, a=2')
xlabel('x'), ylabel('y')
figure
a = 4;
x = a*(3*cos(t)+cos(3*t));
y = a*(3*sin(t)+sin(3*t));
w = x+y*i;
plot([z(:) w(:)]), axis equal, grid on, title('Nefroides')
xlabel('x'), ylabel('y')
legend('a = 2', 'a = 4')
Published with MATLAB® 7.3
% Exercício 21
%
% Elaboração do sistema
A = [1 2 1; 3 2 1; 4 3 -2]
b = [8 10 4]'
% Solução
U = A\b
Z0 = U(3);

% Reescrevendo o sistema e definindo x no intervalo [-3,3]


x = linspace(-3,3,200);

% Agora as rectas na forma y = mx + b


y1 = (-x - Z0 + 8)/2;
y2 = (-3*x -Z0 + 10)/2;
y3 = (-4*x + 2*Z0 + 4)/3;
plot(x, [y1(:) y2(:) y3(:)]), xlabel('x'), ylabel('y')
legend('y1','y2','y3'), grid on
disp('as rectas cruzam-se no ponto solução do sistema')

A =

1 2 1
3 2 1
4 3 -2

b =

8
10
4

U =

1.0000
2.0000
3.0000

as rectas cruzam-se no ponto solução do sistema


Published with MATLAB® 7.3

Potrebbero piacerti anche