Escolar Documentos
Profissional Documentos
Cultura Documentos
Engenharia
Aula 10
+ +…+ =
- coeficientes; - variáveis; - constantes
TP10 Aplicacionais para Ciências e Engenharia 4
Métodos de resolução
• No Matlab podemos resolver sistemas de
equações lineares usando:
– Álgebra matricial
Formas simples
o Mínimos quadrados
Métodos diretos (eliminação Gaussiana, fatorização)
o Métodos indiretos
− Funções específicas do Matlab
– Em Matlab:
x=inv(A)*b
– Em Matlab:
x=A\b
TP10 Aplicacionais para Ciências e Engenharia 8
Utilização da matriz inversa
O sistema de equações lineares
B = ans =
23/10 2.3000
24/5 4.8000
29/10 2.9000
TP10 Aplicacionais para Ciências e Engenharia 10
Utilização da matriz inversa
• O que temos de fazer?
– Calcular o determinante de A.
– Se det(A)=0, A-1 não existe, logo X não pode ser calculado
A=[0.125 0.2 0.4;0.375 0.5 0.6;0.5 0.3 0]
A =
0.1250 0.2000 0.4000 B
0.3750 0.5000 0.6000 B =
0.5000 0.3000 0 2.3000
det(A) 4.8000
ans = 2.9000
-0.0175 % não é zero
inv(A) X=inv(A)*B
ans = X =
10.2857 -6.8571 4.5714 4.0000
-17.1429 11.4286 -4.2857 3.0000
7.8571 -3.5714 0.7143 3.0000
A =
0.1250 0.2000 0.4000
0.3750 0.5000 0.6000
0.5000 0.3000 0
B =
2.3000
4.8000
2.9000
X =
4.0000
3.0000
3.0000
B = X1=A1\B
Warning: Matrix is singular to
2.3000 working precision.
4.8000 X1 =
2.9000 Inf
Inf
-0.0556 % o valor de z calculado
(fará sentido?)
TP10 Aplicacionais para Ciências e Engenharia 14
Utilização da divisão à esquerda
• Com m≠n, a solução é obtida por minimização
do erro quadrático médio
% m=2 e n=3 (sem linha 3)
A23=[0.125 0.2 0.4;0.375 0.5 0.6]
B23=[2.3;4.8]
X23=A23\B23
-0.3429
10.1429
A = ans =
0.1250 0.2000 0.4000
0.3750 0.5000 0.6000 4.0000
0.5000 0.3000 0 3.0000
3.0000
B =
2.3000
4.8000
2.9000
r1 = 2
-2 1
0
r2=fzero(@(x)x^2-4,3)
-1
r2 = -2
-3
2
-4
-3 -2 -1 0 1 2 3
eqn =
a*x^2 + b*x + c == 0
S=solve(eqn) % ou solve(eqn,x)
S =
eqn =
S = solve(eqn,x)
S =
-4
-1
2
Nota: Este exemplo não é mais do que o cálculo das raízes de um polinómio.
Como vimos na TP5, as raízes de um polinómio podem ser calculadas com a
função roots.
S = solve(eqn,x)
Warning: Unable to solve symbolically. Returning a numeric solution
using vpasolve.
> In solve (line 304)
S =
-0.63673265080528201088799090383828
Sx = Sy = -1
-2
-6^(1/2) 5^(1/2)
6^(1/2) -5^(1/2) -3
-6^(1/2) -5^(1/2) -4
6^(1/2) 5^(1/2)
-5 0 5
80
format long
f=@(x)100*(x(2)-x(1).^2).^2+(1-x(1)).^2
fmin=fminsearch(f,[0,0])
fxmin=f(fmin)
f =
function_handle with value:
@(x)100*(x(2)-x(1).^2).^2+(1-x(1)).^2
fmin =
1.000004385898617 1.000010640991648
fxmin =
3.686176915175907e-10