• Nenhum resultado encontrado

Iteração e Pontos Fixos

N/A
N/A
Protected

Academic year: 2021

Share "Iteração e Pontos Fixos"

Copied!
7
0
0

Texto

(1)

Iteração é um dos pontos chave da programação numérica. Iterar consiste em repetir uma mesma operação diversas vezes levando a uma aproximação cada vez melhor da solução exata.

Vamos começar escolhendo um número qualquer. Insira o número no MATLAB digitando:

x = seu_numero

Essa é a forma de atribuir um valor a uma variável no MATLAB. O número escolhido é armazenado na variável x para ser utilizada depois. Se você, por exemplo, começar com:

x = 3

O MATLAB respode com: x =

3

Podemos agora entrar com o comando: x = sqrt(x + 1)

No MATLAB, sqrt é o nome da função raiz quadrada (square root). A quantidade à direita do igual é calculada e o resultado é armazenado na variável x, sobrescrevendo o valor anterior.

No teclado do seu computador, provavelmente, contém um con-junto de quatro teclas em formato de seta. A tecla seta para cima permite chamar novamente o comando anterior.

Use a tecla seta para cima, seguida da tecla enter para executar repetidas vezes o seguinte comando:

x = sqrt(x + 1)

(2)

x = 3 x = 2 x = 1.7321 x = 1.6529 x = 1.6288 x = 1.6213 x = 1.6191 x = 1.6184 x = 1.6181 x = 1.6181 x = 1.6180 x = 1.6180

Após 10 passos, o valor permanece constante em 1, 6180. Tente fazer o mesmo para outros valores iniciais, você obterá o mesmo resultado.

O MATLAB realiza suas computações utilizando cerca de 16 casas decimais, mas mostra apenas cinco casas. Para ver mais casas deci-mais, é necessário utilizar o comando:

format long

O número que você encontrou é um dos número mais famosos da matemática, φ, a Razão Áurea.

Em MATLAB, o sinal de igual é um operador de atribuição. Ele indica: compute o valor à direita e armazene na variável à esquerda, então a atribuição

x = sqrt(x + 1)

usa o valor atual de x para computar sqrt(x+1)e armazena o

novo resultado em x. Na matemática, o sinal de igual tem um signifi-cado diferente. A expressão

x =√1+x

é uma equação. Uma locução para essa equação é conhecida como

ponto fixo2. 2A expressão ponto fixo apresenta

sig-nificados diferentes em diversas áreas. Na área de computação numérica, se utiliza quando o número de casas deci-mais após a virgua é fixo, em oposição ao ponto flutuante (float)

A função f(x) =√1+x tem apenas um ponto fixo e a forma mais simples de encontrá-lo é resolvendo a equação quadrática. A raiz positiva da equação quadrática é dada por:

(3)

φ= 1+

5 2

Podemos computar o valor de φ no MATLAB com o comando: phi = (1 + sqrt(5))/2

Que gera, como resultado: phi =

1.618033988749895

Outra forma de entender o ponto fixo é entender que é o ponto de interseção entre os gráficos de y=x e y=√1+x. O comando x = −1:0.02:4;

gera um vetor x contendo os número de−1 a 4 em passos de 0, 02. O comando

y1 = x;

y2 = sqrt(1+x);

plot(x,y1,'',x,y2,'',phi,phi,'o')

produz uma figura com três componentes. Os primeiros dois componentes são gráficos de x e√x+1. O argumento’-’diz à função plot para desenhar linhas sólidas. O último componente do gráfico é um ponto onde ambas as coordenadas são iguais à φ. O argumento’o’diz à função plot para desenhar um círculo.

Figure 1: Ponto fixo em φ=1, 6180.

(4)

um dos casos mais comuns é o Retângulo de Ouro, que tem a pro-priedade de removendo um quadrado do retângulo, sobra um retân-gulo menor, tal quer a proporção entre os lados permanece a mesma. Considerando que um dos lados é unitário e chamando o outro lado de φ, temos:

1 φ =

φ−1 1

Multiplicando ambos os lados por φ, obtemos a mesma equação quadrática utilizada para calcular o ponto fixo:

φ2−φ−1=0

Utilizar a tecla seta para cima pra executar um comando muitos vezes é uma solução simples, mas existem construções especiais para executarmos comandos múltiplas vezes, sendo os principais os laços whileefor. Um laçoforexecuta um bloco de código um número determinado de vezes

x = 3

for k = 1:31

x = sqrt(1 + x)

end

Esse código gera 32 linhas de saída, uma para a primeira atribuição e uma para cada execução do laço.

Um laçowhileexecuta um bloco de código um número descon-hecido de vezes. O término do laço é controlado por uma expressão lógica, que gera valorestrue(verdadeiro) oufalse(falso). Abaixo está o código para o cálculo do ponto fixo utilizando owhile: x = 3

while x ~= sqrt(1+x)

x = sqrt(1+x)

end

Esse código gera as mesmas 32 linhas do código utilizando ofor, mas ele apresenta dois problemas. O primeiro possível problema é a condição de parada. A expressãox = sqrt(1+x)é a forma de escrever x 6= √1+x. Utilizando aritmética exata, os dois lados da equação nunca iriam se igualar e o laço continuaria executando indefinidamente, porém, para economizar processamento e memória, o MATLAB utiliza aritmética de ponto flutuante e eventualmente o programa encontra valores paraxesqrt(1+x)iguais. A segunda crítica que pode ser aplicada a esse programa é que ele é ineficiente, visto que calculasqrt(1+x)duas vezes para cada iteração do laço. Uma versão mais complicada, utilizando owhile, que resolve os problemas citados seria:

(5)

x = 3 y = 0;

while abs(xy) > eps(x) y = x;

x = sqrt(1+x)

end

O ponto e vírgula (;) no fim da atribuição à variável y indica que o resultado da operação não deve ser mostrado na tela. A quantidade eps(x)é o espaço de números de ponto flutuantes próximos de x.

Números

Números são formados dos algarismos de 0 a 9, um ponto decimal (opcional), um sinal+ou−, a letraeseguida de um valor inteiro para representar uma potência de 10 e opcionalmente, as letrasi oujpara representar a parte imaginária de um número complexo. O MATLAB também conhece o valor de π. A seguir estão alguns números: 42 9.6397238 6.0221415e23 −3+4i pi

Atribuições e Nomes de Variáveis

Um comando de atribuição consiste de um nome, um sinal=e um

número. O nome de uma variável, função ou comando é composto por uma letra seguida de um número qualquer de letras (maiúsculas ou minúsculas) algarismos e traços baixos.

x = 42

phi = (1+sqrt(5))/2

Avogadros_constant = 6.0221415e23 camelCaseComplexNumber = 3+4i

Expressões

A potência é denotada porˆe tem precedência sobre todas as oper-ações aritméticas. Multiplicação e divisão são representados por∗e / e tem precedência sobre adição e subtração. As operações de adição e subtração são denotadas por+e−. Operações com a mesma pre-cedência são avaliadas da esquerda para a direita. Expressões entre parêntesis são avaliada primeiro.

(6)

3*4 + 5*6 3 * 4+5 * 6 2*(3 + 4)*3 −2^4 + 10*29/5 3\126 5282

Todas essas expressões geram um número muito importante. Porque esse número é importante?

Exercícios

Os exercícios devem ser enviados por e-mail em um documento pdf com o código utilizado em cada exercício e uma análise escrita de cada solução

1. Use o MATLAB para calcular cada uma das seguintes expressões matemáticas: (a) 432 (b) 4(32) (c) (43)2 (d) sen(1) (e) −2−4/3 (f) √4 32 (g) cos(π 3)

2. Escreva um comando no MATLAB que converta temperatura em Fahrenheit,f, para Celsius,c.

c= alguma coisa envolvendoc 3. O que é maior, πφou φπ?

4. Verifique que a razão áurea é um ponto fixo para cada uma das seguintes equações:

(a) φ= φ−11

(b) φ= φ1+1

5. Escreva uma expressão matemática para a quantidade aproximada pelo seguinte programa (dica: é um somatório):

s = 0; t = Inf; n = 0;

while s ~= t

(7)

t = s;

s = s + 1/n^4;

end

s

6. Podemos plotar funções no MATLAB. Para plotarmos o gráfico da função

f = @(x) tan(sin(x)) sin(tan(x))

Onde o símbolo @ indica a criação de um função. O gráfico dessa função pode ser obtido utilizando:

ezplot(f,[−pi,pi])

Varie n no código abaixo para ou valores 10, 100, 1000 e 10000 e indique a diferença observada.

x = pi*(−2:1/n:2); comet(x,f(x))

Referências

Documentos relacionados

Os trabalhos foram realizados durante um ano, janeiro/2003 e dezembro/2003, quando foram registrados o tamanho da colônia em termos do número de pares reprodutores, sucesso

Entregou-se também, o mesmo tipo de questionário com algumas modificações (perguntas fechadas) a 15 (quinze) trabalhadores de postos de trabalho específicos existentes nas

Segundos os dados analisados, os artigos sobre Contabilidade e Mercado de Capital, Educação e Pesquisa Contábil, Contabilidade Gerencial e Contabilidade Socioambiental

Buscando contribuir para a composição do estado da arte da pesquisa contábil no Brasil, a investigação lançou mão de técnicas de análise bibliométrica para traçar o perfil

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

Energy Distribuidora e Transportadora de Derivados de Petróleo Ltda. São Paulo

A prova do ENADE/2011, aplicada aos estudantes da Área de Tecnologia em Redes de Computadores, com duração total de 4 horas, apresentou questões discursivas e de múltipla

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política