Programação de Computadores e Métodos Numéricos II

Curso: Engenharia Civil Turma: 6CVAN

Roteiro de Práticas 03
Ajuste de curvas
0.1 Zero absoluto
De acordo com a lei de Charles para um gás ideal em um volume constante, existe uma relação
linear entre a pressão p e a temperatura T. No experimento mostrado na gura, um volume xo
de gás em um recipiente lacrado é submergido em água gelada (T = 0◦ C). A temperatura do gás é
então elevada em incrementos de dez até alcançar T = 100◦ C, o que é feito aquecendo-se a água, e
a pressão do gás é medida em cada temperatura. Os dados obtidos no experimento são:
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 gráco 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 regressão linear por mínimos quadrados para determinar uma função linear na forma
p = aT + b que melhor se ajuste aos pontos do conjunto de dados. Calcule os coecientes da
função linear para qualquer número de pontos e a utilize em toda a massa de dados fornecida
no problema para determinar os coecientes da função.
(c) Trace um gráco da função 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 função.

0.1.1 Mínimos Quadrados

Dados o conjunto de dados (xi , f (xi )), i = 0, 1, 2, 3, ..., n com x ∈ [a, b]precisamos determinar uma
função ϕ(x) ≈ f (x).
Denimos ϕ(x) = α1 g1 (x) + · · · + αn gn (x), onde gi é uma função contínua em [a, b] e α1 , . . . , αn ∈ R.

A escolha da função g pode ser feita
ˆ Por meio da observação do gráco dos pontos de f .

ˆ A partir de informações sobre o fenômeno ao qual f se relaciona.

O conceito fundamental na aproximação de f (x)por ϕ(x)é o de melhor aproximação, ou seja, procura-
se uma função ϕ(x)que minimiza o erro
|ϕ(xi ) − f (xi )|, i = 0, 1, 2, 3, ..., n

n
No caso discreto procuramos minimizar a função F = (ϕ(xi )−f (xi )2 , e no caso contínuo, a função
P
i=1
− f (xi )2 dx.
Rb
F = a (ϕ(xi )

1

. .... . . .. . se i 6= j nos permite armar que se as funções gi formarem uma base ortogonal para ϕ então aij = . n)para mínimo de função temos que n ∂F (α1 . . . .. . . . . .  .. . . . ..  . . ou seja. .  . . . ∀i ∈ (1.   .  .. .αn ) ∂αi = 0. Programação de Computadores e Métodos Numéricos 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 . ḡj >e bi =< g¯i .. . . . + αn g2 (xk )gn (xk ) =  g2 (xk )f (xk ) k=1 .       ... aij =< g¯i .. .. + α 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 ) + .. . .          0 0 ··· an−1n−1 0  αn−1   bn−1  0 0 ··· 0 ann αn bn logo a solução do sistema pode ser obtida diretamente por meio do cálculo dos n P gi (xk )f (xk ) bi k=1 αii = aii = n gi (xk )2 P k=1 .   .. = .        . . . 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   ..α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    P α1 gn (xk )g1 (xk ) + α2 gn (xk )g2 (xk ) + .         an−11 an−12 ··· an−1n−1 an−1n  αn−1   bn−1  an1 an2 ··· ann−1 ann αn bn n Dessa forma se aij = gi (xk )gj (xk ) = aji então a matriz dos coecientes deste sistema linear é P k=1 n simétrica e os termos independentes são os bi = P gj (xk )f (xk ) k=1 Uma expressão signicativa dos aij e dos bi em termos do produto escalar. f¯i >. . .. ( = 0. = .. + αn gn (xk )gn (xk ) = gn (xk )f (xk )   k=1 Que pode ser escrito por meio da seguinte equação matricial Ma = b      a11 a12 ··· a1n−1 a1n α1 b1  a21 a22 ··· a2n−1 a11  α2   b2  . . . . .... αn ) = i=1 Aplicando a condição ∂F (α1 .....

^ ( i ) ) .63 0. usando o método dos mínimos quadrados. 1 ) = n .62 0. 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 . F = a *T+b . 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 função 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 . área da seção reta do orifício. ^ ( i − 1). fx .20 0. 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 . 1 ) = sum( f x ) . ' * r ' . A placa de orifício a seguir tem os seguintes parâmetros geométricos:A.30 0. b ( 1 . b) Faça um gráco dos valores fornecidos pelo polinômio e os valores dos pontos da tabela.1.60 0. ' f o n t s i z e ' . 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 . Programação de Computadores e Métodos Numéricos II Curso: Engenharia Civil Turma: 6CVAN 0. O coeciente C é função da razão A A1 . ' * r ' .70 0. ' k ' .71 0. 1 2 .A2 = C ∗ A.2 Mecânica dos uídos Placas de orifício com bordas em canto são muito utilizadas na medição da vazão de uidos através de tubulações . f o r j = 2 :m+1 M( 1 . área da seção reta da tubulação. Sxx <−− sum( x .00 C 0. f ( x ) ) e ( v . end b ( i . t i l t e ( ' Grafico ' ) x l a b e l ( ' Temperatura (C) ' . 2 0 ) y l a b e l ( ' P r e s s a o ( atm ) ' . ' f o n t s i z e ' . 5) A v a l i a ç ã o da função t0 = −b/a 6) Saida G r á f i c a T = [ − 300 1 0 0 ] . p l o t a o g r á f i c o de ( x . fx . 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 . end 8 . ' l i n e w i d t h ' .2 Algoritmo Mínimos Quadrados 1) Entrada de dados : v e t o r x . z 2) C a l c u l a os so ma tó ri o de x .10 0. fx . 1 0 0 ) e o v e t o r c : c = p o l y v a l ( c o e f . j ) = Sx ( j+i − 2). p l o t ( x . 3) Determina os v a l o r e s dos c o e f i c i e n t e s da função de r e g r e s s ã o a <−− ( n * Sxfx − Sx * Sfx ) / ( n * Sxx − Sx ^ 2 ) . A1 .81 0. d e f i n e um v e t o r vazão : v = l i n s p a c e ( x ( 1 ) . 2 ) . v . tamanho do v e t o r x . 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 função de aproximação m = 2 5 . end 6 . 2 0 ) 7) Saída de t e x t o 0. c ( v ) ) . v e t o r f ( x ) . b <−− ( Sxx * Sfx − Sxfx * Sx ) / ( n * Sxx − Sx ^ 2 ) . seção reta no ponto de maior contração. F .66 0. ajuste a função C(x) pela função: a0 + a1 x + a2 x2 aos pontos da tabela.40 0. ' k ' ) . end 7 . x * f x e x * x Sx <−− sum( x ) . j ) = Sx ( j − 1).76 0.80 0. * f x ) . 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 .89 1. v ) . 1 ) = sum( x .64 0. c .90 1. d e f i n e os v e t o r e s x = A/A1 e f x = C 3 . 1 . ^ 2 ) . T. x ( end ) . Sxfx <−− sum( x . e valores experimentais desse coeciente estão listados na tabela a seguir: A/A1 0. Sfx <−− sum( f x ) .68 0.50 0. * f x ) .00 a) Fazendo x = A/A1 .

O experimento começa com o fechamento da chave e a medição da tensão vR nos terminais do resistor em intervalos de 2 segundos.3. 6 1. Assim podemos aplicar uma regressão linear por mínimos quadrados para ajustar um conjunto de pontos (xi . 7 8.X = x1 .X = x. a1 = m. gura abaixo. Com base nos valores de a1 e a0 em Y = a1 X + a0 . a1 = m.2 Linearizando funções não-lineares Vamos linearizar a função y = bxm y = bxm −→ ln(y) = ln(bxm ) = mln(x) + ln(b) Considerando ln(y) = Y .1 Funções não-lineares Função de potência: y = bxm Função exponencial: y = bemx ou y = b10mx Função inversa: y = 1 mx+b ou y = mx x+b 0. Os dados medidos no experimentos são: t(s) 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 vR (V ) 9.X = ln(x). ao longo de 30 segundos. 4 3.3. um resistor de 5 MΩ é conectado em série com o capacitor C e uma bateria.X = x.a0 = b xi e y1 i y mx = x+b 1 y = b mx +m1 Y = 1 y . 8 2. 85 0. a tensão no resistor em função do tempo é dada pela função exponencial: vR = ve(−t/RC ) Determine a capacitância do capacitor ajustando a função exponencial aos dados medidos. 6 Teoricamente.a m 0 = 1 m 1 xi e y1i . 0.ln(x) = X e ln(b) = a0 obtemos a função linear Y = a1 X + a0 . a1 = b .X = x. 6 5.m = a1 . 4 2. 1 6. 4 1. Para outras funções não-lineares conra as transformações possíveis na tabela a seguir: Equação Forma linear Y = a1 X + a0 Valores para regressão linear y = bxm ln(y) = mln(x) + ln(b) Y = ln(y) .a0 = ln(b) ln(xi ) e ln(yi ) y = bemx ln(y) = mx + ln(b) Y = ln(y) . podemos calcular b e m em y = bxm pois.a0 = log(b) xi e log(yi ) y= 1 mx+b 1 y = mx + b Y = 1 y . 7 2. a1 = m. 1 4.3 Capacitância Um experimento com um circuito RC é usado para determinar a capacitância de um capacitor. 69 0. 1 0. f (xi )).a0 = ln(b) xi e ln(yi ) y = b10mx log(y) = mx + log(b) Y = log(y) . Programação de Computadores e Métodos Numéricos II Curso: Engenharia Civil Turma: 6CVAN Linearização de equações não-lineares 0. b = ea0 e m = a1 . No circuito. a1 = m. 0 1.

3 Resolvendo o problema de capacitância. Obtidos b e m . 6 ] . 1. 3 .85 . 4 . ln(y)) y = bemx semilog (x vs. 2 . ' ob ' ) 2. 8 .69 . 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 capacitância. Repita o mesmo procedimento para as outras funções lineares adequando o gráco conforme a última coluna da tabela acima. Utilize o algoritmo abaixo. primeiramente determinamos as constantes b e m na função exponencial v = bem . l n ( y ) ) : p l o t ( t . 2 . vericar a equação matemática que modela o fenômeno. 1 ) . ln(y)) por meio dos comandos abaixo e analise os resultados: 1) Entrada de dados : t = 2 : 2 : 3 0 .0 . 4 . 0. ' 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) C a l c u l a l n ( y ) : v l o g = l o g ( v ) . 2 ) . 5 . v . 8 . ˆ Funções logarítmicas: não podem incluir x = 0 ou valores negativos de x. y1 ) y mx = x+b linear ( x1 vs. Para resolver o problema inicial. 0.1 . y) ou linear (x vs. y) ou linear (x vs. y ) : s e m i l o g y ( t .3. 0 . v = [ 9 . y) ou linear (x vs. 6 . 1 . A regressão linear por mínimos quadrados foi desenvolvida na Prática 2. As entradas da função são os valores (ti . 1 y ) 1. 7 . 0. ln(vR )i ) . Isso é feito com a linearização dessa equação e com o uso da regressão linear por mínimos quadrados. 2 . y) ou linear (ln(x) vs. uma função exponencial se ajusta bem aos dados. ln(y)) y = b10mx semilog (x vs. 1. 6 . 7 . ln(y)) y= 1 mx+b linear (x vs. ˆ Função inversa: não pode incluir y = 0 Equação Grácos onde os dados parecem se ajustar a uma reta y = bxm loglog (x vs. 1. 4 . ˆ Funções exponenciais: não podem passar pela origem e todos os valores de y são positivos ou negativos. 2. 1 . 6) Plota g r a f i c o l i n e a r ( x vs .6 . 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 . ˆ Plotar o gráco do pontos conforme indicação da tabela a seguir. Para os dados do problema inicial a função exponencial é adequada. Construa um programa que plote os grácos semi-log (x vs. vlog . 4) Plota g r a f i c o semi − l o g ( x vs . Conforme esperado. ˆ Função de potência: y = 0 quando x = 0. Programação de Computadores e Métodos Numéricos II Curso: Engenharia Civil Turma: 6CVAN Considerações sobre a escolha da função a ser linearizada apropriada para realizar o ajuste: ˆ Quando possível. 2 .4 .

(em galões de água por saco de cimento). σ . a = ( nx * Sxfx − Sx * Sfx ) / ( nx * Sxx − Sx ^ 2 ) . a0 .0 6.m function [ a . 5 : 3 0 . ωc . 1 . Sxx = sum( x . * f x ) . fx ) % função 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 equação 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 . 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) . 8 . Sfx = sum( f x ) .0 5. A resistência à compressão de três amostras de cilindros para várias razões ωc são mostradas no gráco a seguir: e. 6 ] . b) Compare os valores da curva obtida no item a) com os do gráco. decresce com o aumento da razão água/cimento. 7 . 4 .5 5. se a curva obtida para σ é uma boa aproximação.5 Resistência dos materiais A resistência à compressão do concreto. 1 . vexp = [ 9 . onde m = a1 : C = ( − 1)/(R* a1 ) 6) Gere um domínio l i n e a r i z a d o : t = 0 : 0 . 4 .3.m aba No programa p r i n c i p a l chame a função por meio da d i r e t r i z : [ a1 . 7 . 2 . para vericar (por inspeção).5 6. 6 . aos dados.0 8. ajuste σ . 7) Gere uma imagem l i e n a r i z a d a : v = b * exp ( a1 * t ) .9968e −06 0. 6 . 1 . . Programação de Computadores e Métodos Numéricos II Curso: Engenharia Civil Turma: 6CVAN 0. 6 . 3 .0 7.0 σ 7000 6125 5237 4665 4123 3810 3107 3070 2580 2287 a) Usandoω o método dos mínimos quadrados. 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 método dos mínimos quadrados .5 8. 1 . v . 2 . 4 . f x ) %S a l v a r e s t a função como r e g _ l i n . b = ( Sxx * Sfx − Sxfx * Sx ) / ( nx * Sxx − Sx ^ 2 ) . 4 .4 Programa ajuste com linearização de função não-linear Algoritmo 1) Entrada de dados : texp = 2 : 2 : 3 0 . 8) Escreve os r e s u l t a d o s de a1 . 0 . b ] = reg_lin (x . 0 . 5 . 0 . 1 . 6 9 .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 ) . ' r * ' ) Implementação da função denida pelo usuário reg_lin. 1 . cujos valores estão na tabela: ω c 4. utilizando uma função do tipo: k1 e−k2 c . texp . U t i l i z a r a função r e g _ l i n . 0 . end Valor esperado para C = 1 . nfx = l e n g t h ( f x ) . i f nx ~= nfx d i s p ( 'O número 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 .5 7. ^ 2 ) .5 9. 2 . 9) P l o t e g r a f i c o dos pontos e da função de r e g r e s s ã o : p l o t ( t .3. 8 . vexp . Sxfx = sum( x . a0 ] = r e g _ l i n ( texp . 8 5 . b e C num a r q u i v o de s a í d a . ' ) else Sx = sum( x ) . 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 ) .