Escolar Documentos
Profissional Documentos
Cultura Documentos
Onde estamos considerando que no primeiro Teoria Matricial, Álgebra Linear e Analise
Numérica. Ele é tanto um ambiente quanto uma
somatório para cada k fazemos 𝑎𝑘 /N e depois
linguagem de programação, e um de seus aspectos
somamos. No segundo somatório somamos todos os
mais poderosos é que os problemas e as soluções são
𝑎𝑘 e o resultado da soma dividimos por N. Do ponto
expressos numa linguagem matemática bem
de vista analítico, as duas expressões são
familiar.
equivalentes, mas a segunda forma apresenta melhor
resultado do ponto de vista computacional, pois Apesar das últimas versões do MatLab ter
realiza menos operações e comete menos erros de expandido sua capacidade, o elemento básico dos
truncamento. Outros exemplos interessantes é que dados ainda é um vetor, o qual não requer
em aritmética computacional é possível que para A declaração de dimensão ou tipo variável. O MatLab
dado exista um ε ≠ 0 tal que: é um sistema interativo, onde os comandos podem
ser executados na janela de comandos ou por
A + ε = A.
programas.
Analiticamente a expressão acima é verdadeira
2.2.1. CÁLCULO NA JANELA DE COMANDOS
se, e somente se, ε = 0.
Um cálculo simples pode ser executado na
Outro assunto importante são os tipos de janela de comandos digitando as instruções no
esquemas numéricos. Eles são classificados como prompt como você faria numa calculadora.
esquemas diretos e esquemas iterativos. Os
esquemas diretos são aqueles que fornecem a >> 3*4 +5
ans = 17
solução após um número finito de passos. Os
esquemas iterativos são aqueles que repetem um Os símbolos dos operadores aritméticos são
número de passos até que um critério de parada seja dados na Tabela 1.1. As expressões são calculadas
satisfeito. Como exemplo considere o algoritmo que da esquerda para a direita, com a potenciação tendo
é usado para determinar a precisão de uma máquina precedência, seguido da multiplicação e divisão
digital. (mesma precedência) e pela adição e subtração
(também com a mesma precedência).
Algoritmo: Epsilon da Máquina
𝐸𝑝 ← 1 As Variáveis. A forma de armazenar o resultado para
Enquanto (1 + 𝐸𝑝) > 1, faça: uso posterior é pelo uso de variáveis.
𝐸𝑝 ← 𝐸𝑝/2
fim enquanto >> s = 3+4+7+12
OutPut: 2Ep s = 26
Tabela 2.1 Operadores Aritméticos
O critério de parada é (1 + 𝐸𝑝) ≤ 1 e cada OPERAÇÃO SÍMBOLO
execução de laço Enquanto é chamado de iteração. Adição a+b
Máquinas diferentes apresentarão resultados Multiplicação a*b
diferentes. Subtração a–b
Divisão a/b ou b/a
Outro fator que pode influenciar nos resultados é Potenciação a^b
O nome da variável pode consistir de no Matriz n x m cujo elementos são todos iguais a 1:
máximo 31 caracteres, iniciando sempre por um >> A = ones (2 , 3 )
caractere alfa seguido de qualquer combinação de A=
caracteres do tipo alfa, numérico e underscores. Por 1 1 1
exemplo, resultado_da_soma_2. Ao contrário de 1 1 1
outras linguagens, o MatLab diferencia as variáveis Matriz nula de ordem n x m:
que usam letras minúsculas e maiúsculas. Isto é, as
variáveis Contas, contas, conTas e CoNtAs, são >> B = zeros (3 , 4 )
A=
consideradas como quatro variáveis diferentes. Para 0 0 0 0
saber quais as variáveis que estão ativas utilizar o 0 0 0 0
comando who. As variáveis são tratadas como 0 0 0 0
matrizes, apesar dos escalares não serem
apresentados na rotação matricial. Um vetor linha Como na maioria das linguagens de
pode ser definido como programação, o MatLab oferece diversas funções
elementares que são importantes em matemática. A
>> x=[ 1 2 3 4] Tabela 1.3 apresenta uma lista destas funções e sua
x=
sintaxe.
1 2 3 4
Tabela 1.3 Funções Elementares
Também podemos separar os elementos por
vírgulas. Já um vetor coluna pode ser definido da FUNÇÃO SINTAXE
Valor Absoluto abs(x)
seguinte forma Arco Cosseno acos(x)
>> y=[5; 6; 7; 8] Arco Seno asin(x)
y= Cosseno cos(x)
5 Exponencial 𝑒 𝑥 exp(x)
6 Logaritmo Natural log(x)
7 Logaritmo base 10 log10(x)
8 Seno sin(x)
Raiz Quadrada sqrt(x)
Um exemplo de uma matriz 3 x 4. Tangente tan(x)
>> a= [ 1 2 3 4; 5 6 7 8; 9 10 11 12] Se desejamos gerar o gráfico da função 𝑠𝑒𝑛(𝑥)
a= no intervalo [−𝜋 , 𝜋] devemos proceder da seguinte
1 2 3 4 forma:
5 6 7 8
9 10 11 12 >> x= −pi : 0.01 : pi;
De forma geral este comando tem a sintaxe Existem dois tipos de programas em MatLab:
scripts e functions. Ambos devem ser salvos com
v = a : passo : b extensão *.m no diretório corrente. Uma diferença
Algumas matrizes elementares podem ser básica entre os dois é que o scripts trata as variáveis,
geradas através de comandos simples, por exemplo, nele definidas, como variáveis globais, enquanto
a matriz identidade: functions trata as variáveis como variáveis locais.
Desta forma functions tem que ter um valor de
>> I= eye (3)
retorno.
I=
1 0 0 Scripts. Permite que um conjunto de comandos e
0 1 0 definições sejam executados através de um único
0 0 1 comando na janela de comandos. Como exemplo, o
script seguinte calcula a aproximação da derivada de atribui-se a x a próxima coluna de vetor. Por
𝑠𝑒𝑛(𝑥) usando diferenças finitas. exemplo,
% Aproximação da derivada do seno >> for n=1:5
% Usando o operador de diferença finita progressiva. x (n) = cos(n*pi/2);
clear; end
h=0.0001 >> x
x= input (‘Entre com o valor de, x=’); % atribuir valores a x x = 0 . 0000 −1 . 0000 −0 . 0000 1 . 0000 0 . 0000
disp(‘ O valor da aproximacao eh...’) %Mostra mensagem
no monitor Isto diz que para n igual a 1 até 5 calcule os
dsen= (sin(x+h)−sin(x)) /h comandos até end.
As primeiras duas linhas são comentários que Ao contrario do loop for, que executa um grupo
descrevem o script. Na quinta linha temos o de comandos um número fixo de vezes, o loop while
comando que permite atribuir valores a uma executa um grupo de comandos quantas vezes forem
variável. E na sexta linha o comando que permite necessárias para que uma condição seja negada. Sua
mostrar uma mensagem no monitor. Vamos supor forma geral é
que este arquivo seja salvo com o nome de while expressão
deriva_seno.m. comandos...
end
Functions. Numa função em MatLab a primeira
linha é da forma function y = nome(argumentos). O grupo de comandos entre while e end são
Para ilustrar o uso de funções em MatLab considere executados até que assuma um valor falso. Por
o seguinte código: exemplo,
function dsen=deriva_sin (x , h) while abs (x(n) − x(n − 1)) > 10^(−6)
% Aproximação da derivada do seno x (n) = 2*x(n −1) + 1/4;
% Usando o operador de diferença finita progressiva. n= n+1;
dsen= (sin(x+h)−sin(x)) /h; end
Apesar deste arquivo poder ser salvo com um Neste caso o grupo de comandos são executados até
nome qualquer, é usual usar o mesmo nome da que o valor absoluto da diferença entre dois valores
função, ou seja deriva_sin.m. Para executá-lo consecutivos seja menor ou igual a 10−6.
devemos digitar seu nome e informar os valores dos A estrutura if-else-end permite que grupos de
argumentos, por exemplo, comandos sejam executados por um teste relacional.
>> y=deriva_sin (3.14 , 0.001) A forma geral é dada por
o que forneceria em y uma aproximação da derivada if expressão
da função seno em 3.14. Uma diferença importante comandos 1...
else expressão
entre esta versão, usando o function, com a anterior
comandos 2...
é que o valor calculado poder ser atribuído a uma end
variável. Além disso, agora podemos escolher o
valor de h, que na versão anterior estava fixo em Se a expressão for verdadeira é executado o grupo
h=0.0001. Vale notar que no primeiro caso todas as de comandos 1, caso contrario é executado o grupo
variáveis do script estão ativas, isto é, a variável h de comandos 2. Esta estrutura permite o uso da
só é ativada na execução da função. forma mais simples que envolve só um condicional.
Controle do Fluxo. É um recurso que permite que if expressão
resultados anteriores influenciem operações futuras. comandos...
end
Como em outras linguagens, o MatLab possui
recursos que permitem o controle de fluxo de Como exemplo, considere o seguinte fragmento de
execução de comando, com base em estruturas de código que calcula o valor absoluto de um número.
tomada de decisões. Apresentamos as estruturas de if x < 0
loops for, loops while e if-else-end. A forma geral x= −x
do loop for é end
for x = vetor Isto é, se x for menor que zero então troca de sinal,
comandos...
caso contrário nada é feito.
end
Os comandos entre for e end são executados
uma vez para cada coluna de vetor. A cada iteração
2.3 ISOLAMENTO DAS RAÍZES Exemplo 2.2 Dá análise da Fig. 2.1 a função 𝑓(𝑥) =
𝑒 −𝑥 − 𝑥 tem uma raiz em [𝑎, 𝑏]. Tabelando a função
Um número x que satisfaz a equação 𝑓(𝑥) = 0 é para valores a partir de zero e espaçados de 0,25
chamado de raiz ou zero de f. O objetivo é encontrar observa-se que:
um intervalo [a, b], de pequena amplitude (𝑏 − 𝑎 ≪ x 0 0.25 0.5 0.75 1
1), que contenha a raiz que desejamos determinar. 𝑓(𝑥)
Para isto usaremos duas estratégias: análise gráfica e
tabelamento da função. No intervalo [0.5, 0.75], 𝑓(𝑎)𝑓(𝑏) < 0, logo a raiz
pertence ao intervalo.
A análise gráfica é baseada na ideia de que, a
partir da equação 𝑓(𝑥) = 0, podemos obter uma Note que 𝑓 ′ (𝑥) = −𝑒 −𝑥 − 1 < 0, ∀ 𝑥 ∈ ℜ, isto
equação equivalente 𝑔(𝑥) − ℎ(𝑥) = 0, onde g e h é, 𝑓’ preserva o sinal em [𝑎, 𝑏] o que implica em
sejam funções mais simples e de fácil análise dizer que esta raiz é única!
gráfica. Esboçando o gráfico de g e h podemos
determinar os pontos x, onde as curvas se 2.4 MÉTODO DA BISSECÇÃO
interceptam, pois estes pontos serão as raízes de
Este método é baseado no Teorema 2.1. Seja
𝑓(𝑥) (𝑔(𝜉) = ℎ(𝜉) ⟹ 𝑓(𝜉) = 0).
𝑓(𝑥) uma função contínua no intervalo [a, b] tal
Exemplo 2.1 Sendo 𝑓(𝑥) = 𝑒 −𝑥 − 𝑥 temos 𝑓(𝑥) = que 𝑓(𝑎)𝑓(𝑏) < 0 e seja 𝜀 > 0 um número dado. A
𝑔(𝑥) − ℎ(𝑥), onde 𝑔(𝑥) = 𝑒 −𝑥 e ℎ(𝑥) = 𝑥. ideia é reduzir a amplitude do intervalo até atingir a
3 precisão requerida: 𝑏 − 𝑎 < 𝜀, usando divisão
h(x) = x
g(x) = exp(-x) sucessivas do intervalo.
2.5
1.5
0.5
-0.5
-1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
valores de x
c) ln(𝑥) − 2𝑥 = −2 f) (5 − 𝑥)𝑒 𝑥 = 1
2. Localize graficamente e dê intervalos de amplitude 0.5 Verificar que se começando com 𝑥0 = 0 haverá
que contenha as raízes das equações: convergência para a raiz próxima de −0.5, se o valor
negativo for usado e que haverá convergência para a raiz No intervalo [0, 1] e com precisão 𝜀 = 10−2.
próxima de 1.0, se o valor positivo for usado.
Nas questões 12 a 14, encontre aproximações para a
10.Mostre que 𝑥 3 − 2𝑥 − 17 = 0 tem apenas uma raiz solução da equação 3𝑥 2 + 𝑥 3 = 1, no intervalo [−4, 0] e
real e determine seu valor correto até 2 casas decimais com precisão 𝜀 = 10−4.
usando o método de Newton.
12. Utilizando o Método da bissecção;
11. Utilizando o Método da bissecção encontre 13. Utilizando o Método Iterativo Linear;
aproximações para a solução da equação 14. Utilizando o Método de Newton-Raphson.
sen 𝑥 − 𝑒 𝑥 = 0