You are on page 1of 6

Programao de Computadores e Mtodos Numricos II

Curso: Engenharia Civil Turma: 6CVAN

Roteiro de Prticas 03
Ajuste de curvas
0.1 Zero absoluto
De acordo com a lei de Charles para um gs ideal em um volume constante, existe uma relao
linear entre a presso p e a temperatura T. No experimento mostrado na gura, um volume xo
de gs em um recipiente lacrado submergido em gua gelada (T = 0 C). A temperatura do gs
ento elevada em incrementos de dez at alcanar T = 100 C, o que feito aquecendo-se a gua, e
a presso do gs medida em cada temperatura. Os dados obtidos no experimento so:
T (C) 0 10 20 30 40 50 60 70 80 90 100
p (atm.) 0, 94 0, 96 1, 00 1, 05 1, 07 1, 09 1, 14 1, 17 1, 21 1, 24 1, 28

Extrapole os dados e determine a temperatura de zero absoluto, T0


(a) Trace um grco dos dados (p versus T).

Plota o g r f i c o de p X T
xt = 0 : 1 0 : 1 0 0 ;
yp = [ 0 . 9 4 , 0 . 9 6 , 1 . 0 0 , 1 . 0 5 , 1 . 0 7 , 1 . 0 9 , 1 . 1 4 , 1 . 1 7 , 1 . 2 1 , 1 . 2 4 , 1 . 2 8 ] ;
p l o t ( xt , yp , ' * r ' )
x l a b e l ( ' Vazao A/A1 ' )
ylabel ( ' Coeficiente ')

(b) Use a regresso linear por mnimos quadrados para determinar uma funo linear na forma
p = aT + b que melhor se ajuste aos pontos do conjunto de dados. Calcule os coecientes da
funo linear para qualquer nmero de pontos e a utilize em toda a massa de dados fornecida
no problema para determinar os coecientes da funo.
(c) Trace um grco da funo e estenda a reta (extrapole-a) at que ela cruze o eixo T horizontal.
Esse ponto uma estimativa da temperatura do zero absoluto. Determine o valor de T0 a
partir da funo.

0.1.1 Mnimos Quadrados

Dados o conjunto de dados (xi , f (xi )), i = 0, 1, 2, 3, ..., n com x [a, b]precisamos determinar uma
funo (x) f (x).
Denimos (x) = 1 g1 (x) + + n gn (x), onde gi uma funo contnua em [a, b] e 1 , . . . , n R.

A escolha da funo g pode ser feita


Por meio da observao do grco dos pontos de f .

A partir de informaes sobre o fenmeno ao qual f se relaciona.

O conceito fundamental na aproximao de f (x)por (x) o de melhor aproximao, ou seja, procura-


se uma funo (x)que minimiza o erro
|(xi ) f (xi )|, i = 0, 1, 2, 3, ..., n

n
No caso discreto procuramos minimizar a funo F = ((xi )f (xi )2 , e no caso contnuo, a funo
P
i=1
f (xi )2 dx.
Rb
F = a ((xi )

1
Programao de Computadores e Mtodos Numricos II
Curso: Engenharia Civil Turma: 6CVAN

Analizando o caso discreto temos que


n
(1 g1 (x) + + n gn (x) f (xi )2
P
F (1 , . . . , n ) =
i=1

Aplicando a condio F (1 ,...,n )


i = 0, i (1, . . . , n)para mnimo de funo temos que
n
F (1 ,...,n ) P
i =2 gj (xk )[1 g1 (xk ) + + n gn (xk ) f (xk )] = 0
k=1

n
P n
P
gj (xk )[1 g1 (xk ) + + n gn (xk )] = gj (xk )f (xk )
k=1 k=1

De onde resulta o seguinte sistema linear:


n

P



1 g1 (x k )g1 (x k ) + 2 g 1 (x k )g 2 (x k ) + . . . + n g1 (x k )gn (x k ) = g1 (xk )f (xk )
k=1
n


P
1 g2 (xk )g1 (xk ) + 2 g2 (xk )g2 (xk ) + . . . + n g2 (xk )gn (xk ) =
g2 (xk )f (xk )
k=1 ,
.. .. ... .. ..
. . . .




n


P
1 gn (xk )g1 (xk ) + 2 gn (xk )g2 (xk ) + . . . + n gn (xk )gn (xk ) = gn (xk )f (xk )


k=1

Que pode ser escrito por meio da seguinte equao matricial Ma = b



a11 a12 a1n1 a1n 1 b1
a21 a22 a2n1 a11 2 b2
. .. ... .. .. .. ..


.. . . . . = .



an11 an12 an1n1 an1n n1 bn1
an1 an2 ann1 ann n bn

n
Dessa forma se aij = gi (xk )gj (xk ) = aji ento a matriz dos coecientes deste sistema linear
P
k=1
n
simtrica e os termos independentes so os bi =
P
gj (xk )f (xk )
k=1

Uma expresso signicativa dos aij e dos bi em termos do produto escalar, ou seja, aij =< gi , gj >e
bi =< gi , fi >.
(
= 0, se i 6= j
nos permite armar que se as funes gi formarem uma base ortogonal para ento aij = .
6= 0 se i = j

Dessa forma a matriz M dos coecientes diagonal



a11 0 0 0 1 b1
0 a22 0 0 2 b2
.. .. ... .. .. .. ..

. . . . . = . ,



0 0 an1n1 0 n1 bn1
0 0 0 ann n bn

logo a soluo do sistema pode ser obtida diretamente por meio do clculo dos
n
P
gi (xk )f (xk )
bi k=1
ii = aii = n
gi (xk )2
P
k=1
Programao de Computadores e Mtodos Numricos II
Curso: Engenharia Civil Turma: 6CVAN

0.1.2 Algoritmo Mnimos Quadrados

1) Entrada de dados : v e t o r x , v e t o r f ( x ) , tamanho do v e t o r x , z


2) C a l c u l a os so ma t ri o de x , fx , x * f x e x * x
Sx < sum( x ) ;
Sfx < sum( f x ) ;
Sxfx < sum( x . * f x ) ;
Sxx < sum( x . ^ 2 ) ;
3) Determina os v a l o r e s dos c o e f i c i e n t e s da funo de r e g r e s s o
a < ( n * Sxfx Sx * Sfx ) / ( n * Sxx Sx ^ 2 ) ;
b < ( Sxx * Sfx Sxfx * Sx ) / ( n * Sxx Sx ^ 2 ) ;
5) A v a l i a o da funo
t0 = b/a
6) Saida G r f i c a
T = [ 300 1 0 0 ] ;
F = a *T+b ;
p l o t ( x , fx , ' * r ' , T, F , ' k ' ) ;
t i l t e ( ' Grafico ' )
x l a b e l ( ' Temperatura (C) ' , ' f o n t s i z e ' , 2 0 )
y l a b e l ( ' P r e s s a o ( atm ) ' , ' f o n t s i z e ' , 2 0 )
7) Sada de t e x t o

0.2 Mecnica dos udos


Placas de orifcio com bordas em canto so muito utilizadas na medio da vazo de uidos atravs de
tubulaes . A placa de orifcio a seguir tem os seguintes parmetros geomtricos:A, rea da seo reta do
orifcio; A1 , rea da seo reta da tubulao;A2 = C A, seo reta no ponto de maior contrao.

O coeciente C funo da razo A


A1 , e valores experimentais desse coeciente esto listados na tabela a
seguir:
A/A1 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00
C 0.62 0.63 0.64 0.66 0.68 0.71 0.76 0.81 0.89 1.00

a) Fazendo x = A/A1 , ajuste a funo C(x) pela funo: a0 + a1 x + a2 x2 aos pontos da tabela, usando o
mtodo dos mnimos quadrados.
b) Faa um grco dos valores fornecidos pelo polinmio e os valores dos pontos da tabela.

1 . d e f i n e os v e t o r e s x = A/A1 e f x = C
3 . c a l c u l e o tamanho de x : n = l e n g t h ( x ) e d e f i n e o grau da funo de aproximao m = 2
5 . d e f i n e um v e t o r das p o t n c i a s de x :
f o r i = 1 : 2 *m
Sx ( i ) = sum( x . ^ ( i ) ) ;
end
6 . a t r i b u i v a l o r e s p r i m e i r a l i n h a da matriz M e ao v e t o r coluna b
M( 1 , 1 ) = n ;
b ( 1 , 1 ) = sum( f x ) ;
f o r j = 2 :m+1
M( 1 , j ) = Sx ( j 1);
end
7 . c r i a as l i n h a s 2 a 5 da matriz M e do v e t o r coluna b
f o r i = 2 :m+1
f o r j = 1 :m+1
M( i , j ) = Sx ( j+i 2);
end
b ( i , 1 ) = sum( x . ^ ( i 1). * f x ) ;
end
8 . r e s o l v e o s i s t e m a Ma = b por meio da d i v i s o esquerda : a = (M\b ) '
9 . c r i a um novo v e t o r para os c o e f i c i e n t e s da funo de r e g r e s s o
f o r i = 1 :m+1
c o e f ( i ) = a (m+2 i )
end
1 0 . d e f i n e um v e t o r vazo : v = l i n s p a c e ( x ( 1 ) , x ( end ) , 1 0 0 ) e o v e t o r c : c = p o l y v a l ( c o e f , v ) ;
1 2 . p l o t a o g r f i c o de ( x , f ( x ) ) e ( v , c ( v ) ) , a c r e s e n t e nome aos e i x o s e t t u l o do g r f i c o
p l o t ( x , fx , ' * r ' , v , c , ' k ' , ' l i n e w i d t h ' , 2 )
Programao de Computadores e Mtodos Numricos II
Curso: Engenharia Civil Turma: 6CVAN

Linearizao de equaes no-lineares


0.3 Capacitncia
Um experimento com um circuito RC usado para determinar a capacitncia de um capacitor. No
circuito, gura abaixo, um resistor de 5 M conectado em srie com o capacitor C e uma bateria.

O experimento comea com o fechamento da chave e a medio da tenso vR nos terminais do


resistor em intervalos de 2 segundos, ao longo de 30 segundos. Os dados medidos no experimentos
so:
t(s) 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
vR (V ) 9, 7 8, 1 6, 6 5, 1 4, 4 3, 7 2, 8 2, 4 2, 0 1, 6 1, 4 1, 1 0, 85 0, 69 0, 6

Teoricamente, a tenso no resistor em funo do tempo dada pela funo exponencial:


vR = ve(t/RC )

Determine a capacitncia do capacitor ajustando a funo exponencial aos dados medidos.

0.3.1 Funes no-lineares

Funo de potncia: y = bxm

Funo exponencial: y = bemx ou y = b10mx

Funo inversa: y = 1
mx+b ou y = mx
x+b

0.3.2 Linearizando funes no-lineares

Vamos linearizar a funo y = bxm


y = bxm ln(y) = ln(bxm ) = mln(x) + ln(b)

Considerando ln(y) = Y ,m = a1 ,ln(x) = X e ln(b) = a0 obtemos a funo linear Y = a1 X + a0 .


Assim podemos aplicar uma regresso linear por mnimos quadrados para ajustar um conjunto de
pontos (xi , f (xi )). Com base nos valores de a1 e a0 em Y = a1 X + a0 , podemos calcular b e m em
y = bxm pois, b = ea0 e m = a1 .

Para outras funes no-lineares conra as transformaes possveis na tabela a seguir:


Equao Forma linear Y = a1 X + a0 Valores para regresso linear
y = bxm ln(y) = mln(x) + ln(b) Y = ln(y) ,X = ln(x), a1 = m,a0 = ln(b) ln(xi ) e ln(yi )
y = bemx ln(y) = mx + ln(b) Y = ln(y) ,X = x, a1 = m,a0 = ln(b) xi e ln(yi )
y = b10mx log(y) = mx + log(b) Y = log(y) ,X = x, a1 = m,a0 = log(b) xi e log(yi )
y= 1
mx+b
1
y
= mx + b Y = 1
y
,X = x, a1 = m,a0 = b xi e y1
i
y mx
= x+b 1
y
= b
mx
+m1
Y = 1
y
,X = x1 , a1 = b
,a
m 0
= 1
m
1
xi
e y1i
Programao de Computadores e Mtodos Numricos II
Curso: Engenharia Civil Turma: 6CVAN

Consideraes sobre a escolha da funo a ser linearizada apropriada para realizar o ajuste:
Quando possvel, vericar a equao matemtica que modela o fenmeno;

Plotar o grco do pontos conforme indicao da tabela a seguir;

Funes exponenciais: no podem passar pela origem e todos os valores de y so positivos ou


negativos;
Funes logartmicas: no podem incluir x = 0 ou valores negativos de x;

Funo de potncia: y = 0 quando x = 0;

Funo inversa: no pode incluir y = 0

Equacao Grcos onde os dados parecem se ajustar a uma reta


y = bxm loglog (x vs. y) ou linear (ln(x) vs. ln(y))
y = bemx semilog (x vs. y) ou linear (x vs. ln(y))
y = b10mx semilog (x vs. y) ou linear (x vs. ln(y))
y= 1
mx+b
linear (x vs. y1 )
y mx
= x+b linear ( x1 vs. 1
y
)

1. Para os dados do problema inicial a funo exponencial adequada. Construa um programa que
plote os grcos semi-log (x vs. y) ou linear (x vs. ln(y)) por meio dos comandos abaixo e analise
os resultados:
1) Entrada de dados : t = 2 : 2 : 3 0 ; v = [ 9 . 7 , 8 . 1 , 6 . 6 , 5 . 1 , 4 . 4 , 3 . 7 , 2 . 8 , 2 . 4 ,
2.0 , 1.6 , 1.4 , 1.1 , 0.85 , 0.69 , 0 . 6 ] ;
2) C a l c u l a l n ( y ) : v l o g = l o g ( v ) ;
3) Divide a a p r e s e n t a o dos g r f i c o s l a d o a l a d o e prepara g r a f i c o 1 : s u b p l o t ( 1 , 2 , 1 ) ;
4) Plota g r a f i c o semi l o g ( x vs . y ) : s e m i l o g y ( t , v , ' or ' )
5) Divide a a p r e s e n t a o dos g r f i c o s l a d o a l a d o e prepara g r a f i c o 2 : s u b p l o t ( 1 , 2 , 2 ) ;
6) Plota g r a f i c o l i n e a r ( x vs . l n ( y ) ) : p l o t ( t , vlog , ' ob ' )

2. Repita o mesmo procedimento para as outras funes lineares adequando o grco conforme a
ltima coluna da tabela acima.

0.3.3 Resolvendo o problema de capacitncia.

Conforme esperado, uma funo exponencial se ajusta bem aos dados. Para resolver o problema
inicial, primeiramente determinamos as constantes b e m na funo exponencial v = bem . Isso
feito com a linearizao dessa equao e com o uso da regresso linear por mnimos quadrados. A
regresso linear por mnimos quadrados foi desenvolvida na Prtica 2. As entradas da funo so
os valores (ti , ln(vR )i ) . Obtidos b e m , o valor de C determinado igualando-se os coecientes no
expoente de e em vR = ve(t/RC ) :
1 1
RC = m C = Rm

Construa um programa que resolva o problema de capacitncia. Utilize o algoritmo abaixo.


Programao de Computadores e Mtodos Numricos II
Curso: Engenharia Civil Turma: 6CVAN

0.3.4 Programa ajuste com linearizao de funo no-linear

Algoritmo
1) Entrada de dados :
texp = 2 : 2 : 3 0 ;
vexp = [ 9 . 7 , 8 . 1 , 6 . 6 , 5 . 1 , 4 . 4 , 3 . 7 , 2 . 8 , 2 . 4 , 2 . 0 , 1 . 6 , 1 . 4 , 1 . 1 , 0 . 8 5 , 0 . 6 9 , 0 . 6 ] ;
R = 5 e6
2) C a l c u l e l n ( y i ) para uso na r e g r e s s o l i n e a r : lnvexp = l o g ( vexp ) ;
3) C a l c u l e os c o e f i c i e n t e s a0 e a1 por meio o mtodo dos mnimos quadrados . U t i l i z a r a funo r e g _ l i n .m aba
No programa p r i n c i p a l chame a funo por meio da d i r e t r i z : [ a1 , a0 ] = r e g _ l i n ( texp , lnvexp )
4) C a l c u l e b a a p a r t i r de l n ( b ) = a0 : b = exp ( a0 )
5) C a l c u l e C u t i l i z a n d o ( 1/Rm) , onde m = a1 : C = ( 1)/(R* a1 )
6) Gere um domnio l i n e a r i z a d o : t = 0 : 0 . 5 : 3 0 ;
7) Gere uma imagem l i e n a r i z a d a : v = b * exp ( a1 * t ) ;
8) Escreve os r e s u l t a d o s de a1 , a0 , b e C num a r q u i v o de s a d a .
9) P l o t e g r a f i c o dos pontos e da funo de r e g r e s s o : p l o t ( t , v , texp , vexp , ' r * ' )

Implementao da funo denida pelo usurio reg_lin.m


function [ a , b ] = reg_lin (x , fx )
% funo r e g r e s s o l i n e a r c a l c u l a os c o e f c i e n t e s a e b da equao l i n e a r
% y = a * x + b que melhor a j u s t a os n pontos do conjutno de dados ( x , f x )
%S a l v a r e s t a funo como r e g _ l i n .m no mesmo d i r e t r i o do programa p r i n c i p a l
nx = l e n g t h ( x ) ;
nfx = l e n g t h ( f x ) ;
i f nx ~= nfx
d i s p ( 'O nmero de e le me n to s de x deve s e r i g u a l ao numero de elemtnos de f x . ' )
else
Sx = sum( x ) ;
Sfx = sum( f x ) ;
Sxfx = sum( x . * f x ) ;
Sxx = sum( x . ^ 2 ) ;

a = ( nx * Sxfx Sx * Sfx ) / ( nx * Sxx Sx ^ 2 ) ;


b = ( Sxx * Sfx Sxfx * Sx ) / ( nx * Sxx Sx ^ 2 ) ;
end

Valor esperado para C = 1 .9968e 06

0.3.5 Resistncia dos materiais

A resistncia compresso do concreto, , decresce com o aumento da razo gua/cimento, c ,


(em gales de gua por saco de cimento). A resistncia compresso de trs amostras de cilindros
para vrias razes c so mostradas no grco a seguir:

e, cujos valores esto na tabela:



c 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0
7000 6125 5237 4665 4123 3810 3107 3070 2580 2287

a) Usando o mtodo dos mnimos quadrados, ajuste , aos dados, utilizando uma funo do tipo:
k1 ek2 c .

b) Compare os valores da curva obtida no item a) com os do grco, para vericar (por inspeo),
se a curva obtida para uma boa aproximao.

You might also like