• Sonuç bulunamadı

Çelik lifli SertleĢmiĢ Betonun Özellikleri

BÖLÜM III LĠTERATÜR TARAMASI

3.2. Çelik lifli SertleĢmiĢ Betonun Özellikleri

Embora tenhamos estudado diversas estruturas, todas elas possuem a mesma sintaxe, que nem sempre fica vis´ıvel ao usu´ario. Toda express˜ao no Mathema- tica ´e da forma

Nome[ arg1 , arg2 , ... ]

onde Nome ´e o nome de uma fun¸c˜ao e arg1, arg2, ..., s˜ao os seus argumentos. Esta estrutura pode ser visualizada com o comando

5.13 Estrutura das express˜oes 111

FullForm[ estrutura ]

Exemplo 5.18 Vamos observar a estrutura de uma lista, de uma soma e um produto Comande: Clear[ a, b, c, f ] Comande: FullForm[ { a, b, c } ] Resposta: List[ a , b , c ] Comande: FullForm[ a + b + c ] Resposta: Plus[ a , b , c ] Comande: FullForm[ a * b * c ] Resposta: Times[ a , b , c ] Comande: FullForm[ f[ a , b , c ] ] Resposta: f[ a , b , c ]

Retornando aos comandos Apply e Map, percebemos que o primeiro troca o nome da estrutura por f enquanto o segundo aplica f a cada argumento da estrutura. Podemos redefinir estes comandos escrevendo

Apply[ f , Nome[ a , b , c ] ] = f[ a , b , c ]

Map[ f , Nome[ a , b , c ] ] = Nome[ f[ a ] , f[ b ] , f[ c ] ]

Exemplo 5.19 Observe os resultados. Limpe os valores de a e b e Comande: Apply[ Plus , { a , b } ]

Resposta: a + b

Comande: Apply[ Times , a + b ] Resposta: a b

Exemplo 5.20 Vamos calcular a m´edia aritm´etica e geom´etrica da lista = { 1, 2, 3, 4, 5, 6 }

Comande: lista = { 1, 2, 3, 4, 5, 6 } ;

Comande: arit = Apply[ Plus, lista ] / Length[ lista ] Resposta: 7 / 2

Comande: geo = Apply[ Times, lista ]ˆ( 1 / Length[ lista ] ) //N Resposta: 2.9938

Como desafio, solicitamos ao leitor que generalize este exemplo, definindo uma fun¸c˜ao que calcule a m´edia aritm´etica e outra que calcule a m´edia geom´etrica de uma lista qualquer.

5.14

Fun¸c˜ao anˆonima

Quando necessitamos usar uma fun¸c˜ao diversas vezes, n´os a definimos atribuin- do-lhe um nome. Com este procedimento, poderemos cham´a-la sempre que for necess´ario. Em determinadas ocasi˜oes, precisamos da fun¸c˜ao uma ´unica vez. Eventualmente, este ´e o caso quando usamos as fun¸c˜oes Array, Apply, Fold, Map, Nest, FixedPoint, Outer, Inner. Quando tal fato ocorrer, ´e vantajoso usar uma fun¸c˜ao anˆonima. Para aplicar uma fun¸c˜ao anˆonima nos valores val1, val2, ..., use

Function[ { x1 , x2 , ... } , express˜ao ] [ val1 , val2 , ... ]

onde x1, x2, ..., s˜ao os argumentos da fun¸c˜ao anˆonima que aparecem na express˜ao. A Function substitui as ocorrˆencias de x1, x2, ..., por val1, val2, ... e calcula a express˜ao resultante. Se a fun¸c˜ao possuir uma ´unica vari´avel, pode-se omitir as chaves que envolveriam esta vari´avel. Pode-se tamb´em usar a sintaxe

5.14 Fun¸c˜ao anˆonima 113 Os parˆenteses s˜ao dispens´aveis devido a baixa prioridade do &. Todavia, iremos inclui-lo quando houver d´uvida quanto `a prioridade dos operadores envolvidos. Com esta ´ultima forma de apresenta¸c˜ao de uma fun¸c˜ao anˆonima, os argumentos devem ser denotadas pelos s´ımbolos abaixo

# representa a primeira vari´avel #n representa a n-´esima vari´avel ## representa todas as vari´aveis ##n representa todas as vari´aveis,

a partir da n-´esima

Exemplo 5.21 Observem os resultados obtidos com os comandos deste exem- plo.

Comande: Clear[ a , b ]

Comande: a[ # ] + b[ # ] & [ xˆ2 ] Resposta: a[ x2 ] + b[ x2 ]

Comande: Function[ a , 2 * a + Cos[ a ] ] [ Exp[ x ] ] Resposta: 2 Ex + Cos[ Ex ]

Comande: lis1 = { { a, b }, { x, y } } Resposta: {{a,b},{x,y}}

Comande: lis2 = Map[ { #[[2]], #[[1]] }&, lis1 ] Resposta: {{b,a},{y,x}}

Exemplo 5.22 Vamos eliminar os termos que contˆem x e selecionar os ter- mos contendo xˆ2 no polinˆomio

Queremos alertar o leitor de que existem comandos que efetuam estas tarefas de modo direto e que foram descritos no cap´ıtulo que trata da ´Algebra. Comande: x + y + xˆ2 + yˆ2 + x*y + x*yˆ2 + xˆ2*y

Resposta: x + x2+ y + x y + x2y + y2 + x y2

Comande: poli = Collect[ % , x ]

Resposta: y + y2 + x2(1 + y) + x (1 + y + y2)

Comande: Select[ poli , FreeQ[ # , x ] & ] Resposta: y + y2

Comande: Select[ poli , MatchQ[ # , xˆ2 ] & ] Resposta: x2(1 + y)

Observamos que xˆ2 (observe a sublinha) ´e um pattern (padr˜ao). O co- mando est´a pedindo que sejam selecionados todos os termos do polinˆomio que contˆem o padr˜ao xˆ2 .

5.15

Comando de repeti¸c˜ao Do

Vimos diversos comandos que executam tarefas repetidas, que se repetem `a medida que v˜ao modificando um parˆametro. Um comando repetitivo bastante importante ´e o

Do[ com1 ; com2 ; .... , { i , imin , imax , di } ]

Ele executa os comandos com1, com2, ..., nesta seq¨uˆencia, enquanto o parˆa- metro i recebe sucessivamente os valores

imin, imin + di, imin + 2 di, imin + 3 di, ..., imin + k di sendo k o maior inteiro para o qual imin + k di ≤ imax.

A lista que fornece a varia¸c˜ao do parˆametro i pode receber uma das formas simplificadas

5.16 Interpola¸c˜ao 115 cujos significados explicamos anteriormente.

Podemos emitir o Do com dois ou mais parˆametros.

Do[ com1; com2; .... , { i, imin, imax, di }, { j, jmin, jmax, dj } ]

Exemplo 5.23 Vamos calcular os polinˆomios de Legendre correspondentes a n=1, n=2, n=3, definidos pela f´ormula de Rodrigues

Pn(x) = 1 n!2n dn dxn [(x 2 − 1)n] , n = 0, 1, 2, . . . Comande: plegendre[ n , x ] := D[ ( xˆ2 – 1 )ˆn , {x , n} ] / ( n! 2ˆn) Comande: Do[ Print[ Simplify[ plegendre[ n, x ] ] ] , { n, 1, 3 } ] Resposta: 2x −1 + 3x 2 2 x(−3 + 5x2) 2

5.16

Interpola¸c˜ao

Consideremos a lista dados = { { x1, y1 } , { x2, y2 } , ..., { xn, yn } } A fun¸c˜ao InterpolatingPolynomial[ dados , x ]

gera um polinˆomio do grau n-1, y = P (x), que interpola os dados, isto ´e, yk = P[ xk ], k=1, 2, ..., n. A fun¸c˜ao

gera uma InterpolatingFunction que pode interpolar os valores dos dados no intervalo [xmin, xmax ], onde xmin = min{ x1, x2, ..., xn } e xmax = max{ x1, x2, ..., xn }

Exemplo 5.24 Vamos trabalhar com estas fun¸c˜oes.

Comande: dados = { { 1 , 1}, { 2 , 2 } , { 4 , 4 } , { 6 , 6 } , { 7 , 1 } , { 8 , 8 } }

Resposta: { { 1 , 1 }, { 2 , 2 } , { 4 , 4 } , { 6 , 6 } , { 7 , 1 } , { 8 , 8 } } Comande: poli[ x ] = Expand[

InterpolatingPolynomial[ dados, x ] ] Resposta: −(1285 ) + 799 15x − 36 x 2+32 3 x 3 − 75x4+ 1 15x 5

Comande: interpol = Interpolation[ dados ] Resposta: InterpolatingFunction[ { 1 , 8 } , < > ] Comande: poli[ 5 ] //N

Resposta: 7.4

Comande: interpol[ 5 ] //N Resposta: 6.2

Observe que as interpola¸c˜oes geradas s˜ao diferentes. O InterpolatingFunc- tion gera uma interpola¸c˜ao local. Em cada intervalo ele gera um poli- nˆomio interpolador (esta fun¸c˜ao gera um ”spline”). O Interpolating- Polynomial gera um ´unico polinˆonio que interpola os dados em todo o intervalo que vai desde o menor at´e o maior valor de x. Para patentear esta observa¸c˜ao,

Comande: Plot[ poli[ x ] , { x , 1, 8 } ,

PlotRange − > { { 0 , 10 } , { 0 , 10 } } ,

Ticks − > { { 1 , 2 , 4 , 6 , 8 , 10 } , { 2 , 4 , 6 , 8 , 10 } } ]

5.16 Interpola¸c˜ao 117 Resposta: 1 2 4 6 8 10 2 4 6 8 10 12

Comande: Plot[ interpol[x] , { x , 1 , 8 } ,

PlotRange − > { { 0 , 12 } , { 0 , 12 } } , Ticks − > { { 1 , 2 , 4 , 6 , 8 , 10 } , { 2 , 4 , 6 , 8 , 10 , 12 } } ] 1 2 4 6 8 10 2 4 6 8 10 12

Cap´ıtulo 6

Equa¸c˜oes

Este cap´ıtulo se destina ao estudo da solu¸c˜ao de equa¸c˜oes alg´ebricas.

6.1

Teste de igualdade

No Mathematica existe uma diferen¸ca entre os sinais

= e = =

Quando escrevemos

x = y

estamos atribuindo `a vari´avel x o valor y. Exemplo 6.1 Siga as orienta¸c˜oes

Comande: var = 2 y + 3 Resposta: var = 3 + 2 y

Observe que a resposta foi uma repeti¸c˜ao do comando emitido. Apenas se atribuiu o valor 2y+3 `a vari´avel var.

x = = y

estamos solicitando que o Mathematica verifique se x ´e ou n˜ao igual a y. Se forem iguais, o resultado da verifica¸c˜ao ser´a True (verdadeiro). Se n˜ao forem iguais, o resultado ser´a False (falso).

Exemplo 6.2 Desenvolva o exemplo Comande: 2 + 3 = = 5 Resposta: True Comande: 2 + 3 = = 6 Resposta: False Comande: x = = 3 Resposta: x = = 3

Como n˜ao atribu´ımos valor a x, a equa¸c˜ao pode ser ou n˜ao verdadeira. Neste caso, o Mathematica devolve o comando digitado.

Comande: x = 3 Resposta: 3

Observe que a resposta repetiu o valor de x. Comande: x = = 3

Resposta: True

Como agora x = 3, a equa¸c˜ao x = = 3 ´e verdadeira.

Para evitar que o x continue valendo 3 durante toda a sess˜ao do Mathematica, limpe este valor.

Comande: Clear[ x ] Comande: x

Resposta: x

6.2 Equa¸c˜oes alg´ebricas 121

6.2

Equa¸c˜oes alg´ebricas

Uma equa¸c˜ao alg´ebrica deve ser colocada na forma

lado esquerdo = = lado direito

onde o sinal de = usado na linguagem comum ´e substitu´ıda por um duplo sinal de igualdade (= =). Usamos um ´unico sinal de igualdade = para atribuir valor a uma vari´avel ou definir uma fun¸c˜ao.

Exemplo 6.3 No Mathematica, as equa¸c˜oes x2 + 1 = 0 e ex = 1 + x s˜ao

escritas na forma xˆ2 + 1 = = 0 Exp[ x ] = = 1 + x

Quando se tem uma equa¸c˜ao como as deste exemplo, o que se deseja ´e determinar que valores de x tornam a igualdade verdadeira. A busca destes valores se restringe a algum conjunto que, em geral, s˜ao os conjuntos dos n´umeros reais ou complexos. Tais valores s˜ao chamados de solu¸c˜oes da equa¸c˜ao. A primeira equa¸c˜ao tem duas solu¸c˜oes complexas x = i = √−1 e x = −i = −√−1. No conjunto dos n´umeros reais, a segunda tem uma ´unica solu¸c˜ao x = 0.

6.3

Inequa¸c˜ao

Uma inequa¸c˜ao ´e uma express˜ao do tipo

lado esquerdo .op. lado direito

onde .op. ´e um dos operadores relacionais

! = > <

Exemplo 6.4 S˜ao inequa¸c˜oes xˆ2 + yˆ2 < 1

x + y > 2

Resolver uma inequa¸c˜ao consiste em determinar os valores das vari´aveis que tornam a rela¸c˜ao que tornam a inequa¸c˜ao verdadeira. A busca destes valores se restringe a algum conjunto. Os valores que tornam a inequa¸c˜ao verdadeira s˜ao chamados de solu¸c˜oes da inequa¸c˜ao.

Benzer Belgeler