Você está na página 1de 103

COMPUTAÇÃO APLICADA À ENGENHARIA

Dr. Fernando Gonzales Tavares

GUIA DA
DISCIPLINA
Universidade Santa Cecília - Educação a Distância

Objetivo
Introduzir a usabilidade de uma ferramenta computacional voltada para a área de
engenharia. Promover a dedução natural, bem como, a formalização de problemas. Criar
habilidade na resolução algorítmica de problemas, através de noções computacionais
simbólicas e numéricas.

Introdução
Você sabe dizer o que é Ciência da Computação?
A ciência da computação está diretamente ligada a resolução de problemas, essa
por sua vez consiste no processo de selecionar e tratar informações específicas de uma
determinada situação problema e gerar alguns resultados que representem a sua solução.

De uma maneira mais formal podemos dizer que é a ciência que estuda as técnicas,
as metodologias, os instrumentos computacionais e suas aplicações tecnológicas, com os
quais informatizam os processos buscando soluções de problemas. Por meio do estudo de
algoritmos, suas aplicações e implementação na forma de software, utilizando o
processamento de dados através da entrada e saída pautados no computador.

A Ciência da Computação também engloba técnicas de modelagem e


gerenciamento de banco de dados, envolvendo também várias áreas, como engenharia de
software, inteligência artificial, ciência de dados, internet das coisas, etc.

Para que tudo isso seja possível é necessário utilizarmos softwares, programas
elaborados para executar determinadas tarefas, os quais são escritos em uma linguagem
para programação dos computadores.

A linguagem utilizada em nosso curso será o MATLAB (MATrix LABoratory) criada


pelo Professor Cleve Moler no fim dos anos de 1970, com o objetivo de facilitar aos seus
alunos a resolução de problemas de cálculo numérico, até então resolvidos através da
linguagem Fortran. O MATLAB é uma linguagem de programação que utiliza sistema
interativo cujo elemento básico de informação é uma matriz que não requer
dimensionamento.

Computação Aplicada À Engenharia 1


Universidade Santa Cecília - Educação a Distância

MATLAB é uma das principais ferramentas de aprendizagem para a formação de


engenheiros, analistas de mercado, cientistas de dados e pesquisadores, utilizada por mais
de um milhão de usuários em mais de cinco mil universidades em todo o mundo.

Este guia dá mais ênfase aos conceitos gerais da disciplina de ciência da


computação permitindo que o aluno se familiarize com a linguagem do profissional dessa
área, enquanto aprende a linguagem MATLAB utilizada para a resolução de numerosos
problemas de engenharia.

Computação Aplicada À Engenharia 2


Universidade Santa Cecília - Educação a Distância

1. AMBIENTE MATLAB E OPERAÇÕES MATEMÁTICAS

Objetivo
 Conhecer o ambiente da ferramenta MATLAB.
 Explorar as funcionalidades da ferramenta.
 Aprender como números são atribuídos a variáveis.

Compreender o que são funções nativas e aprender mais sobre elas com os recursos
de Help (Ajuda) do MATLAB.
Aprender como usar comandos básicos do MATLAB.

Introdução
O MATLAB é fácil de aprender e, ao mesmo tempo, é uma linguagem de
programação extremamente versátil e útil em ambiente de programação.

A única maneira de entender e aprender é fazendo. Os conjuntos de exemplos


resolvidos e problemas práticos dentro de cada seção fornecem ampla oportunidade para
o estudante praticar.

Use o MATLAB on-line através do seu navegador da web padrão de qualquer lugar
com acesso à Internet.

Link para acesso:


https://la.mathworks.com/products/matlab-online.html

Uma versão básica do MATLAB Online fornece 20 horas por mês de uso gratuito,
acesso a 10 caixas de ferramentas comumente usadas e disponibiliza 5 GB de espaço de
memória no MATLAB Drive (https://drive.matlab.com) onde é possível acessar, baixar e
compartilhar seus arquivos.

Computação Aplicada À Engenharia 3


Universidade Santa Cecília - Educação a Distância

Visita a página da MathWorks:

https://la.mathworks.com/

Clique em “Soluções”:

https://la.mathworks.com/solutions.html?s_tid=gn_sol#industries

1.1. Área de trabalho do MATLAB


Quando você iniciar o MATLAB na tela de seu computador vai aparecer o desktop
do MATLAB, Figura 1.

Figura 1- Desktop do MATLAB

Observe que na aba HOME, Figura 2, aparecem botões de atalhos: New Script; New
Live Script, New, etc. Esses botões de atalhos serão utilizados e explicados no decorrer do
curso. A guia Home é mais útil para fins de programação.

Figura 2-Guia Home

Computação Aplicada À Engenharia 4


Universidade Santa Cecília - Educação a Distância

A área de trabalho exibe três janelas: o “Espaço de trabalho” (Workspace) no canto


inferior esquerdo da tela, a “Pasta Atual” (Current Folder) à esquerda e a “Janela de
comandos” no meio onde aparecem os dois sinais de >>.

Figura 3- Janelas do MATLAB

Observe as setas vermelhas na Figura 3 indicando essas áreas. Ao clicar com o


mouse na janela de comandos aparece uma barra vertical piscando (|) à direita dos dois
sinais de >>, os comandos são digitados nessa janela de comando.

Quando quiser sair do MATLAB basta digitar quit logo após os dois sinais de >> e
pressionar enter, ele fechará todas as janelas abertas e sairá. Se você tiver arquivos
abertos, será perguntado sobre como salvá-los e terá a chance de salvá-los. Outra forma
de sair do MATLAB é clicando com o mouse no botão com X no canto superior direito da
janela do MATLAB no Windows.

1.1.1. Current Folder – Pasta Atual


Quando o MATLAB está em execução, há uma pasta especial, chamada de Current
Folder, "Pasta Atual", onde o MATLAB espera encontrar os arquivos que você deseja abrir
e onde armazenará os arquivos que deseja salvar.

Quando você tem sua conta, login e senha, no site da mathworks você recebe
espaço, instantaneamente, de memória com 5GB no MATLAB Drive e o acesso a ele é por
meio desta pasta. O nome da pasta pode ser encontrado na barra branca, abaixo das abas,
Figura 4, e acima das três janelas. É chamada de barra de ferramentas da pasta atual.

Computação Aplicada À Engenharia 5


Universidade Santa Cecília - Educação a Distância

Figura 4 – Current Folder

Vamos colocar pastas dentro da pasta atual, que é o MATLAB Drive. Inicialmente
vamos criar uma nova pasta chamada Teste.

Clicando no grande sinal de adição (+), amarelo, na aba HOME e vai aparecer uma
janela com várias opções. Role a barra desta janela até o final e vai encontrar a opção
Folder. Clique nessa opção e a seguir vai abrir a janela Current Folder onde deve digitar o
nome do seu arquivo, Teste, no lugar do New Folder, verifique na Figura 5.

Figura 5 - Criar nova Pasta

Clicando duas vezes na nova pasta Teste, ela vai aparecer na barra de ferramentas
como sendo a nova pasta atual.

Computação Aplicada À Engenharia 6


Universidade Santa Cecília - Educação a Distância

1.1.2. 1.1.2. Janela de comandos - Command Window


O símbolo >> na janela de comando, a janela maior a direita da área de trabalho,
indica que o MATLAB está pronto para executar os seus comandos. Esse símbolo >> é
chamado de “prompt” de comando, é usado pelo MATLAB para solicitar uma ação do
usuário. Essa é a principal janela, onde não só podemos executar comandos, mas também
rodar programas, abrir outras janelas e gerenciar o uso da MATLAB.

Quando você digita um comando para o MATLAB na área da janela de comandos,


ele assume o controle e começa a executar a ordem. Por exemplo, digite x=5+2, Figura 6.
Figura 6 – Comando x=5+2

Quando você digita um comando na janela de comando e pressiona a tecla enter, o


MATLAB imediatamente executa seu comando e imprime sua resposta.

O MATLAB adicionou 5 a 2 e, em seguida, atribuiu o resultado a uma variável


chamada x. Ele mostra o valor de x e em seguida o seu prompt (>>) para que você saiba
que está pronto para outro comando. Se você quiser saber o valor de x em qualquer
momento posterior, Figura 6, basta digitá-lo (>>x) e o MATLAB responderá da seguinte
maneira:
x=
7
O ato de atribuir um valor a x fez com que uma variável chamada x fosse criada e
designado um local na memória onde seu valor foi armazenado. Podemos observar na
janela Workspace da Figura 6, no canto inferior esquerdo da tela, a variável x criada e o
seu valor atribuído após a execução do comando.

Computação Aplicada À Engenharia 7


Universidade Santa Cecília - Educação a Distância

1.1.3. Comando clear


Caso queira eliminar a variável x da memória, basta utilizar o comando clear x ou o
comando clear, que limpa todas as variáveis que foram definidas até aquele momento na
janela de comando, observe na Figura 7 que na janela Workspace não aparece mais o
valor da variável x.

1.1.4. Comando format compact


O MATLAB inclui linhas em branco antes e depois da linha x = acima e depois da
última linha dos valores em x. Esse procedimento ocupa muito espaço na janela de
comandos depois de um certo tempo, porém o MATLAB permite suprimir a impressão
dessas linhas extras usando um comando chamado format, informando que você deseja
uma notação compacta, na qual não há espaços entre as linhas, veja a Figura 7.

Figura 7 - Comando format compact

1.1.5. Comando clc


O comando clc “limpa” a janela de comandos, mas mantém o valor atribuído às
variáveis.
>> clc

1.1.6. Comandos utilizando o teclado


Pode acontecer de que um determinado comando (trabalho) leve muito tempo,
talvez mais do que você gostaria de esperar. Por essa razão é importante, antes de
aprender a dar comandos, saber abortá-los.

Computação Aplicada À Engenharia 8


Universidade Santa Cecília - Educação a Distância

Caso você ache que o MATLAB está demorando muito para executar um comando,
você pode parar a execução do comando, pressionando as teclas Ctrl e C simultaneamente
para abortar o comando.

O MATLAB não será encerrado, ele simplesmente terminará a execução do


comando e apresentará a você um novo prompt de comando.

Caso você deseje reescrever algum comando já digitado na janela de comandos,


pressione a tecla seta para cima do seu teclado e vai aparecer uma janela com todas as
linhas até então digitadas, Figura 8, em seguida clicar no comando desejado.

Figura 8 – Teclado seta para cima

1.1.7. Função ou variável indefinida


Se você pedir o valor de uma variável que ainda não recebeu um valor, o MATLAB
reclama, escrevendo uma mensagem de erro: Unrecognized function or variable 'y'.

Computação Aplicada À Engenharia 9


Universidade Santa Cecília - Educação a Distância

Figura 9- Mensagem de erro

Quando é digitado x na janela de comando, o MATLAB não apresenta uma


mensagem de erro em razão de ter sido anteriormente definido o valor de x=13, conforme
se observa na janela Workspace da Figura 9.

1.1.8. Suprimindo impressão


O MATLAB imprimi o resultado de um comando na janela de comando, como fez
com o Bola = 25 após ser digitado o comando Bola= 15+10, Figura 8. Se não quiser que o
resultado seja impresso, digite um ponto e vírgula (;) após o comando. Outro exemplo:
>> x= 17;

Com o ponto e vírgula, o comando ainda atribuirá o valor 17 a variável x, conforme


se observa na janela Workspace da Figura 10, mas não imprime o valor de x.

Figura 10 – Suprimindo impressão

Computação Aplicada À Engenharia 10


Universidade Santa Cecília - Educação a Distância

Observe que usamos uma letra maiúscula para a variável Bola. As variáveis podem
ter mais de uma letra e, como veremos em outros exemplos, podem até incluir dígitos, mas
as letras e os dígitos não podem ter espaços entre si. Importante lembrar que o MATLAB
faz distinção entre letras maiúsculas e minúsculas. Por exemplo, a variável Bola é para o
MATLAB diferente de bola, BOLA, BoLa, boLA, etc.

1.1.9. Digitando %
Caso você deseje escrever um comentário na janela de comandos, Figura 11, basta
digitar o símbolo de porcentagem logo após o prompt de comando (>>) e a seguir o texto
desejado.

Figura 11 - Comentário %

Observação: não é possível utilizar acentuação nas palavras que indicam variável.

1.1.10. Ajuda – Comando Help


Para esclarecer dúvidas acerca da utilização de uma dada função do MATLAB o
comando help é de grande utilidade.

O MATLAB possui todas as funções organizadas em grupos, por exemplo, todas as


funções de álgebra linear estão armazenadas no diretório matfun, para acessar digite:
>> help matfun

Computação Aplicada À Engenharia 11


Universidade Santa Cecília - Educação a Distância

Outra alternativa é utilizar uma janela de ajuda do próprio site, bastando para tal
escrever o comando >>helpwin

1.2. Operações matemáticas no MATLAB


As operações nas expressões do MATLAB seguem as regras habituais de prioridade
e podem ser aplicadas quer a matrizes quer a números, Figura 12.

Figura 12 – Operadores aritméticos

A divisão a esquerda se aplica à álgebra matricial, mas também pode ser utilizada
como operação inversa da divisão à direita, ver Figura 13.

Figura 13 - operação inversa

1.2.1. 1.2.1. Variáveis e funções predefinidas


Quando iniciamos o MATLAB, uma quantidade de variáveis e funções são
carregadas automaticamente na memória do programa. Apesar de poder se redefinir essas

Computação Aplicada À Engenharia 12


Universidade Santa Cecília - Educação a Distância

variáveis e funções a qualquer momento, não é recomendado que se faça isso, porque
muitas aplicações do MATLAB fazem uso delas. Veja os exemplos na Figura 14.

Figura 14 - nomes de variáveis pré definidos

1.2.2. Operador de atribuição


O sinal de = é chamado de operador de atribuição. O lado esquerdo do sinal de =
pode conter apenas uma variável enquanto que do lado direito pode conter uma expressão
numérica, possuindo números e letras, ver Figura 15.

Figura 15 – Operador de atribuição =

Quando observamos a Figura 15 a atribuição das três variáveis a, b e c estão na


mesma linha de comando separadas por (;) o que gera a não impressão dos seus valores
na janela de comando. Exemplo: Calcule as raízes da seguinte equação do segundo grau

Computação Aplicada À Engenharia 13


Universidade Santa Cecília - Educação a Distância

x2 + 5x + 4 = 0
Figura 16 - equação do 2º grau

No exemplo da Figura 16, as variáveis a, b e c foram separados por (,) e por essa
razão os seus valores foram impressos na janela de comando. É importante lembrar que
utilizamos o valor de Delta calculado no exemplo anterior.

1.2.3. Comandos de formato de exibição


A Figura 17 representa uma tabela com um resumo dos comandos de formato de
exibição de números utilizados em cálculo científico.
Figura 17 - Comandos de formato de exibição

Computação Aplicada À Engenharia 14


Universidade Santa Cecília - Educação a Distância

Observe na Figura 18 o valor de pi é exibido com quatro casas decimais, mas quando
digitamos o comando format Long o resultado é exibido com 15 algarismos significativos.

Figura 18 - Formato de exibição de números

1.2.4. Funções matemáticas elementares


Expressões aritméticas raramente requerem outros cálculos que não sejam as
operações básicas de adição, subtração, multiplicação, divisão e exponenciação. Alguns
problemas requerem o uso de logaritmos, exponenciais, funções trigonométricas, etc. O
MATLAB possui uma gama de funções nativas para executar estes tipos de cálculos.

Por exemplo, se quisermos calcular o seno de um ângulo x medido em radianos e


armazenar o resultado em a, podemos usar o seguinte comando:
>> a = sin(x)
Caso o argumento seja dado em graus, é possível converter primeiro para radianos
e depois aplicar a função sin . Outra opção é fazer a conversão dentro do argumento da
função sin. As funções trigonométricas supõem que os argumentos estão em radianos.

Computação Aplicada À Engenharia 15


Universidade Santa Cecília - Educação a Distância

>> a= sin( x*pi/180)


Exemplos de funções elementares no MATLAB:

sin Calcula o seno de x


(x)
co Calcula o cosseno de x
s(x)
tan Calcula a tangente de x
(x)
asi Calcula o arcoseno de x, onde x deve estar entre –1 e 1. A função
n(x) apresenta um ângulo em radianos entre - π/2 e π/2
ac Calcula o arcocoseno de x, onde x deve estar entre –1 e 1. A função
os(x) apresenta um ângulo em radianos entre 0 e π
ata Calcula o arcotangente de x, onde x deve estar entre –1 e 1. A função
n(x) apresenta um ângulo em radianos entre - π/2 e π/2
ab Calcula o valor absoluto de x
s(x)
sqr Calcula a raiz quadrada de x
t(x)
ro Arredonda o valor de x para o inteiro mais próximo
und(x)
fix( Arredonda o valor de x para o inteiro mais próximo de zero
X)
flo Arredonda o valor de x para o inteiro mais próximo de - ∞
or(x)
cei Arredonda o valor de x para o inteiro mais próximo de ∞
l(x)
ex Esta função retorna ao valor de ex, onde e é a base para logaritmo
p(x) natural
log Retorna a ln x, o logaritmo natural de x para a base e
(x)
log Retorna a log10x, ou seja, o logaritmo de x na base 10
10(x)

Computação Aplicada À Engenharia 16


Universidade Santa Cecília - Educação a Distância

1.2.5. Cálculo de limites


Para efetuar uma operação com limites no MATLAB, o comando que se deve dar é:
limit(f(x),x,a) onde f(x) é a função que se quer achar o limite, x é a variável e a é o
1+𝑥2
número no qual o x está tendendo ( x→ a ). Exemplo: Ache o limite de , Figura19.
1−𝑥2

Figura 19 - Cálculo de limites

Antes de qualquer operação, onde se tem x, y, z ou qualquer outra como


variável, é preciso definir sua variável, para isso usa-se o comando: syms x
Dessa forma estará indicando que qualquer x que for colocado em funções é
uma variável e não um número.

1.2.6. Cálculo de derivadas


Para o cálculo de derivadas, o comando no MATLAB é: diff(f(x)), onde f(x) é a
função que se quer determinar a derivada. Exemplo: Derivar a função f(x)= 2x2 + 3x, Figura
20.

Computação Aplicada À Engenharia 17


Universidade Santa Cecília - Educação a Distância

Figura 20 - Cálculo da derivada

1.2.7. Cálculo de integrais


Na integração de funções, o comando utilizado no MATLAB é: int(f(x)), pode-se
colocar a função dentro dos parênteses, ou então definir uma função f e simplesmente

escrever int(f). Exemplo: integrar a função ∫ √𝑥(1 − 𝑥)2 𝑑𝑥 , Figura 21.

Figura 21 - Cálculo de integrais

Computação Aplicada À Engenharia 18


Universidade Santa Cecília - Educação a Distância

1.2.8. Exercícios
Resolva os problemas abaixo utilizando a janela de comandos do MATLAB.
1. Calcule:
23
a) (2 − √9)5 +
10
5𝜋 7𝜋
b) )𝑠𝑒𝑛2 ( )
6 8

2. Declare e inicialize a variável x como x=3,5 e em seguida, determine o valor de cada


expressão abaixo:

a) 2x2 + 3x – 5 b) log |x3-5x2| + 2x

3. Duas identidades trigonométricas são definidas como:


𝑥 1+𝑐𝑜𝑠(𝑥)
a) sen(2x) = 2sen(x)cos(x) b) 𝑐𝑜𝑠 𝑐𝑜𝑠 =√
2 2
5
Considerando 𝑥 = 𝜋 , verifique cada uma das identidades calculando os dois
24
lados da equação.

4. No triângulo retângulo mostrado na Figura abaixo, a= 11 cm e c= 21 cm. Declare as


variáveis a e c e depois resolva os itens a) e b).

a) Usando o Teorema de Pitágoras, calcule b digitando apenas uma linha de comando.


b) Usando o valor de b encontrado em a) e a função acos(x), determine o ângulo α em
graus, utilizando apenas uma linha de comando.

5. Calcule o seno, o coseno, a tangente, a raíz quadrada e a raíz cúbica de π/2.

6. Calcule o limite de:


5−√𝑥
25−𝑥

Computação Aplicada À Engenharia 19


Universidade Santa Cecília - Educação a Distância

7. Achar a derivada de:


a) f(x) = 1/(3-x) b) f(x) = x – 1/x c) f(x) = tan(3x+5)

8. Integrar as funções:
2𝑥4 −3𝑥3 +5
a) ∫ 7𝑥2
𝑑𝑥 b) ∫ (5 𝑐𝑜𝑠 𝑥 − 4 𝑠𝑖𝑛 𝑥)𝑑𝑥

Computação Aplicada À Engenharia 20


Universidade Santa Cecília - Educação a Distância

2. GRÁFICOS NO MATLAB EM R2 NO PLANO XOY

Objetivo
Criar e formatar gráficos bidimensionais com o MATLAB.

Introdução
Interface Gráfica do Usuário (GUI) é a ferramenta de interação do usuário de um
programa por meio de imagens, toques na tela e cliques do mouse. Os programas devem
possuir excelentes interfaces gráficas de usuário (GUIs) para permitir que a sua usabilidade
favoreça a interação com o software de maneira natural. As GUIs mais tradicionais utilizam
entrada de mouse e teclado para permitir que você interaja com botões, menus e outros
recursos da própria GUI.

Este capítulo aborda plotagens de funções em um plano cartesiano ortogonal;


utilizando eixos: linear, semi-logarítmico e logarítmico. As linhas poderão ser construídas
com cores, tipos e espessuras diferentes.

Os gráficos podem conter linhas de grade, títulos, comentários de texto e legendas.

2.1. Comando plot


O comando mais simples é plot (x, y) que utiliza dois vetores x e y do mesmo
comprimento. Os pontos (x, y) serão impressos e conectados por linhas sólidas, observe
que na Figura 22 surgiu uma nova janela denominada Figure 1.

Computação Aplicada À Engenharia 21


Universidade Santa Cecília - Educação a Distância

Figura 22 - Comamdo Plot

A princípio vamos considerar vetor como uma lista de números.

Um comando simples para criar uma sequência de números é o operador dois


pontos (:).

Se o operador dois-pontos for usado para separar três números, o MATLAB


gerará um conjunto de números entre o primeiro e o terceiro número
utilizando um incremento igual ao segundo número.

Na Figura 22 foi criado um vetor x, contendo os valores das abscissas dos pares
ordenados (x,y) que compõem a linha do gráfico.

É possível criar gráficos no plano cartesiano ortogonal de forma rápida e


conveniente, porém não podemos esquecer que o tamanho do vetor x deve ser igual ao do
vetor y, em outras palavras: a quantidade de valores para a variável x deve ser igual a
quantidade de valores para y.

Computação Aplicada À Engenharia 22


Universidade Santa Cecília - Educação a Distância

Figura 23 - Gráfico da parábola

Na Figura 23 encontramos duas linhas de comentários na janela de comandos


(Command Window) utilizando os caracteres de % no início da frase. São uteis como
lembretes das operações que estão sendo executadas.

Importante observar também que foi acrescentado à frente do acento circunflexo (^)

um ponto (.). Sempre que a variável for elevada a um expoente esse ponto deve ser
colocado para que o MATLAB ajuste o tamanho da variável de saída y. Caso contrário o
programa acusa um erro referente aos tamanhos diferentes entre os vetores x e y, Figura
24.

Computação Aplicada À Engenharia 23


Universidade Santa Cecília - Educação a Distância

Figura 24 - Mensagem de erro

2.1.1. 2.1.1. Opções de estilo


Um gráfico necessita de algumas informações para ser bem compreendido: título,
legenda nos eixos, etc.

Opções de estilos é um argumento opcional para especificar a cor, tipo de linha do


gráfico (contínua, tracejada, pontilhada, etc.), e estilo da marcação dos pontos (o, -, *, +,
etc.). Essas três opções podem ser especificadas juntas entre aspas simples, nessa
respectiva ordem, plot(x,y,´opções de estilo’), na tabela 1 apresentamos um conjunto de
códigos para opções de estilo.

Tabela 1 - Opções de estilo

Computação Aplicada À Engenharia 24


Universidade Santa Cecília - Educação a Distância

Vamos refazer nosso último gráfico da parábola y = x2 + 2x – 15, veja a Figura 25.

Figura 25 - Gráfico utilizando opções de estilo

No gráfico da Figura 25 foi utilizado o estilo de linha traço ponto (-.) com a cor verde.
Em função da versão do MATLAB nem todas as opções de estilo da tabela 1 estão
disponibilizadas. Utilizando o comando help plot é possível obter mais detalhes da função.

2.1.2. Rótulos, Título, texto e grade


Os gráficos podem ser anotados com os comandos xlabel, ylabel, title, text e grid.
 title(‘text’) - Este comando escreve títulos no topo do gráfico plotado.
 xlabel(‘text’) - Este comando escreve um texto abaixo do eixo x do gráfico plotado.
 ylabel(‘text’) - Este comando escreve um texto ao lado do eixo y do gráfico plotado.
 grid - Este comando acrescenta grades no gráfico plotado.
 text(x,y,‘text’) - Este comando escreve um texto na tela do gráfico no ponto
específico das coordenadas (x, y) usando os eixos dos gráficos.

Computação Aplicada À Engenharia 25


Universidade Santa Cecília - Educação a Distância

Figura 26 - Rótulos

2.2. Plotando gráficos múltiplos em uma mesma saída


O MATLAB permite exibir mais de um conjunto de dados no mesmo gráfico. Existem
maneiras simples de plotar gráficos diferentes em uma mesma saída (janela figure).

2.2.1. Usando o comando plot


Para plotar curvas múltiplas no mesmo gráfico deve se usar vários argumentos no
comando plotar como a seguir: plot(x1,y1,x2,y2). Observe a Figura 27
Figura 27 - Múltiplas curvas

Computação Aplicada À Engenharia 26


Universidade Santa Cecília - Educação a Distância

2.2.2. Usando o comando hold


O comando hold on mantém o gráfico corrente e todas as propriedades dos eixos,
de modo que comandos gráficos adicionais possam ser acrescentados ao gráfico existente.
Figura 28 - Comando hold

2.2.3. Usando o comando subplot


O comando subplot, divide a janela do gráfico em sub janelas ou painéis, e tem a
sintaxe: subplot(m, n, p). Esse comando divide a janela do gráfico em uma matriz m por n,
com gráficos menores em cada célula da “matriz”, e seleciona o p-ésimo gráfico como o
corrente gráfico. Observe que, Figura 29, foi criado uma figura com quatro espaços
distintos, onde foram plotados três gráficos nas posições indicadas em cada comando
subplot.

Computação Aplicada À Engenharia 27


Universidade Santa Cecília - Educação a Distância

Figura 29 - Figura dividida em 4 espaços

2.3. Gráficos com escalas logarítmicas


Gráficos em que x e y são eixos divididos com o mesmo intervalo de espaço, são
chamados de lineares. Às vezes temos que usar uma escala logarítmica em um ou ambos
os eixos para uma melhor representação dos dados. Os comandos para plotar gráficos
lineares e logarítmicos são:
 semilogx(x, y) - Este comando gera gráfico usando escala linear para y e escala
logarítmica (base 10) para x.
 semilogy(x, y) - Este comando gera gráficos usando escala linear para x e escala
logarítmica (base 10) para y.
 loglog(x, y) - Este comando gera gráficos com escala logarítmica (base 10) para
ambos os eixos x e y.

Lembrar que logaritmo de valores negativos e zero não existem, logo se


tentarmos plotar um gráfico semilog ou log com valores negativos ou zeros,
aparecera no MATLAB uma mensagem informando que esses valores serão
omitidos do gráfico.

Computação Aplicada À Engenharia 28


Universidade Santa Cecília - Educação a Distância

Observe na Figura 30 a representação da função y = 2(-0,2x-10) em suas quatro


configurações de eixos. Criamos a variável x, abscissa do plano cartesiano, utilizando o
comando linspace(xinicial, xfinal, n).

Figura 30 - Gráficos de y=2^(-0,2x+10)

2.4. Exemplos de construções de gráficos e comandos


Figura 31 - Exemplo 01

Computação Aplicada À Engenharia 29


Universidade Santa Cecília - Educação a Distância

Figura 32 - Exemplo 02

Figura 33 - Exemplo 03

Computação Aplicada À Engenharia 30


Universidade Santa Cecília - Educação a Distância

Figura 34 - Exemplo 04

Figura 35 - Exemplo 05

Computação Aplicada À Engenharia 31


Universidade Santa Cecília - Educação a Distância

Figura 36 - Exemplo 06

2.5. Exercícios
1) Trace o gráfico das funções indicadas abaixo.
a)

b)

2) Trace o gráfico das funções indicadas abaixo, juntamente com o gráfico da


primeira e segunda derivada das funções, em seus respectivos intervalos dados.
Observação: construir cada função e suas respectivas derivadas na mesma figura.
a) y = 2x5 + 5x2 – 3x + 1
b) f(x) = x3cos(x)

3) Utilize o comando hold para plotar na mesma figura as funções indicadas abaixo:
f(x) = ex cox(x) e f(x) = log (2 + sen x)

4) Use o comando linspace para construir o gráfico da função abaixo.


f(x) = ln (x2 -2x)

Computação Aplicada À Engenharia 32


Universidade Santa Cecília - Educação a Distância

5) Construir dois gráficos em um mesmo quadro, com dois espaços na janela, para
a função
f(x)= 0,6x5 – 5x3 +9x +2
No primeiro gráfico use o intervalo -4 < x < 4, e no segundo gráfico, use o intervalo
de
- 2,7 < x < 2.7

6) Use a função linspace para criar vetores idênticos aos vetores criados com a
notação (:) nos itens abaixo:
a) t = 4:3:25 b) x = -4:4 c) z = 2:0.1:10

7) Um circuito elétrico simples consistindo de um resistor, um capacitor e um indutor


está ilustrado na figura abaixo. A carga no capacitor q(t) como uma função do tempo pode
ser calculada como:

onde t é o tempo, q0 é a carga inicial, R é a resistência, L é a indutância e C é a


capacitância. Use o MAT LAB para gerar um gráfico dessa função de t = 0 a 0,8, dado que,
L = 9, R = 60, q0 = 10 e C = 0,00005.

8) A função de densidade de probabilidade normal é uma curva em forma de sino


que pode ser representada como:

Use o MATLAB para gerar um gráfico dessa função de z = –5 até 5. Identifique as


ordenadas como “Eixo de frequência” e as abscissas como “Eixo z”. Coloque um título no
gráfico “Curva de Gaus”.

Computação Aplicada À Engenharia 33


Universidade Santa Cecília - Educação a Distância

9) A posição x em função do tempo t de uma partícula que se move ao longo de uma


linha retilínea é dada por x(t) = 0,41t4 – 10,8t3 + 64t2 – 8,2t + 4,4.

A velocidade v(t) da partícula é determinada pela derivada de x(t) e a aceleração a(t)


é determina pela derivada de v(t), ambas em relação a t.

Determine as expressões para velocidade e aceleração da partícula e gere gráficos


da posição, velocidade e aceleração em função do tempo para 0<=t<=8.

Use o comando subplot para incluir os três gráficos em uma mesma janela, com o
gráfico de posição em cima, o de velocidade no meio e o de aceleração em baixo. Rotule
os eixos adequadamente incluindo as unidades das grandezas. O tempo é dado em
segundos e a distância em metros.

Nunca use uma variável com nome igual ao de uma função ou comando
MATLAB. Se fizer isso, aquela função do comando ficará inacessível.

Se deseja reutilizar o resultado de um cálculo no MATLAB, certifique-se de


incluir um nome de variável para armazenar o resultado. Caso contrário, o
resultado será sobrescrito na próxima vez que você executar um cálculo.

Computação Aplicada À Engenharia 34


Universidade Santa Cecília - Educação a Distância

3. SCRIPT – CONCEITOS E COMANDOS INICIAIS

Objetivo
Conhecer e aprender uma forma mais eficiente de escrever e executar os comandos
no MATLAB, através de scripts. Aprenderemos como os scripts funcionam como uma
coleção de comandos que são executados como se fossem digitados na janela de
comando.

Introdução
Aprendemos que a Janela de Comando funciona como uma calculadora muito
poderosa. Você digita um comando e o MATLAB o interpreta, ou executa, e mostra o
resultado imediatamente. É uma ótima maneira de trabalhar com comandos simples, mas
é uma maneira ruim de fazer qualquer coisa que envolva mais do que, meia dúzia de
etapas. Para realizar tarefas mais complicadas, você deve escrever seus comandos em um
arquivo. Isso é feito usando uma janela de edição (script), onde é possível corrigir e refazer
seus códigos de programa.

3.1. Comando New Script


A maneira de abrir a janela de edição e clicando no atalho, New Script, na aba
HOME, na parte superior a esquerda da tela, isso fará com que a janela de edição apareça
como mostrado na Figura 37. Observe que apareceu uma nova janela e uma nova aba
EDITOR.

Computação Aplicada À Engenharia 35


Universidade Santa Cecília - Educação a Distância

Figura 37- New Script

Após abrir a janela de edição, você pode digitar nela um texto, ele vai aparecer ao
lado esquerdo do número 1, o qual indica o número das suas linhas de códigos de seu
programa. Porém nada vai acontecer na sua janela de comando, quando você pressiona
enter uma nova linha surge na janela de edição. Nada mais acontece porque o MATLAB
não executa comandos conforme você os digita no editor.

3.1.1. Salvando um arquivo de edição (script)


Inicialmente, digite o comando (x = 5 ;) dentro desta janela de edição. Agora salve o
que você digitou no arquivo, clicando no botão SAVE na aba EDITOR. Em seguida, vai
aparecer uma janela de salvamento de arquivo, onde você pode escolher uma pasta
apropriada para armazenar o arquivo e um nome apropriado para o arquivo.

Neste caso, foi escolhida a mesma pasta que criamos no início do curso, com o nome
Teste. O nome do arquivo digitado para esse documento é “Primeira_nota”, Figura 38.

CUIDADO

Nunca crie um arquivo M com nome igual ao de uma função ou comando do


MATLAB.

Computação Aplicada À Engenharia 36


Universidade Santa Cecília - Educação a Distância

Figura 38 - Primeira_nota

Ao clicar em Salvar nesta janela, você terá criado um arquivo M. O “M” significa
MATLAB, e a extensão de arquivo usada pelo editor MATLAB é sempre (.m). É por causa
dessa extensão que o arquivo é chamado de M-file.

3.1.2. Executando um arquivo de edição (script)


Para executar, selecione a opção Run, seta verde na aba EDITOR ou simplesmente
digite o nome do arquivo sem a extensão (.m) na janela de comando, Figura 39.

Computação Aplicada À Engenharia 37


Universidade Santa Cecília - Educação a Distância

Figura 39 - Execução na janela de comando

Parabéns! Você é um programador de computador e provou isso.


Você escreveu um programa MATLAB (curto), armazenou-o em um arquivo, e
execute-o simplesmente digitando o nome do arquivo sem a extensão (.m).

Dentro da janela de edição, sempre digite um ponto e vírgula após os


comandos. Essa supressão de saída é muito mais importante para programas
escritos em M-files do que para comandos emitidos na janela de comando,
porque normalmente apenas o resultado final de um longo conjunto de
comandos em um M-file deve ser impresso.

3.1.3. Exemplos de um arquivo de script


No tópico “2.4. Exemplos de construções de gráficos e comandos” foi dado um
exemplo da construção de um gráfico sobreposto. Caso as linhas de comando desse
exemplo, Figura 32, fossem escritas em um arquivo .m, bastaria digitar o nome desse
arquivo na janela de comando e o gráfico seria imediatamente construído.

Computação Aplicada À Engenharia 38


Universidade Santa Cecília - Educação a Distância

Figura 40 - Exemplo 01 de script

Devemos fazer esse procedimento, arquivo script, sempre que tiver um grupo de
comandos muito grande e for preciso reeditar ou executar várias vezes. A Janela de Edição
é essencialmente um editor de texto de programação, com recursos da linguagem
MATLAB.

Na Figura 41 surgiram novos comandos, pesquise sobre eles utilizando o comando


help.
Figura 41 - Exemplo 02 de script

Computação Aplicada À Engenharia 39


Universidade Santa Cecília - Educação a Distância

Para esclarecer a maior parte das dúvidas acerca da utilização de uma dada
função do Matlab o comando help é de grande utilidade. Exemplo: help sin.

Como não é fácil decorar os nomes de todas as categorias de funções, existe


uma janela de ajuda mais organizada, escreva o comando: hepwin.

3.2. Funções
As funções ou function files são arquivos-M que começam com a palavra function.
Ao contrário dos scripts, as funções podem aceitar argumentos de entrada e retornar
saídas.

A sintaxe para a função pode ser representada genericamente como:


function [argumentos de saída] = nome_funcao (argumentos de entrada)

3.2.1. Exemplo de função


Para casos em que as funções retornam mais do que um resultado.
Essas variáveis com os resultados são separadas por vírgulas e delimitadas por
colchetes. Por exemplo, a função, estatistica.m, calcula a média e o desvio-padrão de um
vetor, Figura 41.

Figura 42 - Função estatistica

Computação Aplicada À Engenharia 40


Universidade Santa Cecília - Educação a Distância

Na janela de comando foram criados três exemplo de conjuntos de dados com


tamanhos diferentes. O comando length determina o tamanho do vetor definindo o tamanho
da amostra no momento dos cálculos da média e do desvio padrão.

3.3. Exercícios
1) Escrever um script pra desenhar a curva f(t) = t sem(t), da Figura 33 no tópico “2.4.
Exemplos de construções de gráficos e comandos”.

2) Reescrever e mandar executar como uma função, utilizando o comando function,


o exercício anterior.

3) Escrever um arquivo (.m), function, para construir o gráfico polar da Figura 34 do


tópico “2.4. Exemplos de construções de gráficos e comandos”.

4) Escreva a função para calcular a soma (utilizar o comando sum) de uma série
geométrica (1; q; q2; q3; q4; . . . ; qn) para um dado q e n. A entrada da function deve ser q
e n e a saída deve ser a soma da série. (pesquise na internet soma de Progressão
Geométrica - PG).

5) Gere um vector com um milhão de amostras obtidas com a função rand. Escreva
um arquivo .m (function) para calcular a média, o desvio padrão e desenhar o histograma
da amostra.

Computação Aplicada À Engenharia 41


Universidade Santa Cecília - Educação a Distância

4. CONDICIONAL ENCADEADA E ESTRUTURA DE REPETIÇÃO

Objetivo
Neste tópico introduziremos algumas das funções embutidas no MATLAB e suas
capacidades, com exemplos de computação interativa através de rotinas.

Introdução
O Matlab possui um conjunto de instruções que permitem a construção de
programas, também chamados de rotinas, que na verdade são uma sequência de
comandos encadeados entre si de uma maneira lógica.

Os programas mais simples executam instruções sequencialmente, isto é, linha por


linha, iniciando do primeiro comando e indo até o fim da lista de linhas. Como algumas
sequências podem ser um tanto complicadas, as linguagens computacionais de alto nível
incluem declarações que permitem aos programas tomar caminhos não sequenciais.

São duas as categorias de controle da ordem de execução das instruções dos


programas: ramificações, que selecionam seções específicas do código a serem
executadas, e laços, que fazem seções específicas da rotina serem repetidas.

4.1. Projeto de Programa


Para problemas de pequena complexidade a realização de um projeto de construção
de rotina, aparentemente é desnecessário, mas quando os problemas se tornam maiores,
pensar nesse projeto é fundamental para o sucesso na programação.

O conceito de projeto top-down é a base do processo formal de projeto de


programas. Em poucas palavras, você deve inicialmente entender o problema, em seguida
subdividi-lo em partes menores e a partir desse ponto resolver cada uma dessas partes
independentemente, para só depois combina-las no programa final.

Computação Aplicada À Engenharia 42


Universidade Santa Cecília - Educação a Distância

Figura 43 - Projeto de Programa

4.1.1. Etapa 1
Estabeleça claramente o problema que se pretende resolver. O programador da
rotina precisa conversar com o usuário que a solicitou, é primordial que os dois estabeleçam
claramente e com exatidão os objetivos do problema a ser resolvido pelo programa. O claro
estabelecimento do problema evita mal-entendidos e ajuda o projetista do programa a
organizar adequadamente o seu raciocínio.

Computação Aplicada À Engenharia 43


Universidade Santa Cecília - Educação a Distância

4.1.2. Etapa 2
Defina os dados de entrada do programa e os dados de saída produzidos por ele.
As entradas para o programa e as saídas produzidas por ele precisam ser devidamente
especificadas quanto ao seu tipo e a ordem em que serão informadas no programa.

4.1.3. Etapa 3
Projete o algoritmo que vai ser implementado no programa, o qual representa o
procedimento passo a passo para encontrar a solução de um problema. O programador
estabelece divisões lógicas no problema, e o divide em subtarefas de acordo com essas
divisões. Caso as subtarefas sozinhas sejam grandes, o programador pode outra vez
subdividi-las em subtarefas ainda menores. O processo se repete até que a subtarefa seja
simples e de fácil solução. Esse processo é chamado decomposição.

Após a decomposição do problema em partes menores, cada parte é refinada e


então se define as funções em detalhes, até que elas se tornem específicas o suficiente
para serem transformadas em expressões MATLAB.

Costuma ser útil resolver à mão durante o processo de desenvolvimento do algoritmo


um exemplo simples do problema. O entendimento dos passos seguidos durante a
resolução do problema à mão, facilitara a decomposição do problema e seu refinamento
passo a passo

4.1.4. Etapa 4
Transforme o algoritmo em expressões da linguagem de programação MATLAB. Se
o processo de decomposição e refinamento foi executado adequadamente, este etapa do
processo será simples.

4.1.5. Etapa 5
Teste o programa MATLAB resultante.
Este passo é muito importante. Cada uma das partes do programa, sub-rotinas,
devem ser testadas primeiro individualmente, se possível, para depois testar o programa
por inteiro. Se o algoritmo implementado em um programa inclui ramificações diferentes,
precisamos testar todas as possíveis ramificações para garantir que o programa opere

Computação Aplicada À Engenharia 44


Universidade Santa Cecília - Educação a Distância

corretamente sob qualquer circunstância possível. Esse teste exaustivo é também chamado
de teste de mesa, onde simulamos a entrada de dados conhecidos e verificamos se as
respostas estão corretas. Em programas realmente grandes, pode ser quase impossível
detectar todas as falhas da rotina, de modo que os bugs podem ser descobertos depois
que o programa tiver ficado em uso regular por um certo tempo.

4.2. Laços, ramificações e controle de fluxo

4.2.1. Operadores lógicos e relacionais


A finalidade dos operadores é fornecer respostas a perguntas do tipo
falso/verdadeiro.

Assim, se a comparação for verdadeira, atribui-se o valor 1; se for falsa, o valor 0.

Operador Descrição
< Menor que
<= Menor ou igual a
> Maior que
>= Maior ou igual a
== Igual a (no sentido de condição)
~= Não igual a

Exemplo: Considere a seguinte expressão lógica a < b.


 Se a e b forem escalares, então o valor da expressão será 1 (verdadeira) se a for
menor que b; caso contrário, a expressão será 0 (falsa).
 Se a e b forem vetores com os valores a seguir: a = [2 4 6] e b = [3 5 1].
 Então, o valor de a < b será o vetor [1 1 0], enquanto o valor de a ~ = b será [1 1 1]

Podemos combinar expressões usando os operadores lógicos do MATLAB. Os


operadores

Computação Aplicada À Engenharia 45


Universidade Santa Cecília - Educação a Distância

são representados pelos seguintes símbolos:


Operadores Descrição
& e
| ou
~ não

Quando duas expressões são unidas por e; o resultado será 1 (verdadeiro) se ambas
expressões forem verdadeiras, para expressões unidas por ou, o resultado será 1
(verdadeiro) se uma ou ambas expressões forem verdadeiras. Assim, para a seguinte
expressão lógica: a < b & b < c

O resultado será 1 (verdadeiro) somente se a < b < c; e falso (0) para todos
resultados diferentes. Além disso, a operação só será válida se as matrizes resultantes (a
< b e b < c) tiverem o mesmo tamanho.

4.2.2. A estrutura if
Esta instrução permite a execução condicional de um código tendo em conta uma
dada condição lógica. A estrutura é a seguinte:
if condição,
instrução 1
instrução 2
...
else
instrução 3
instrução 4
...
end

Se a condição for verdadeira são executadas as instruções 1 e 2, senão serão


executadas as instruções 3 e 4. A diretiva end no final indica o fim da instrução if. Onde a
condição é uma expressão lógica que pode ser verdadeira ou falsa. Por exemplo, Figura
44, tem-se uma função simples que determina se uma nota escolar é suficiente ou não para
a aprovação:

Computação Aplicada À Engenharia 46


Universidade Santa Cecília - Educação a Distância

Figura 44 - Exemplo extrutura IF

Na forma mais simples a diretiva else pode ser omitida.

4.2.3. A estrutura if...elseif


Esse tipo de estrutura ocorre quando temos mais de duas opções para resolver
determinado problema. Para tais casos, foi desenvolvida uma forma especial de estrutura
de decisão, a if...elseif, e tem a seguinte sintaxe genérica:

if condição1
instruções1
elseif condição2
instruções 2
elseif condição3
instruções 3
.
.
.
else
instruções _ else
end

Computação Aplicada À Engenharia 47


Universidade Santa Cecília - Educação a Distância

Exemplo: Para um escalar, desenvolva uma função no MATLAB que retorne o sinal
de seu argumento (-1,0,1), observe a Figura 45.

Figura 45 - Extrutura if ... elseif

4.2.4. Laços extrutura for


Este tipo de extrutura permite a repetição de um conjunto de instruções. A sintaxe
de utilização é a seguinte:
for variável= início :passo: fim,
Instrução 1
Instrução 2
...
end

Um laço for repete instruções um número específico de vezes.

O laço for funciona da seguinte forma: o índice é uma variável definida com um valor
inicial, início; o programa, então, compara a variável índice com o valor final desejado, fim.
Se o índice for menor ou igual à variável fim, o programa executará as instruções. Quando
ele chega à linha end, que caracteriza o fim do laço, a variável índice é incrementada pelo
valor da variável passo e o programa retorna à declaração for. O processo continua até o

Computação Aplicada À Engenharia 48


Universidade Santa Cecília - Educação a Distância

índice tornar-se maior que o valor de fim; neste ponto, o laço é encerrado e o programa
salta para a linha imediatamente após a instrução end.

Exemplo: Desenvolva uma função no MATLAB para calcular o fatorial, Figura 46.

Figura 46 - Extrutura for

Para o fatorial de 10, o laço executará 10 vezes (de 1 a 10). No fim do processo, a
variável x terá o valor de 10! = 1x2x3x4x5x6x7x8x9x10 = 3628800.

4.2.5. Laços extrutura while


Um laço while repete enquanto uma condição lógica for verdadeira, e apresenta a
seguinte sintaxe genérica:
while condição
instruções
end

Computação Aplicada À Engenharia 49


Universidade Santa Cecília - Educação a Distância

4.3. Comandos importantes

4.3.1. Iniciando Variáveis com Entrada a partir do Teclado


A função input exibe uma linha de aviso na Janela de Comandos e espera o usuário
digitar uma resposta. Esta opção permite que um arquivo de script solicite a um usuário a
entrada de valores de dados durante a execução. Por exemplo, considere a seguinte
expressão:
my_val = input(‘Digite um valor para a variável:’);

Quando o comando é executado, o MATLAB imprime a mensagem ‘Digite um valor


para a variável:’ e espera a resposta do usuário. Caso a resposta seja um único número,
ele pode ser simplesmente digitado. Se fornecer uma matriz, ela precisa ser colocada entre
colchetes. De qualquer maneira, o que for digitado será armazenado na variável my_val
quando a tecla de retorno for pressionada.

4.3.2. Saída formatada com a função fprintf


A função fprintf exibe um ou mais valores juntamente com o texto relacionado e
permite ao programador controlar a maneira como os valores são exibidos. Sua forma geral,
quando utilizada para exibir dados na Janela de Comandos, é:
fprintf (format, data)

O format contém texto a ser apresentado, mais caracteres especiais descrevendo o


formato dos dados e data é um ou mais escalares ou matrizes a serem impressos. Exemplo:
fprintf(‘O valor do pi é %6.2f \n’,pi)

Os caracteres de conversão %6.2f indicam que o primeiro item de dados na função


deveria ser apresentado em formato de ponto flutuante em um campo com seis caracteres
de largura, incluindo dois dígitos depois do ponto decimal. Caracteres Especiais Comuns
em format:

Computação Aplicada À Engenharia 50


Universidade Santa Cecília - Educação a Distância

Código de Formatação Resultados

%d Exibe valor como inteiro.


%e Exibe valor em formato exponencial.
%f Exibe valor em formato de ponto flutuante.
%g Exibe valor em formato de ponto flutuante
ou exponencial, o que for mais curto.
\n Muda de linha.

4.3.3. Arquivo de dados - save


O comando save grava dados do espaço de trabalho MATLAB corrente em um
arquivo de disco. A forma mais comum deste comando é: save filename var1 var2 var3.
Onde filename é o nome do arquivo em que as variáveis var1, var2, etc são gravadas.

Por exemplo, suponha que a matriz x seja definida como x =[1.23 3.14 6.28; -5.1
7.00 0];

Então, o comando “save x.dat x -ascii” produzirá um arquivo denominado x.dat que
contém os dados a seguir:
1.2300000e+000 3.1400000e+000 6.2800000e+000
-5.1000000e+000 7.0000000e+000 0.0000000e+000

Esses dados estão em um formato que pode ser lido por planilhas ou programas
escritos em outras linguagens, o que facilita o compartilhamento de dados entre programas
MATLAB e outras aplicações.

O comando load é o oposto do comando save. Ele carrega dados de um arquivo de


disco para o espaço de trabalho atual do MATLAB. A forma mais comum deste comando
é:
load filename
em que filename é o nome do arquivo a ser carregado.

A expressão load pode ser forçada a tratar um arquivo como arquivo MAT,
especificando a opção -mat. Por exemplo, a expressão:

Computação Aplicada À Engenharia 51


Universidade Santa Cecília - Educação a Distância

load –mat x.dat

A função trataria o arquivo x.dat como arquivo MAT, apesar de a extensão não ser
.mat. De forma similar, a expressão load pode ser forçada a tratar um arquivo como ASCII
especificando a opção -ascii. Essas opções permitem que o usuário carregue um arquivo
adequadamente mesmo se sua extensão de arquivo não corresponder às convenções
MATLAB.

Lembrem que:

Para esclarecer a maior parte das dúvidas acerca da utilização de uma dada
função do Matlab o comando help é de grande utilidade.

Como não é fácil decorar os nomes de todas as categorias de funções, existe


uma janela de ajuda mais organizada, para acessar utilize o comando:
hepwin.

4.4. Estudo de caso: Análise Estatística


A seguir será reproduzido o exemplo apresentado pelo autor Chapman (2016) em
seu livro “Programação em MATLAB para engenheiros”, com pequenas adaptações, para
um melhor entendimento de todo o processo de elaboração de um programa em linguagem
MATLAB.

Em ciências trabalhamos frequentemente com grandes quantidades de dados, os


quais são informações de algumas propriedades em particular nas quais estamos
interessados para fundamentar nossas tomadas de decisão ou obter soluções de
problemas propostos.

Um exemplo seriam as notas dos alunos de uma das provas deste curso. Cada nota
seria uma medida de quanto um estudante em particular aprendeu no curso até o momento.

Nosso proposito e realizar uma análise sobre o desempenho de uma forma geral da
turma.

Computação Aplicada À Engenharia 52


Universidade Santa Cecília - Educação a Distância

Duas medidas estatísticas importantes e fundamentais são: a nota média dos alunos
e a variabilidade dessas notas obtida através do desvio padrão do conjunto de dados.

A média estatística e o desvio padrão de um conjunto de números são definidos


como:

∑𝑛 (𝑥𝑖 )2 −(∑𝑛 𝑥𝑖 )2
𝑆 = √ 𝑖=1 𝑖=1
𝑛−1

Nosso programa consiste em Implementar um algoritmo que leia um conjunto de medidas


e calcule a média e o desvio padrão do conjunto de dados de entrada.

Solução: Esse programa precisa ser capaz de ler uma quantidade arbitrária de
medidas e calcular a média e o desvio padrão delas. Vamos utilizar um laço while para
acumular as medidas de entrada antes de efetuar os cálculos.

Depois que todas as medidas forem lidas, será necessário informar, de alguma
maneira, ao programa que não há mais dados a serem fornecidos. Vamos assumir que
todas as medidas de entrada sejam positivas ou zero, e utilizar um valor de entrada negativo
como indicador de que não há mais dados a serem lidos. Se um valor negativo for fornecido,
o programa interromperá a leitura dos valores de entrada e calculará a média e o desvio
padrão do conjunto de dados.

Etapas:
1. Estabeleça o problema.
Como assumiremos que os números de entrada precisam ser positivos ou zero, uma
apresentação apropriada do problema seria: calcule a média e o desvio padrão de um
conjunto de medidas, assumindo que todas elas são positivas ou zero e que não sabemos
quantas estão incluídas no conjunto de dados. Um valor negativo indica o final do conjunto
de medidas.

2. Defina as entradas e saídas.


Os dados de entrada requeridos por esse programa são um número desconhecido
de números positivos ou iguais a zero. Os dados de saída desse programa são a média e
o desvio padrão do conjunto de dados de entrada. Além disso, exibiremos o número de

Computação Aplicada À Engenharia 53


Universidade Santa Cecília - Educação a Distância

pontos fornecidos ao programa, uma vez que essa é uma verificação útil da correção dos
dados de entrada.
3. Projete o algoritmo.
Esse programa pode ser subdividido em três passos principais:
 Acumule os dados de entrada
 Calcule a média e o desvio padrão
 Escreva a média, o desvio padrão e o número de pontos

O primeiro passo do programa é acumular os dados de entrada. Para isso, temos de


solicitar os números ao usuário. Quando os números forem inseridos, precisaremos
registrar o número de valores fornecidos, sua soma e a soma dos quadrados desses
valores. Um pseudocódigo para esses passos é:
 Inicializar n, sum_x, and sum_x2 to 0
 Solicitar ao usuário o primeiro número
 Leia o primeiro valor de x
 while x > = 0

n ← n + 1

 sum_x ← sum_x + x

 sum_x2 ← sum_x2 + xˆ2

 Solicitar ao usuário o próximo número


 Leia a seguir x
 end

Depois, precisamos calcular a média e o desvio padrão. O pseudocódigo para esse


passo são:
 x_bar ← sum_x / n
 std_dev ← sqrt((sum_x2 - sum_xˆ2) / ((n-1)))

Para finalizar, precisamos publicar os resultados.


 Escreva o valor médio x_bar
 Escreva o desvio padrão std_dev
 Escreva o número de pontos de dados de entrada n

Computação Aplicada À Engenharia 54


Universidade Santa Cecília - Educação a Distância

4. Transforme o algoritmo em expressões MATLAB.


% Arquivo de script: stats_2.m
%
% Propósito:
% Para calcular a média e o desvio padrão de
% um conjunto de dados de entrada contendo um número arbitrário
% dos valores de entrada.
%
% Registro:
% Data Engenheiro Descrição
% ==== ========== =====================
% 24/01/14 S. J. Chapman Código original
%
% Definir variáveis:
% n -- O número de amostras de entrada
% std_dev -- O desvio padrão das amostras de entrada
% sum_x -- A soma dos valores de entrada
% sum_x2 -- A soma dos quadrados dos valores de entrada
% x -- Um valor de dados de entrada
% xbar -- A média das amostras de entrada
% Inicializa somas.
n = 0; sum_x = 0; sum_x2 = 0;
% lido no primeiro valor
x = input ('Digite o primeiro valor: ');
% While Loop para ler os valores de entrada.
while x >= 0
% Somas acumuladas.
n = n + 1;
sum_x = sum_x + x;
sum_x2 = sum_x2 + xˆ2;
% Ler no próximo valor
x = input ('Digite o próximo valor:');
end
% Verifique se temos dados de entrada suficientes.
if n < 2

Computação Aplicada À Engenharia 55


Universidade Santa Cecília - Educação a Distância

% Informação insuficiente
disp ('Pelo menos 2 valores devem ser inseridos!');
else
% Há informações suficientes, então
% calcule a média e o desvio padrão
x_bar = sum_x / n;
std_dev = sqrt((sum_x2 - sum_xˆ2)/((n-1)));
% Informe o usuário.
fprintf('A média deste conjunto de dados é: %f\n', x_bar);
fprintf('O desvio padrão é: %f\n', std_dev);
fprintf('O número de pontos de dados é: %f\n', n);
end

Importante observar que a média e o desvio padrão poderiam serem calculados com
as funções integradas mean e std do MATLAB se os valores de entrada fossem
armazenados em um vetor.

5. Teste o programa.
Para testar esse programa, vamos calcular à mão as respostas para um conjunto
simples de dados, e então compará-las com os resultados do programa. Se utilizarmos três
valores de entrada: 3, 4 e 5, a média e o desvio padrão seriam:

4.5. Exercícios
1) Escreva um arquivo M para avaliar a equação y(x) = x2 - 3x + 2 para todos os
valores de x entre -1 e 3, em etapas de 0,1. Faça isso duas vezes, uma com laços for e

Computação Aplicada À Engenharia 56


Universidade Santa Cecília - Educação a Distância

uma com vetores. Desenhe a função resultante utilizando uma linha vermelha espessa e
tracejada de três pontos.

2) Examine os seguintes laços for e determine o valor de ires no fim de cada laço e
também o número de vezes em que cada laço é executado.
a) ires = 0;
for index = -10:10
ires = ires + 1;
end

b) ires = 0;
for index = 10:-2:4
if index == 6
continue;
end
ires = ires + index;
end

c) ires = 0;
for index = 10:-2:4
if index == 6
break;
end
ires = ires + index;
end

d) ires = 0;
for index1 = 10:-2:4
for index2 = 2:2:index1
if index2 == 6
break
end
ires = ires + index2;
end
end

Computação Aplicada À Engenharia 57


Universidade Santa Cecília - Educação a Distância

3) Examine as seguintes expressões for e determine quantas vezes cada laço será
executado.
(a) for ii = -32768:32767
(b) for ii = 32768:32767
(c) for kk = 2:4:3

4) Escreva um único programa que calcule as médias aritmética, geométrica e


harmônica para uma coleção de números positivos. Utilize o método que você preferir para
ler os valores de entrada. Compare esses valores para os seguintes conjuntos de números:
(a) 4, 4, 4, 4, 4, 4, 4
(b) 4, 3, 4, 5, 4, 3, 5
(c) 4, 1, 4, 7, 4, 1, 7
(d) 1, 2, 3, 4, 5, 6, 7

Computação Aplicada À Engenharia 58


Universidade Santa Cecília - Educação a Distância

5. MATRIZES E DETERMINANTE NO MATLAB

Objetivo
Aprender a criar e a manipular matrizes com o MATLAB.
Aprender como atribuir valores a vetores e matrizes utilizando a atribuição simples.
Realizar operações com matrizes.

Introdução
A visualização dos dados é um fator importante na solução de problemas de
engenharia. Podemos representar conjunto de dados usando um tipo especial de estrutura
de dados

denominada matriz.
A matriz é a unidade fundamental de dados em qualquer programa MATLAB. Ela é
uma coleção de valores de dados distribuídos em um certo número de linhas e colunas e
conhecidos por um único nome. Uma matriz é uma estrutura de dados bidimensional que
permite guardar números de uma forma ordenada e indexável.

5.1. Vetores e matrizes


Um arranjo é uma coleção de valores representados por um único nome de variável.

Podem ser de dois tipos: arranjos unidimensionais são chamados vetores e arranjos
bidimensionais são chamados matrizes. Os vetores, coluna e linha, são casos particulares
de matrizes e são criados utilizando a mesma notação de matriz.

Vamos criar e definir as matrizes do exemplo no tópico anterior na linguagem do


MATLAB.
A = [5, 7, -3] C = [2, 0, 3; -1, 5, 1] ou C = [2 0 3 ; -1 5 1]
O ponto-e-vírgula separa as linhas, e os valores das linhas podem estar separados
por vírgulas ou por espaços.

5.1.1. Operadores (:) e (‘)


Para criar um vetor com uma sequência de números, é possível usar o operador dois
pontos (:), muito útil na criação de matrizes ou vetores. Exemplo:

Computação Aplicada À Engenharia 59


Universidade Santa Cecília - Educação a Distância

>> A = 3:1:7 cria a matriz A=[3 4 5 6 7]


>> B = 3:2:7 cria a matriz B=[3 5 7]
>> D = 3:0.5:7 cria a matriz D = [3 3.5 4 4.5 5 5.5 6 6.5 7 ]
Quando utilizamos o operador (’) obtemos a matriz transposta. Exemplos na Figura
47.

Figura 47 - Criação de Matriz

5.1.2. As funções linspace e logspace


Nem sempre é fácil saber quantos pontos estarão na matriz. Por exemplo, você
consegue saber quantos pontos teria na matriz definida por 0:pi:10?

Não há nenhuma garantia de que o último ponto, o valor 10, especificado estará na
matriz, porque o incremento poderia exceder esse ponto.

O MATLAB possui duas funções para gerar uma matriz de pontos em que o usuário
possui controle total dos limites exatos da matriz e da quantidade de pontos na matriz.

Essas duas funções são linspace, que gera um espaçamento linear entre as
amostras e, que produz um espaçamento logarítmico entre as amostras. Ele tem a forma:
 linspace (x1, x2, n) Onde x1 é o primeiro ponto da sequência o x2 o último ponto
e n é a quantidade total de ponto.

Computação Aplicada À Engenharia 60


Universidade Santa Cecília - Educação a Distância

 logspace (x1, x2, n) que gera n pontos logaritmicamente espaçados entre as


potencias de 10x1 e 10x2, ver a Figura 48.

Figura 48 - Criar vetor

5.1.3. Manipulação de matrizes


As expressões utilizadas para iniciar matrizes podem incluir operações algébricas e
a totalidade ou partes de matrizes previamente definidas. Por exemplo, as expressões de
atribuição
a = [0 1+7]; % definirá uma matriz a = [0 8]
b = [a(2) 7 a]; % definira a matriz b = [8 7 0 8]

5.1.4. Funções integradas de matrizes


A função zeros é uma das funções integrada do MATLAB, e pode ser utilizada para
criar uma matriz de zeros do tamanho desejado. Existem várias formas da função zeros.
Quando a função tiver um único argumento escalar, ela produzirá uma matriz quadrada
utilizando o argumento único como o número de linhas e de colunas da matriz. Caso a
função tenha dois argumentos escalares, o primeiro será o número de linhas e o segundo,
o número de colunas. Exemplos:

Computação Aplicada À Engenharia 61


Universidade Santa Cecília - Educação a Distância

a = zeros (2);
b = zeros (2,3);
c = [1 2; 3 4];
d = zeros (size (c));

Obs.: A função size retorna dois valores com o número de linhas e colunas de uma
matriz.

De maneira similar, a função ones pode ser utilizada para gerar matrizes que contêm
somente números um. A função eye para gerar matrizes contendo matrizes de identidade,
nas quais todos os elementos da diagonal principal são iguais a um e os outros elementos,
zero. Exemplos:
A1 = ones (3,2) [1 1 1 1 1 1 ] A2 = eye(3) [1 0 0 0 1 0 0 0 1 ]

Lembrem que: o MATLAB possui um enorme número de funções. Para


esclarecer a maior parte das dúvidas acerca da utilização de uma dada função
do Matlab o comando help é de grande utilidade.

Como não é fácil decorar os nomes de todas as categorias de funções, existe


uma janela de ajuda mais organizada, para acessar utilize o comando:
hepwin.

5.2. 5.2. Operações


Existem três formas comuns de iniciar uma variável no MATLAB: associar dados à
variável em uma expressão apropriada; fornecer dados à variável a partir do teclado
(4.3.1.Iniciando Variáveis com Entrada a partir do Teclado); ler dados de um arquivo
(4.3.3.Arquivo de dados – save).
Exemplos:
>> x1 = 2+7i;
>> x2 = [2 3 7 12 8];
>> x3 = 7:0.1:9
>> x4 = [2 7 1; 9 -3 4]

Computação Aplicada À Engenharia 62


Universidade Santa Cecília - Educação a Distância

O último exemplo mostra que as variáveis também podem ser inicializadas com
matrizes de dados. Essas matrizes são construídas usando colchetes ([ ]) e o ponto com a
vírgula. Todos os elementos de uma matriz são listados por linha.

5.2.1. Subtração e Adição


A operação de adição ou de subtração e efetuada somando ou subtraindo,
respectivamente, elementos que ocupem as mesmas posições nas matrizes. Portanto elas
devem ter as mesmas dimensões (Smxn = Amxn + Bmxn ). Exemplos na Figura 49.

Figura 49 - Operações adição e subtração

5.2.2. Multiplicação
O cálculo para multiplicação de matizes deve obedecer às regras da álgebra linear.
O produto de duas matrizes é representado por [C] = [A][B], em que os elementos
de [C] são definidos como

De acordo com essa definição, a multiplicação de matrizes pode ser efetuada apenas
quando a primeira matriz tem tantas colunas quanto o número de linhas da segunda matriz.

Computação Aplicada À Engenharia 63


Universidade Santa Cecília - Educação a Distância

Dado as matrizes abaixo, calcule: A * X = B

O cálculo para determinar B é:

Exemplo:

5.2.3. Divisão
Em álgebra linear só é possível efetuar a operação de divisão entre matrizes se uma
das matrizes tiver inversa. Quando uma matriz possui matriz inversa o produto entre elas e
igual a matriz identidade, e a comutativa também é válida.
O operador de divisão a esquerda é usado, entre outras coisas, para resolver a equação
matricial AX = B, onde X e B são vetores colunas.
Exemplo:
A = [1 2 3 4 ] X= [𝑥 𝑦 ] B= [5 11 ] se AxA-1 = A-1x A = I então A-1 é a inversa
de A
Fazendo as devidas verificações encontramos a inversa de A igual a A-1 =
[−2 1 3/2 − 1/2 ]
A partir dessa certeza podemos resolver a seguinte equação matricial

AX = B 🡪 A-1 A X = A-1 B 🡪 I X = A-1 B 🡪 X = A-1 B


3 1
Portanto [𝑥 𝑦 ] = [−2 1 3/2 − 1/2 ][5 11 ] 🡪 [𝑥 𝑦 ] = [(−2 ∗ 5 + 1 ∗ 11) ∗ 5 − ∗ 11 ]
2 2

🡪 [𝑥 𝑦 ] = [1 2 ]

Computação Aplicada À Engenharia 64


Universidade Santa Cecília - Educação a Distância

O MATLAB utiliza o operador divisão a esquerda (\) para chegar nessa mesma
solução, a qual é obtida pelo método de Gauss, considerado mais preciso, principalmente
quando as dimensões das matrizes são maiores, observe a Figura 50.

Figura 50 - Divisão a esquerda

5.2.4. Operações escalares envolvendo elementos de matriz


Verificamos nos tópicos anteriores envolvendo operações com matrizes que as
regras da álgebra linear devem ser aplicadas rigorosamente, mas existem situações que
requerem operações escalares envolvendo os elementos de um vetor ou uma matriz
indicada por operações elemento por elemento.

O MATLAB indica esse tipo de operação na multiplicação, divisão e exponenciação


digitando um ponto antes do operador aritmético.

Dadas as matrizes A e B, as operações escaleres entre elas ocorem da seguinte


forma:

Computação Aplicada À Engenharia 65


Universidade Santa Cecília - Educação a Distância

Observe na Figura 51 exemplos de operações escalares de multiplicação, divisão e


exponenciação com matrizes envolvendo seus elementos correspondentes.

Figura 51 Operações elemento a elemento

Computação Aplicada À Engenharia 66


Universidade Santa Cecília - Educação a Distância

5.2.5. Exemplos de operações entre matrizes e escalares


Dado os valores de a, b, c, e d abaixo,

Verifique o resultado de cada uma das seguintes expressões:

1) a + b é uma soma com matriz

2) a .* b é uma multiplicação elemento por elemento com


vetor

3) a * b é uma multiplicação com matriz

4) a * c é uma multiplicação com matriz

5) a + c operação é ilegal, porque a e c possuem números de colunas diferentes

6) a + d é uma soma de um vetor para um escalar

7) a .* d é uma multiplicação de vetor

8) a * d é uma multiplicação de matriz

5.2.6. Determinantes
O Determinante é um número associado a uma matriz quadrada, ou seja, uma matriz
que apresenta o mesmo número de linhas e de colunas. O algoritmo para calcular um
determinante de ordem 2, de uma matriz com 2 linhas e duas colunas é definido pela

Computação Aplicada À Engenharia 67


Universidade Santa Cecília - Educação a Distância

expressão: det(A) = a11 a22 – a21 a12, é a diferença entre o produto dos elementos da
diagonal principal e o produto dos elementos da diagonal secundária. Existem formas
diferentes de resolução, a regra de Sarrus por exemplo é uma técnica de resolução.
Exemplos: A = [1 2 3 4 ] o valor do seu determinante é 1*4 -2*3 🡪 det(A) = -2

Como resolver este?


Teorema de Laplace ou Regra de Sarrus ou ...
Use o MATLAB, Figura 52.

Figura 52 - Cáculo de determinante

5.3. Exercícios
Utilizando o MATLAB, resolva os exercícios a seguir.

1) Dada uma matriz quadrada A, escreva uma única linha de comando do MATLAB que
cria uma nova matriz A que consista na matriz original A aumentada por sua matriz
identidade.

Computação Aplicada À Engenharia 68


Universidade Santa Cecília - Educação a Distância

2) Determine o tamanho e o conteúdo das matrizes a seguir. Observe que as últimas


matrizes podem depender das definições das matrizes anteriores neste exercício.
a) a = 2:3:8; b) b = [a’ a’ a’];
c) c = b(1:2:3,1:2:3); d) d = a + b(2,:);
e) w = [zeros(1,3) ones(3,1)’ 3:5’]; f) b([1 3],2) = b([3 1],2); g) e = 1:-1:5;

3) Assuma que a, b, c e d são definidas conforme a seguir e calcule os resultados das


seguintes operações se elas forem legais. Se uma operação for ilegal, explique o motivo.

a) result = a + b; b) result = a * d;
c) result = a .* d; d) result = a * c;
e) result = a .* c; f) result = a \ b;
g) result = a .\ b; h) result = a .ˆ b;

4) A distância entre dois pontos (x1, y1, z1) e (x2, y2, z2) em um sistema de coordenadas
tridimensional cartesiano é fornecida pela equação:
Escreva um programa para calcular a distância entre dois pontos quaisquer (x1, y1, z1) e
(x2, y2, z2) especificado pelo usuário. Use o programa para calcular a distância entre os
pontos (-3, 2, 5) e (3,-6,-5).

5) Gere uma sequência de números múltiplos de 3 compreendidos entre 100 e 132,


dispostos num vector por ordem decrescente.

6) Crie uma matriz com dimensão 4 × 4 em que cada coluna seja o vector v = [1, 2, 3, 4].

7) Construa um vector linha x constituído pelos números inteiros pares pertencentes ao


intervalo [1 . . . 8]. Calcule os valores próprios da matriz resultante do produto x’* x.

Computação Aplicada À Engenharia 69


Universidade Santa Cecília - Educação a Distância

6. SISTEMAS LINEARES - MÉTODO DE ELIMINAÇÃO DE GAUSS

Objetivo
Utilizar o algoritmo da eliminação de Gauss para resolver equações algébricas
lineares.
Resolver sistemas de equações lineares utilizando os métodos diretos.

Introdução
A técnica de eliminação de Gauss, envolve combinar equações para eliminar
variáveis. Apesar de ser um dos métodos mais antigos para resolver equações simultâneas,
é ainda um dos algoritmos mais importantes em uso até a data atual, e é a base da
resolução de equações lineares em muitos pacotes de software populares, incluindo o
MATLAB.

Os métodos diretos são implementados no núcleo do software MATLAB e são feitos


da forma mais eficiente possível para classes gerais de matrizes. Os métodos diretos são
geralmente variantes da eliminação gaussiana.

6.1. Sistemas de equações lineares


Um sistema linear de m equações e n incógnitas é um conjunto de m equações
lineares onde cada uma possui n variáveis. A solução do sistema linear é uma sequência
de números x1, x2, x3, ..., xn que é solução de cada equação do sistema.

Para resolver estes sistemas há diversos métodos, como o Método de Gauss,


Método da matriz inversa, Regra de Cramer entre outras.

6.1.1. Métodos para resolução de sistemas de equações


Os métodos mais usuais utilizados na solução de sistemas de equações com até
três variáveis são: regra de Cramer; método gráfico e a eliminação de variáveis.

Computação Aplicada À Engenharia 70


Universidade Santa Cecília - Educação a Distância

6.1.2. Método gráfico


Utilizado para resolver sistemas com duas ou três equações lineares, não é viável
para mais de três equações. Uma para duas equações pode ser obtida construindo seus
gráficos no plano cartesiano ortogonal, com um eixo correspondente a x1 (abscissa) e o
outro a x2 (ordenada). Como estamos lidando com sistemas lineares, cada equação é uma
reta, a Figura 53 ilustra essa solução.
Figura 53 - Plano 2d

Para três equações simultâneas, cada equação seria representada por um plano em
um sistema de coordenadas tridimensional. O ponto no qual os planos se interceptam irá
representar a solução, verifique o ponto da intersecção dos planos na cor amarela,
vermelha e verde, na Figura 54. Uma visualização difícil.

Computação Aplicada À Engenharia 71


Universidade Santa Cecília - Educação a Distância

6.1.3.
Figura SEQ Figura \* ARABIC 54 - Plano 3D

Há, ainda, sistemas que estão muito próximos de serem singulares os chamados
mal condicionados, que também podem causar problemas. Em termos gráficos, isso
significa que é difícil identificar o ponto exato no qual as retas se interceptam, e que também
causarão problemas quando forem encontrados durante as soluções numéricas de
equações lineares, porque são extremamente sensíveis a erros de arredondamento.

6.1.4. Método - Regra de Cramer


A solução é baseada na técnica de cálculo do valor numérico de determinantes. Os
determinantes são importantes para avaliar o mau condicionamento de uma matriz.

Consideremos o sistema de equações lineares Ax = b. Suponha que A seja uma


matriz n × n invertível (portanto, det(A) 6= 0) e x = (x1, x2, . . . , xn) e b = (b1, b2, . . . , bn) são
elementos do Rn. A solução do sistema é dada pela regra de Cramer é a seguinte:

Computação Aplicada À Engenharia 72


Universidade Santa Cecília - Educação a Distância

Onde Mi é a matriz obtida de A pela substituição da i-ésima coluna pelo vetor coluna
b.
O exemplo a seguir pode ilustrar melhor o método. Dado o sistema de equações:

0,3x1 + 0,52x2 + x3 = − 0,01

0,5x1 + x2 + 1,9x3 = 0,67

0,1x1 + 0,3 x2 + 0,5x3 = − 0,44

O determinante da matriz, A, formada pelos coeficientes das variáveis é

A=

A solução é obtida através dos cálculos:

Todos esses cálculos podem ser feitos utilizando o MATLAB, ver Figura 55, porém
para sistemas com mais de três equações, a regra de Cramer torna-se impraticável. À
medida que o número de equações cresce, os determinantes demoram mais para ser
calculados à mão, ou pelo computador. Por essa razão, são usadas alternativas mais
eficientes, algumas baseadas na eliminação de variáveis, método de Gauss.

Computação Aplicada À Engenharia 73


Universidade Santa Cecília - Educação a Distância

Figura 55 - Aplicação da regra de Cramer

Foi calculado somente o valor da variável x1 = -14.9, faltam x2 e x3.

6.1.5. Método – eliminação de variáveis


A eliminação de variáveis pela combinação de equações é uma abordagem algébrica,
baseada nas propriedades de matrizes, que pode ser ilustrada para um conjunto de duas
equações:
a11x1 + a12x2 = b1 (1)
a21x1 + a22x2 = b2 (2)

A estratégia básica é multiplicar as equações por constantes de modo que uma das
variáveis seja eliminada quando as duas equações são combinadas. O resultado é uma
única equação, que pode ser resolvida determinando a variável restante. Então, esse valor
pode ser substituído em qualquer uma das equações originais para calcular a outra variável.

Por exemplo, a Equação (1) pode ser multiplicada por a21, e a Equação (2) por a11.
a21a11x1 + a21a12x2 = a21b1 (3)
a11a21x1 + a11a22x2 = a11b2 (4)

Computação Aplicada À Engenharia 74


Universidade Santa Cecília - Educação a Distância

Subtrair a Equação (3) da Equação (4) irá, portanto, eliminar o termo x1 da equação,
que pode ser resolvida por:

A qual pode então ser substituída na Equação (1), e é resolvida por:

Esse método pode ser estendido a sistemas com mais do que duas ou três
equações, mas os numerosos cálculos necessários para sistemas maiores tornam o
método extremamente moroso para ser implementado à mão. Porem a técnica pode ser
formalizada e rapidamente programada para o computador com a linguagem MATLAB.

Vamos usar a técnica eliminação de Gauss para resolver o sistema de equações a


seguir.

3x1 − 0,1x2 − 0,2x3 = 7,85 (5)

0,1x1 + 7x2 − 0,3x3 = −19,3 (6)

0,3x1 − 0,2x2 + 10x3 = 71,4 (7)

Solução.

A primeira parte do processo é a eliminação progressiva. Multiplique a Equação (5)

por 0,1/3 e subtraia o resultado da Equação (6) para obter 7,00333x2 − 0,293333x3 =

−19,5617

Então, multiplique a Equação (5) por 0,3/3 e subtraia da Equação (7) para eliminar x
Depois dessas operações, o conjunto de equações é

3x1 − 0,1x2 − 0,2x3 = 7,85 (8)

7,00333x2 − 0,293333x3 = −19,5617 (9)

− 0,190000x2 + 10,0200x3 = 70,6150 (10)

Para completar a eliminação progressiva, x2 deve ser removida da Equação (10).


Para

Computação Aplicada À Engenharia 75


Universidade Santa Cecília - Educação a Distância

isso, multiplique a Equação (9) por –0,190000/7,00333 e subtraia o resultado da


Equação (10), o que elimina x2 da terceira equação e reduz o sistema a um sistema
triangular superior, como em

3x1 − 0,1x2 − 0,2x3 = 7,85 (11)

7,00333x2 − 0,293333x3 = −19,5617 (12)

10,0120x3 = 70,0843 (13)

Agora, é possível resolver essas equações por substituição regressiva. Primeiro, a Equação

(13) pode ser resolvida para determinar x3 = 70,0843/10,0120 🡪 x3 = 7,00003


Depois esse resultado pode ser substituído na Equação (12), que pode ser resolvida por
x2 = (−19,5617 + 0,293333(7,00003))/7,00333 🡪 x2 = −2,50000
Por fim, x3 = 7,00003 e x2 = –2,50000 podem ser substituídos na Equação (11), a qual
pode ser resolvida por x1 = (7,85 + 0,1(−2,50000) + 0,2(7,00003)) / 3 🡪 x1 = 3,00000
Embora exista um pequeno erro de arredondamento, os resultados estão muito próximos
da solução exata de x1 = 3, x2 = –2,5 e x3 = 7.
Um programa pode ser escrito no MATLAB para resolver genericamente o problema.
function x = GaussIng(A,b)
% x= GaussIng(A,b)
% entrada:
% A = matriz dos coefcientes
% b = vetor do lado direito
% saída:
% x = vetor solução
[m,n] = size(A);
if m~=n, error('A matriz A deve ser quadrada'); end
nb = n+1;
Aum = [A b];
% eliminação progressiva
for k = 1:n-1
for i = k+1:n
fator = Aum(i,k)/Aum(k,k);
Aum(i,k:n, b) = Aum(i,k:n, b)-fator*Aum(k,k:n, b);
end

Computação Aplicada À Engenharia 76


Universidade Santa Cecília - Educação a Distância

end
% substituição regressiva
x = zeros(n,1);
x(n) = Aum(n,nb)/Aum(n,n);
for i = n-1:-1:1
x(i) = (Aum(i,nb)-Aum(i,i+1:n)*x(i+1:n))/Aum(i,i);
end

6.1.6. Método direto utilizando divisão a esquerda


No MATLAB, um sistema de equações simultânea pode ser resolvido usando divisão
de matrizes. A solução da equação da matriz Ax = B pode ser calculada usando divisão
A\B.
Exemplo: Ax = B, vamos usar os dados do sistema de equações do tópico anterior.

3x1 − 0,1x2 − 0,2x3 = 7,85


0,1x1 + 7x2 − 0,3x3 = −19,3
0,3x1 − 0,2x2 + 10x3 = 71,4
Observe na Figura 56, a solução é facilmente obtida informando ao MATLAB, no
próprio prompt, a matriz A e o vetor independente b. A solução x procurada para o sistema
é obtida com o comando x = A\b, divisão a esquerda do MATLAB.

Computação Aplicada À Engenharia 77


Universidade Santa Cecília - Educação a Distância

Figura 56 - Método divisão a esquerda

O Matlab utiliza o algoritmo de eliminação Gaussiana para resolver o sistema de


equações.

6.2. Exercícios
Resolva os problemas a seguir utilizando o MATLAB.

1) Na Figura 35 foi resolvido um sistema de equações lineares com o método de


Cramer, mas faltou determinar os valores de x2 e x3. Complete a rotina e faça as alterações
no programa que achar necessário para obter todas as respostas do sistema de equações.

2) Resolver os sistemas de equações com os métodos acima, e plote o gráfico das


equações no plano cartesiano ortogonal.

Computação Aplicada À Engenharia 78


Universidade Santa Cecília - Educação a Distância

3) Considere o seguinte sistema de equações

Verifique se este sistema tem solução.

4) Escreva o seguinte conjunto de equações na forma matricial:

20 = 2x3 − 6x2

2x2 + 4x3 + 30 = 0

x1 − 3x3 = 50 − 3x2 + 5x1

Use o MATLAB para calcular o valor das incógnitas e também a sua transposta.

5) Três massas estão suspensas verticalmente por uma série de molas idênticas,
onde a massa 1 está na parte superior e a massa 3, na inferior.

Se g = 9,81 m/s2, m1 = 2 kg, m2 = 2,5 kg, m3 = 3 kg e k’s = 15 kg/s2, use o MATLAB


para calcular os deslocamentos x.

Dica: A posição das três massas pode ser modelada pelos seguintes equilíbrios de
força em estado estacionário.

6) Dado o sistema de equações


2x2 + 5x3 = 1
2x1 + x2 + x3 = 1
3x1 + x2 = 2
a) Calcule o determinante.
b) Use a regra de Cramer para calcular os x’s.
c) Substitua seus resultados de volta nas equações originais e cheque sua solução.

Computação Aplicada À Engenharia 79


Universidade Santa Cecília - Educação a Distância

6.2.1. 7) No tópico 6.1.1.2. Método - Regra de Cramer foi calculado somente uma das
raízes do polinômio. Complete a rotina de tal forma que sejam calculadas as três raízes.

Computação Aplicada À Engenharia 80


Universidade Santa Cecília - Educação a Distância

7. POLINÔMIOS SUAS OPERAÇÕES E FUNÇÕES NO MATLAB

Objetivo
Aprender como manipular e determinar raízes de polinômios com o MATLAB.
Vamos discutir meios de avaliar os polinômios e como trabalhar o seu
comportamento.

Introdução
Os polinômios têm muitas aplicações na engenharia e na ciência: uma delas é o uso
no ajuste de curvas. Entretanto, uma de suas aplicações mais interessantes e poderosas é
na caracterização de sistemas dinâmicos, em particular, de sistemas lineares, como
reatores, dispositivos mecânicos, estruturas e circuitos elétricos.

7.1. Polinômios
Os polinômios são um tipo especial de equação algébrica não linear da forma geral

onde n é a ordem do polinômio e os a’s são coeficientes constantes. Em muitos (mas


não todos) casos, os coeficientes são reais; nesses casos, as raízes podem ser reais
e/ou complexas. Em geral, um polinômio de ordem n terá n raízes.

O exemplo h = (h2 h1 h0) mostra como representar um polinômio como um vetor no


MATLABE, ele apresenta polinômios como vetores linha contendo coeficientes ordenados
por potências descendentes. Por exemplo, o vetor de três elementos h = [1 -4 4]; representa
o polinômio h(x) = h2x2 +h1x+h0.

7.1.1. Valor numérico de um polinômio – polyval


O “valor numérico” de um polinômio refere-se ao valor obtido quando analisamos
uma função polinomial, com um determinado valor para a variável x. O MATLAB utiliza a
função polyval, ele possui dois argumentos.
f = polyval (a,x)

Computação Aplicada À Engenharia 81


Universidade Santa Cecília - Educação a Distância

O primeiro argumento (a) contém os coeficientes do polinômio em questão e o


segundo argumento (x) é um número para a qual desejamos avaliar o polinômio. Exemplo:
f(x) = 3x4 – 0,5x3 + x – 5,2 para x = 2, sua representação na janela de comado é
>> a = [3,-0.5,0,1,-5.2]; x=2;
>> f = polyval(a,x);
>>f =
>> 40.8

O tamanho de f terá que ser igual ao tamanho de x, seja ele um escalar, vetor ou
matriz.

Figura 58 - Gráfico do polinômio f(x)

Observe na Figura 58 o gráfico da função polinomial f(x) no intervalo de −1,5 ≤ 𝑥 ≤


6,7, dado f(x)= x5 – 12,1x4 + 40,59x3 – 17,015x2 – 71,95x + 35,88.

7.1.2. Raízes do polinômio – roots


Para determinar as raízes de um polinômio, o MATLAB utiliza a função roots para
executar essa tarefa. A função roots tem a sintaxe x = roots(c) onde x é um vetor coluna
que contém as raízes e c é um vetor linha que contém os coeficientes do polinômio.

Exemplo: Use a seguinte equação para verificar como o MATLAB pode ser

empregado para manipular polinômios f(x) = x5 − 3,5x4 + 2,75x3 + 2,125x2 − 3,875x + 1,25.

O polinômio tem três raízes reais: 0,5, –1,0 e 2; e duas raízes complexas: 1 ± 0,5i. Os

Computação Aplicada À Engenharia 82


Universidade Santa Cecília - Educação a Distância

polinômios são inseridos no MATLAB armazenando-se seus coeficientes como um vetor,

Figura 59.

Figura 59 - Raízes de f(x)

Existe uma função inversa da roots, chamada de poly, que, quando passados os
valores das raízes, retorna os coeficientes do polinômio. Sua sintaxe é c = poly(r) onde r é
um vetor coluna que contém as raízes e c é um vetor linha que contém os coeficientes do
polinômio.

Exemplo: pode-se criar um polinômio quadrático que tenha raízes correspondentes


a duas raízes 0,5 e –1. Esse polinômio quadrático é x2 + 0,5x – 0,5 veja na janela de
comando do MATLAB, Figura 60.

Computação Aplicada À Engenharia 83


Universidade Santa Cecília - Educação a Distância

Figura 60 - Função poly

7.1.3. Adição e subtração de polinômios


É possível fazer operações entre polinômios armazenando seus coeficientes em
vetores. Para somar ou subtrair polinômios basta somar ou subtrair seus respectivos
coeficientes. O MATLAB não apresenta um comando específico par somar polinômios. A
soma ou subtração padrão funciona se ambos os vetores polinomiais forem do mesmo
tamanho. Exemplo: g(x) = x4 - 3x2 - x + 2,4 e h(x) = 4x3 - 2x2 + 5x – 16 , Figura
61.

Computação Aplicada À Engenharia 84


Universidade Santa Cecília - Educação a Distância

Figura 61 - Soma e diferença depolinômios

7.1.4. Multiplicação e divisão de polinômios


Para multiplicar um polinômio por um escalar (sendo ele positivo ou negativo), basta
definir o polinômio pelos seus coeficientes e efetuar a multiplicação. Multipliquemos o
polinômio:
g(x) = 3 f(x). No MATLAB:
>> f = [ 3,-6,1];
>> g = 3 * f
>> g =
>> 9 -18 3

A multiplicação polinomial é efetuada através do comando conv. A multiplicação de


mais de dois polinômios requer o uso repetido de conv. Dados: g(x) = x3 - 5x + 3; h(x) = 4x2
- 2x
>> g = [1 0 5 3]; h = [4 -1 0]
>>m = conv(g,h)
No MATLAB a divisão de polinômios é feita através do comando deconv.
[q,r] = deconv(g,h)
Esse resultado nos diz que g dividido por h nos dá o polinômio de quociente q e resto r.

Computação Aplicada À Engenharia 85


Universidade Santa Cecília - Educação a Distância

Essas operações podem ser observadas na Figura 62.

Figura 62 - Multiplicação e divisão de polinômios

7.2. Estudo de caso: Balões meteorológicos


Balões são usados para reunir problemas de temperatura e pressão nas diferentes
altitudes da atmosfera. O balão consegue ganhar altitude porque nele está presente um
gás de menor densidade que o próprio ar ao seu redor. Durante o dia, devido a presença
da luz solar, o gás Hélio se expande, se tornando mais denso que o ar e assim fazendo
com que o balão suba. Durante a noite, o gás Hélio esfria e fica mais denso, e com isso o
balão desce a baixa altitude. No dia seguinte o sol novamente esquenta o gás e o balão
sobe. Com o passar dos dias, esse processo gera vários valores de altitude que geralmente
podem ser aproximados por uma equação polinomial.

Assumindo que o seguinte polinômio represente a altitude em metros, durante as


primeiras

Computação Aplicada À Engenharia 86


Universidade Santa Cecília - Educação a Distância

48 horas de um balão: h(t) = -0.12 t4 + 12 t3 -380 t2 + 4100 t + 220 onde t é medido


em horas. Plote uma curva para a equação da altura atingida pelo balão nas primeiras 48
horas.
% Balão meteorológico (altura)
% h(t) = -0.12 t4 + 12 t3 -380 t2 + 4100 t + 220
% Tempo = 48 hs
% = 48*60 minutos
% = 48*60*60 segundos
minutos = 48*60;
segundos = minutos*60;
t=0:1:segundos;
a=[-0.12 12 -380 4100 220];
h=polyval(a,t);
% observe a mensagem de perigo
semilogy(t,h);
xlabel('Tempo (s)-linear');
ylabel('Altura (m)-log')
title('Balão metereológico')

Figura 63 - Balão Meterológico

Computação Aplicada À Engenharia 87


Universidade Santa Cecília - Educação a Distância

7.3. Exercícios
1) Determine as raízes dos seguintes polinômios e plote seu gráfico, com seu eixo
apropriado, com o objetivo de verificar se o polinômio atravessa o eixo x bem nos locais
das raízes.
a) f(x) = x3 - 5x2 + 2x + 8
b) g(x) = x2 + 4x + 4
c) i(x) = x5 - 3x3 + 4x2 -1

2) Obtenha o polinómio cujas raízes são os números inteiros 1, 2 e 3.

3) Calcule o produto entre os polinómios x6 + 10 e x2 − 2x + 3.

4) Calcule o valor da função sin (x + pi/10) ∗ cos(x) em 100 pontos do intervalo [−π .

. . π] e plote o seu gráfico.

5) O volume V de líquido em um cilindro horizontal oco de raio r e comprimento L se


relaciona com a profundidade do líquido h por:

a) Determine h, dado que r = 2 m, L = 5 m e V = 8 m3.


b) Plote o gráfico da função V, volume, utilizando um intervalo de medidas
conveniente para h, altura do líquido.

6) Observe no tópico 7.2. Estudo de caso: Balões meteorológicos que a rotina


apresenta uma mensagem de alerta.

Refaça o programa da forma que


achar conveniente para eliminar essa
mensagem.

Computação Aplicada À Engenharia 88


Universidade Santa Cecília - Educação a Distância

8. MÉTODO DE NEWTON-RAPHSON NO MATLAB

Objetivo

Aprender como resolver um problema de raízes com o método de Newton-Raphson


e apreciar o conceito de convergência quadrática.

Introdução
Os métodos abertos descritos neste tópico são baseados em fórmulas que exigem
apenas um único valor inicial de x ou dois valores iniciais que não delimitam
necessariamente a raiz. Algumas vezes divergem ou se afastam da raiz verdadeira à
medida que os cálculos prosseguem. Entretanto, quando os métodos abertos convergem,
em geral o fazem muito mais rapidamente do que os métodos intervalares. Iniciaremos
nossa discussão sobre as técnicas abertas com uma versão simples, que será útil para
ilustrar sua forma geral e também o conceito de convergência.

8.1. Conceito do Método de Newton-Raphson


O método de Newton-Raphson é um dos métodos mais eficientes para a solução
numérica de f(x) = 0. Uma forma de deduzir o método de Newton-Raphson é a partir da
expansão em

série de Taylor. Para isso, dada uma função f tal que f(x∗) = 0 e seja x0 uma

aproximação de x∗ de modo que |x0 − x∗| seja “pequeno”. O primeiro polinômio de Taylor

para f(x), expandido em torno de x0, é dado por

onde δ está entre x e x0. Substituindo x = x∗ e junto com f(x∗) = 0 na equação, obtêm-
se

Computação Aplicada À Engenharia 89


Universidade Santa Cecília - Educação a Distância

Se |x0 − x∗| é “pequeno”, então (x0 − x∗)2 será “pequeno” em comparação com a soma

dos primeiros dois termos no lado direito da igualdade, podemos desprezar o resto da
equação, ((x*-x0)2/2)f’’(δ). Deste modo, de temos:

Isolando x∗, a expressão anterior pode ser reescrita como

Repetindo o processo anterior repetidas vezes, obtemos a fórmula iterativa,


desenvolvido por Isaac Newton e Joseph Raphson.

Logo, para resolver f(x∗) = 0 pelo método de Newton-Raphson, utilizamos a fórmula


iterativa a partir de um valor aproximado x0, para assim conseguir obter aproximações
sucessivas de x∗.

8.1.1. Interpretação geométrica


Consideremos o problema de calcular a raiz de uma função conforme a Figura 65.
Figura SEQ Figura \* ARABIC 64 - Método das tangentes

Computação Aplicada À Engenharia 90


Universidade Santa Cecília - Educação a Distância

Queremos calcular x1 em função de x0, sabendo que x1 será a cota no eixo das
abcissas interceptado pela reta tangente à curva, originada por x0.

A equação da reta tangente ao gráfico da função f(x) no ponto (x0, f(x0)) tem
inclinação m = f’(x0) e é dada por y – f(x0) = f’(x0)(x-x0).

Sabendo que essa reta passa por (x1, 0), temos que 0 – f(x0) = f’(x0)(x1 – x0)

Portanto genericamente

8.1.2. Condições de convergência


Estabelecendo condições suficientes de convergência. Seja [𝑎, 𝑏] um intervalo que
contém uma só raiz da equação 𝑓(𝑥) = 0. A sucessão de valores 𝑥𝑖 gerados pelo método
de Newton-Raphson é monótona e limitada pela raiz 𝑥0, portanto convergente, se:

1. 𝑓′(𝑥) ≠ 0, ∀𝑥 ∈ [𝑎, 𝑏];

2. 𝑓′′(𝑥) é de sinal constante em ]𝑎, 𝑏[, ou seja, 𝑓′′(𝑎).𝑓′′(𝑏) > 0;


3. O valor inicial 𝑥0 for o extremo do intervalo [𝑎, 𝑏], em que 𝑓(𝑥0) .𝑓′′(𝑥0) < 0, isto é
toma-se 𝑥0 = 𝑎 𝑜𝑢 𝑥0 = 𝑏 de modo que 𝑓(𝑥0) e tenham o mesmo sinal.

8.2. Exemplo da aplicação do método de Newton e Raphson


Vamos determinar uma raiz de f(x) = 2x³ + 3x² - 2, usando o método de Newton-
Raphson.

Nosso valor para x0 = 0,5 como estimativa inicial, baseado na análise do gráfico da
função na Figura 65, e utilizaremos como critério de parada |xn+1 - xn)| <= 0,001.

Computação Aplicada À Engenharia 91


Universidade Santa Cecília - Educação a Distância

Figura 65 - Gráfico da função

Inicialmente calculamos a derivada da função


f(x) = 2x³ + 3x² - 2
f’(x) = 6x2 + 6x

A seguir substituímos em
𝑓(𝑥𝑛 )
𝑥𝑛+1 = 𝑥𝑛 −
𝑓′(𝑥𝑛 )

2𝑥 3 +3𝑥 2 −2
𝑥𝑛+1 = 𝑥𝑛 −
6𝑥 2 +6𝑥
Substituindo xn pelo valor inicial de x0=0,5, encontramos nosso primeiro resultado
para x
2∗0.53 +3∗0.52 −2
𝑥1 = 0.5 − 🡪 x1 = 0.7222
6∗0.52 +6∗0.5
Replicando os cálculos vamos obter os próximos valores de x, observe a Tabela 2.

Computação Aplicada À Engenharia 92


Universidade Santa Cecília - Educação a Distância

Tabela 2 – Interações para o método de Newton e Raphson

Xn+1 = Xn -
X Xn f(x) f'(x) Erro
(f(x)/f'(x))
0 0,5 -1 4,5 0,7222 𝒙𝒏 - 𝒙𝒏+𝟏
1 0,7222 0,0426 0,3181 7,4626 0,6796
2 0,6796 0,0133 6,8487 0,6777 0,0019
3 0,6774 0,0003 0,3181 0,6777 0,0000

Logo, uma aproximação da raiz de f(x) = 2x³ + 3x² - 2 é x = 0,6777 admitindo um erro
menor que 0.001. Assim, a aproximação converge rapidamente para a raiz verdadeira.
Observe que o erro relativo percentual verdadeiro em cada iteração diminui.

8.2.1. Rotina do Método Newton-Raphson no MATLAB


Método de para o cálculo da raiz de uma função qualquer, dado um valor inicial, um
determinado número máximo de interações e um erro máximo, utilizando um programa no
MATLAB, observe e analise as etapas da rotina e as funções aplicadas, Figura 66.

Figura 66 - Rorina no MATLAB

Computação Aplicada À Engenharia 93


Universidade Santa Cecília - Educação a Distância

8.2.2. Função do MATLAB – fzero


A função fzero é projetada para encontrar uma raiz real de uma única equação. Uma
representação simples de sua sintaxe é fzero(funcao, x0), onde funcao é o nome da função
sendo avaliada e x0 é a aproximação inicial.

Observe que duas aproximações que delimitam a raiz podem ser passadas como
um vetor:
fzero(funcao, [x0 x1])
onde x0 e x1 são aproximações que delimitam um intervalo onde ocorre mudança de
sinal.

A função fzero funciona como descrito a seguir. Se uma única aproximação inicial é
passada, ela primeiro efetua uma busca para identificar uma mudança de sinal. Essa busca
implementada na função fzero começa na aproximação inicial e, então, dá passos cada vez
maiores tanto na direção positiva quanto na direção negativa até uma mudança de sinal ser
detectada.

Uma representação mais completa da sintaxe da função fzero pode ser escrita como
[x,fx] = fzero(funcao,x0,opcoes,p1,p2,...) onde opcoes, é uma estrutura de dados criada
pela função optimset e p1, p2,... são quaisquer parâmetros que a função requer.

A função optimset tem a sintaxe opcoes = optimset('par1',val1,'par2',v al2,...) onde o


parâmetro par1 tem o valor val1, o parâmetro par2 tem o valor val2 e assim por diante.

Uma lista completa de todos os parâmetros possíveis pode ser obtida ao digitar
optimset no prompt de comando do MATLAB ou na ajuda utilizando o comando help.

Exemplo: encontrar a raiz positiva de f (x) = x10 – 1 com uma aproximação inicial de
0,5. Resolva o problema com as funções optimset e fzero, Figura 67.

Computação Aplicada À Engenharia 94


Universidade Santa Cecília - Educação a Distância

Figura 67 - Comando fzero

A função fzero, após 25 interações, encontrou uma mudança de sinal. Na vigésima


sexta interação usou o método da interpolação, a seguir da bissecção para se aproximar
da raiz e depois convergir para a solução com interpolação. Obteve como resposta x = 1.

A seguir a lista completa da janela de comando.


funcaozero

Search for an interval around 0.5 containing a sign change:


Func-count a f(a) b f(b) Procedure
1 0.5 -0.999023 0.5 -0.999023 initial interval
3 0.485858 -0.999267 0.514142 -0.998709 search
5 0.48 -0.999351 0.52 -0.998554 search
7 0.471716 -0.999454 0.528284 -0.998307 search
9 0.46 -0.999576 0.54 -0.997892 search
11 0.443431 -0.999706 0.556569 -0.997148 search
13 0.42 -0.999829 0.58 -0.995692 search
15 0.386863 -0.999925 0.613137 -0.992491 search
17 0.34 -0.999979 0.66 -0.984317 search
19 0.273726 -0.999998 0.726274 -0.959167 search
21 0.18 -1 0.82 -0.862552 search
23 0.0474517 -1 0.952548 -0.385007 search
25 -0.14 -1 1.14 2.70722 search

Search for a zero in the interval [-0.14, 1.14]:


Func-count x f(x) Procedure
25 -0.14 -1 initial
26 0.205272 -1 interpolation
27 0.672636 -0.981042 bisection
28 0.906318 -0.626056 bisection
29 1.02316 0.257278 bisection

Computação Aplicada À Engenharia 95


Universidade Santa Cecília - Educação a Distância

30 0.989128 -0.103551 interpolation


31 0.998894 -0.0110017 interpolation
32 1.00001 7.68385e-05 interpolation
33 1 -3.83061e-07 interpolation
34 1 -1.3245e-11 interpolation
35 1 0 interpolation

Zero found in the interval [-0.14, 1.14]


x =
1
fx =
0

8.3. Exercícios

Resolva utilizando o MATLAB.

1) Use o método de Newton-Raphson para determinar a raiz de f (x) = –0,9x2 + 1,7x


+ 2,5 utilizando x0 = 0,5. Faça os cálculos até que 𝒙𝒏 - 𝒙𝒏+𝟏 seja menor ou igual a 0,0001.

2) Determine a maior raiz real de f (x) = x3 – 6x2 + 11x – 6,1:


a) Graficamente.
b) Usando o método de Newton-Raphson (três iterações, x0 = 3,5).

3) Empregue o método de Newton-Raphson para determinar uma raiz real de


f(x) = –2 + 6x – 4x2 + 0,5x3, utilizando uma aproximação inicial de:
a) 4,5 b) 4,43
Discuta e use métodos analíticos e gráficos para explicar quaisquer peculiaridades
em seus resultados.

Computação Aplicada À Engenharia 96


Universidade Santa Cecília - Educação a Distância

9. INTERPOLAÇÃO POR LAGRANGE USANDO MATLAB

Objetivo
Saber como efetuar uma interpolação utilizando polinômios de Lagrange.

Introdução
A densidade e viscosidade do ar são frequentemente apresentadas na forma de
tabelas como uma função da temperatura. Considere que deseje obter a densidade em
uma temperatura que não está incluída na tabela. Nesse caso, você terá que interpolar, ou
seja, estimar o valor na temperatura desejada com base nas densidades que a delimitam.
A abordagem mais simples é determinar a equação para a reta conectando os dois valores
adjacentes e utilizar essa equação para estimar a densidade na temperatura desejada.
Essa interpolação linear é perfeitamente adequada em muitos casos, mas um erro pode ser
introduzido quando os dados exibem curvatura significativa. Neste tópico, será explorada
uma abordagem chamada de polinômio interpolador de Lagrange.

9.1. Conceito do método de interpolação


Interpolar uma função f(x) consiste em determinar uma função g(x) que descreve de
forma aproximada o comportamento de outra função f(x) que não se conhece, Figura 68.
São conhecidos alguns valores tabelados do tipo (x, f(x)).

Figura 68 - Gráfico de interpolação

É usual adotar esse procedimento quando são conhecidos somente os valores


numéricos da função para um conjunto de pontos e é necessário calcular o valor da função

Computação Aplicada À Engenharia 97


Universidade Santa Cecília - Educação a Distância

em um ponto não tabelado. Outra situação onde se pode também utilizar a interpolação é
quando a função em estudo tem uma expressão tal que operações como a diferenciação e
a integração são difíceis, ou mesmo impossíveis, de serem realizadas.

Então, seja f uma função definida em A, f: A ⊆ ℜ →ℜ, e admitamos que são

conhecidos os pontos (x0, f(x0)), (x1, f(x1)), ..., (xn, f(xn)), com xi < xi+1, i=0, ..., n-1 sendo x0=a
e xn=b. Pretende-se aproximar f(x), x ∈ [x0, xn], por um polinômio
Pn(x) = anxn+an-1xn-1+...+a2x2+a1x+a0 (1)
tal que nos pontos conhecidos Pn(x) coincida com a função f(x), i.é., que satisfaça:
Pn(xi) = f(xi) i=0, ..., n (2)

Diremos que Pn(x) é um polinômio interpolador para f nos pontos dados, (xi, f(xi)) i=0,
..., n, que serão o suporte da interpolação.

Assim, dados (n+1) pontos (xi, f(xi)), i=0, ..., n, a existência de um polinômio que
satisfaça (2) e acerca da unicidade e do grau do polinómio temos informação através do
seguinte teorema:

Teorema: Sejam dados (n+1) pontos distintos x0, x1, ..., xn, (xi≠ xj), e os valores de

f(x) nesses pontos f(x0), f(x1), ..., f(xn). Então existe um único polinômio Pn(x) de grau inferior
ou igual a n que satisfaz a f(xi)=Pn(xi), i=0, ..., n.

9.1.1. Forma geral de Lagrange


Dados (n + 1) pontos distintos x0, x1, ..., xn, e yi = f (xi), na forma de Lagrange o
polinômio Pn(x) é obtido de modo que

em que Lk(x) tem grau n. Para cada i devemos satisfazer Pn(xi) = yi, ou seja,

Uma forma simples de satisfazer isso é exigir que Lk(xi) seja 1 se k = i e 0 se k ≠ i e

para isso definimos Lk(x) como

Computação Aplicada À Engenharia 98


Universidade Santa Cecília - Educação a Distância

Como a função Lk(x) é o produto de n fatores lineares, então Lk(x) tem grau n e Pn(x)

obtido desta forma é um polinômio de grau ≤ n.

Onde

Exemplo: Use um polinômio interpolador de Lagrange para calcular a densidade de


um óleo de motor não utilizado em T = 15 ºC com base nos seguintes dados:
x1 = 0 f(x1) = 3,85
x2 = 20 f(x2) = 0,800
x3 = 40 f(x3) = 0,212

Como são três pontos nosso polinômio e de segundo grau, então

P2(x) =

O valor da densidade do óleo é 1,332

9.1.2. Função do MATLAB: lagrange


O uso da função lagrange no MATLAB é simples. A representação de sua sintaxe é
function[xx] = lagrange(x,y,T) os argumentos de entrada para a função são dois vetores
contendo as variáveis independente (x) e dependente (y). Passa-se também o valor da
variável independente em que se quer interpolar (xx). O grau do polinômio é baseado no
tamanho do vetor x que é passado para a função. Se n valores são passados, um polinômio
de grau (n – 1) é ajustado, ver Figura 69.

Computação Aplicada À Engenharia 99


Universidade Santa Cecília - Educação a Distância

Figura 69 - Comando lagrange

Observe a mensagem de erro, o comando está disponível nas outras versões do


MATLAB.
Uma alternativa é utilizar a função polyfit em conjunto com a função polyval, ver
Figura 70.

Figura 70 - Comando polyfit

Computação Aplicada À Engenharia 10


Universidade Santa Cecília - Educação a Distância

9.1.3. Rotina do Método de Lagrange no MATLAB


Método de interpolação, dado um conjunto de pontos, utilizando um programa no
MATLAB, observe e analise as etapas da rotina e as funções aplicadas, Figura 71.
Figura 71 - Rotina com interpolação Lagrange

9.2. Exercícios
Resolva utilizando o MATLAB

1) A população em milhões dos Estados Unidos de 1920 a 2000 pode ser tabulada
como:

Ajuste um polinômio sétimo grau aos 8 primeiros pontos (1920 a 1990). Use-o para
calcular a população em 2000 por extrapolação e compare sua previsão com o resultado
real.

2) A corrente em um fio é medida com grande precisão como uma função do tempo:
t 0 0,1250 0,2500 0,3750 0,5000
i 0 6,24 7,75 4,85 0,0000
Determine i em t = 0,23.

Computação Aplicada À Engenharia 10


Universidade Santa Cecília - Educação a Distância

3) Seja a tabela:

a) Determine o polinômio de interpolação de Lagrange.


b) Calcule f(1).

CHAPMAN, Stephen J. Programação Em Matlab para Engenheiros, Editora:


Thomson Pioneira, ISBN: 8522103259, 2006

CHAPRA,Steven C. Métodos Numéricos aplicados com MATLAB para


Engenheiros e Cientistas, Ed.McGraw Hill, 3a.edição, ISBN: 8580551765, 2013.

GILAT, Amos; SUBRAMANIA,Vish. Métodos Numéricos para Engenheiros e


Cientistas. Bookman, ISBN: 9788577802975, 2008.

GILAT, Amos. Matlab com Aplicações em Engenharia, Editora: Bookman, ISBN:


8536306920, 2006.

HAHN, Brian H.; VALENTINE, Daniel T. Essential MATLAB for Engineers and
Scientists, Published by Elsevier Ltd., ISBN: 978-0081008775, 2013.

BIBLIOGRAFIA COMPLEMENTAR

BANSAL, Raj K.; GOEL Ashok, SHARMA, Manoj Kumar. Matlab and Its Applications in
Engineering, Prentice Hal, ISBN: 9788131716816, 2009

GUSTAFSSON, Fredrik; NICLAS, Bergman. Matlab for Engineers Explainde; Springer,


2003

HANSELMAN, Duane C.; LITTLEFIELD, Bruce. Mastering Matlab 7, Prentice Hall, ISBN:
9780131430181, 2004

JOE, King. Matlab para Engenheiros, Prentice Hall, ISBN-10: 0201350947, 1997.

PALM III, Wilian, Introduction to Matlab 7 for Engineers, McGraw-Hill, ISBN: 978-
0072922424,2010

Computação Aplicada À Engenharia 10

Você também pode gostar