Buscar

Exercícios de revisão resolvidos (1)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Exercícios de revisão resolvidos 
 
 
1. Um determinado tanque cilíndrico armazena um líquido que será usado 
em um processo. A altura do nível de líquido no tanque é denominada h, e h = 0 
pode ser considerado o valor da altura do líquido quando o tanque está cheio. 
O tanque esvazia a uma vazão constante Q para suprir o processo. O conteúdo 
líquido é reposto por uma corrente de entrada a uma taxa de 2Qsen2(t). O 
balanço de massa (grandeza conservativa) considerando o líquido como tendo 
densidade constante é: 
 
 
 
Em que: 
 
h ≡ altura do nível do líquido (m); 
t ≡ tempo de operação (d); 
A ≡ área do fundo circular do tanque (m2); 
Q ≡ vazão de líquido (m3/d). 
 
No modelo matemático acima, sabemos que apenas h e t são variáveis e 
a área do fundo circular do tanque (A) e a vazão (Q) não variam. Portanto. o 
modelo pode ser reescrito. Retirando A do termo diferencial e levando-o para o 
lado direito da equação como denominador, temos: 
 
 ⇒ ⇒ 
 
 
 
Sabendo que A = 200 m2 e Q = 40 m3/d, responda aos itens abaixo: 
 
a) Liste as partes funcionais do modelo matemático: variável dependente, 
variável independente, parâmetros e função forçante; 
b) Determine algebricamente o tempo que o processo levaria para atingir o 
estado estacionário; 
c) Use o método de diferenças finitas para determinar a profundidade do 
nível de líquido após 2 dias considerando a condição inicial de h como 
sendo h=0. Use valores de passo de 0,5 dias. 
d) Determine os erros relativos obtidos dos cálculos de altura do líquido do 
item anterior. 
 
 
Gabarito: 
 
a) Nesse exemplo, o modelo matemático consiste de uma equação 
diferencial obtida com base em um balanço de massa. Considerando a 
densidade constante, o modelo descreve apenas a variação de volume 
do líquido em função do tempo e das vazões de entrada e saída. A 
variação de volume do líquido foi convertida em variação de altura do 
líquido porque o volume é V = Ah. Sendo a área A constante, ela pode 
sair do termo diferencial e passar para o outro lado da igualdade como 
denominador. Com esse formato final, podemos indicar facilmente as 
partes funcionais do modelo: 
 
h ≡ variável dependente; 
t ≡ variável dependente; 
A ≡ parâmetro; 
Q ≡ função forçante. 
 
b) Como sabemos, no estado estacionário, não existem mais variações 
ocorrendo no processo. Assim, o termo diferencial pode ser cancelado e 
sair da equação. Dessa forma, a equação diferencial se transforma em 
uma equação algébrica e pode ser facilmente resolvida. Vejamos: 
 
Igualando o termo diferencial dh/dt = 0, levando o termo -Q/A para o lado 
esquerdo da equação, invertendo os lados da equação, cortando os termos 
similares e resolvendo para o tempo, temos: 
 
 ⇒ ⇒ 
 
 
 ⇒ ⇒ ⇒ 
 
 
Logo, o tempo para o processo atingir o estado estacionário é t = 45 
dias. 
 
c) Nós poderíamos determinar facilmente o valor de h para t = 2 dias se 
dispuséssemos da solução exata dessa equação diferencial, entretanto, 
esta não está disponível. A presença de uma função oscilatória senoidal 
complica muito a solução por meio de um método matemático analítico, 
então, precisamos recorrer a um método computacional. O método das 
diferenças finitas (método de Euler) é proposto para a solução, para isso 
precisamos transformar o modelo matemático em um modelo ou 
problema numérico. Vejamos: 
 
Em primeiro lugar, vamos substituir o termo diferencial da equação por 
um termo de diferenças finitas: 
 
 ⇒ 
 
 
Observe que apenas a variável dependente e independente ganham 
índices numéricos (i e i+1), pois Q e A são constantes, ou seja, não variam ao 
longo da simulação, portanto, não precisam de índices numéricos. Observe 
também que, nessa etapa, as variáveis dependentes e/ou independentes no 
lado direito da equação sempre ganham o índice numérico i, que corresponde 
ao valor no instante anterior do cálculo. 
Vamos substituir os valores de Q e A na equação e rearranjá-la, assim, 
temos: 
 
 
⇒ 
 
Nesse exemplo, exigiu-se que os cálculos fossem feitos entre 0 e 2 dias, 
utilizando valor de passo igual a 0,5 dias, ou seja, vamos determinar valores de 
altura do líquido nos dias: t = [0 0,5 1,0 1,5 2,0]. A condição inicial de h também 
foi dada e é h(1) = 0. Vamos iniciar os cálculos e, para isso, vamos montar a 
expressão da primeira iteração: 
 
 
 
Em que h(2) é o valor da altura no segundo valor de tempo, ou seja, em 
0,5 dia. Substituindo os valores, temos: 
 
 
 
 
Portanto, o valor negativo da altura do líquido ao final de 0,5 dia indica 
que o nível baixou 0,1 metro. Vamos à segunda iteração: 
 
 
 
Em que h(3) é o valor da altura no terceiro valor de tempo, ou seja, em 
1,0 dia. Logo: 
 
 
 
Observe que o termo (ti+1 - ti ) também resultou em 0,5 na segunda 
iteração, pois esse termo corresponde exatamente ao valor do passo, logo 
poderíamos ter usado o valor 0,5 desde a primeira iteração. Vamos diretamente 
à terceira iteração: 
 
 
 
A terceira iteração corresponde ao valor de altura h(4) = -0,2999 m, 
abaixo da altura inicial. Para continuar, basta prosseguirmos os cálculos até o 
tempo t=2 dias: 
 
 
 
Assim, terminamos os cálculos e sabemos que, ao final de 2 dias, o nível 
do líquido estará em 0,3998 metros abaixo da altura inicial. Esse procedimento 
pode, obviamente, ser executado manualmente com o auxílio de uma 
calculadora científica, entretanto estamos mais interessados em executar estes 
cálculos usando o computador pois na maioria das aplicações, são necessários 
muitos cálculos. Para isso, precisamos de uma linguagem computacional. O 
GNU Octave pode ser usado com este objetivo. Abaixo temos um código 
escrito em Octave para a execução destes cálculos: 
 
Quadro 1 - Código escrito em GNU OCTAVE para executar os cálculos. 
 1- 
 2- 
 3- 
 4- 
 5- 
 6- 
 7- 
 8- 
 9- 
10- 
11- 
12- 
13- 
%%% simulação numérica do exercício 
clear all %% limpa todas as variáveis antes de começar 
 
passo = 0.5; %% este é o valor do passo 
 h(1) = 0; %% condição inicial da altura 
t = [0 0.5 1.0 1.5 2.0]; %% vetor tempo com os cinco valores (não usado aqui) 
 
for i=1:5 %% início do laço de repetição (for) para cinco valores 
 
 h(i+1) = h(i) + ((80/200)*(sind(t(i)))^2 - (40/200))*passo; 
 
end %% fim do laço de repetição (for) 
disp(h); %% mostra os resultados na linha de comando 
 
Ao executar esse código no Octave, você vai observar que um valor h(6) 
= -0,4995 foi gerado. Esse valor corresponde ao valor de altura no tempo t = 2,5 
dias, que não foi exigido na questão, por isso, podemos desprezá-lo. 
 
d) Os erros relativos são os desvios calculados entre os valores de altura 
de nível obtidos. Os cálculos resultaram em 5 (cinco) valores de h 
portanto teremos 4 (quatro)desvios. Vamos ao cálculo iterativo dos 
erros relativos percentuais: 
 
iteração 1: 
 
iteração 2: 
 
iteração 3: 
 
iteração 4: 
 
 
Observe os valores dos desvios obtidos diminuindo ao longo da simulação. 
Caso os erros calculados fossem usados em um critério de parada, o computador não 
tardaria em em encerrar os cálculos. Abaixo, temos um código escrito em Octave 
para a execução destes cálculos com critério de parada: 
 
Quadro 1 - Código escrito em Octave para os cálculos com critério de parada. 
 1- 
 2- 
 3- 
 4- 
 5- 
 6- 
 7- 
 8- 
 9- 
10- 
11- 
12- 
13- 
14- 
15- 
16- 
17- 
%%% simulação numérica do exercício 
clear all %% limpa todas as variáveis antes de começar 
 
passo = 0.5; %% este é o valor do passo 
 h(1) = 0; %% condição inicial da altura 
t = 0:0.5:50; %% vetor tempo com muitos valores (usado neste código) 
tol = 0.1; %% valor de tolerância admitido em percentual (%) 
 
for i=1:length(t) %% início do laço de repetição (for) para muitos valores 
 
 h(i+1) = h(i) + ((80/200)*(sind(t(i)))^2 - (40/200))*passo; 
 
 erro = (abs(( h(i+1) - h(i))/( h(i+1))))*100; %% calcula o erro percentual 
 
 if erro < tol %% compara o erro com a tolerância 
 break %% encerra os cálculos se for verdadeiro 
 
18- 
19- 
20- 
21- 
22- 
 else 
 end 
 
end %% fim do laço de repetição (for) 
disp(h); %% mostra os resultados na linha de comando 
 
Nesse caso, o código precisou de algumas alterações, são elas: 
● Na linha 6, o comando para gerar o vetor t mudou para produzir 
uma quantidade maior de valores de tempo (teste na linha de 
comando!), mas com o critério de parada o computador não 
precisará executar todos os cálculos; 
● Na linha 7, o valor de tolerância (tol) precisou ser iniciado para 
usarmos o critério de parada; 
● Na linha 9, o comando length(t) no laço for, retorna o número de 
elementos no vetor tempo, assim não precisamos contar os 
elementos; 
● Na linha 13, o cálculo do erro foi inserido antes do critério de 
parada; 
● O critério de parada foi inserido da linha 15 até 19. Na linha 15, o 
comando if erro<tol compara os valores e se for verdadeiro 
executa o comando break na linha 16. Se for falso, as linhas 16 e 
17 não são executadas. As linhas 18 e 19 fecham o critério de 
parada com os comandos else, end. 
O código acima encerra os cálculos com 89 elementos para o vetor h. 
Como sabemos, o valor do passo é 0,5 dias, logo o tempo para atingir o estado 
estacionário foi de aproximadamente 44,5 dias, bem próximo do valor que 
encontramos no item b. 
 
 
2. Um determinado objeto em queda livre possui sua aceleração 
representada pelo modelo matemático abaixo: 
 
 
 
Onde: 
 
v ≡ velocidade do objeto (m/s); 
t ≡ tempo (s); 
Cd ≡ coeficiente de arraste (kg/m); 
m ≡ massa do objeto (kg); 
 
 
Sabendo que Cd = 0,3 kg/m, g = 9,81 m/s
2 e m = 50 kg, responda os itens 
abaixo: 
 
a) Construa o modelo numérico de diferenças finitas do problema utilizando 
a série de Taylor truncada no segundo termo; 
b) Use o modelo numérico do item (a) para determinar a velocidade do 
objeto após 10 segundos de queda livre. Considere a velocidade inicial 
nula. Use valores de passo de 2 segundos. 
c) Construa outro modelo numérico de diferenças finitas do problema 
utilizando a série de Taylor truncada no terceiro termo. 
d) Use o modelo numérico do item (c) para determinar a velocidade do 
objeto após 10 segundos de queda livre. Considere a velocidade inicial 
nula. Use valores de passo de 2 segundos. 
e) Determine os erros relativos entre os resultados de velocidade obtidos 
no item (d) 
f) Escreva um código em GNU Octave para simular a queda livre do objeto 
no tempo dado usando o valor de passo dado nos itens anteriores. 
 
 
Solução: 
 
a) A série de Taylor consiste em uma série infinita de aproximação utilizada 
para criar modelos numéricos de diferenças finitas. A forma original da 
série de Taylor é: 
 
 
 
 
 
Observe que no segundo termo da série de Taylor usa-se a primeira 
derivada, no terceiro termo usa-se a segunda derivada e assim por diante. O 
objetivo da série de Taylor é aumentar a precisão da aproximação quanto mais 
termos se usa do lado direito da igualdade. 
A série de Taylor truncada no segundo termo ao lado direito da igualdade 
fica: 
 
 
Onde é o valor da função no tempo posterior, é o valor da 
função no tempo anterior, é o valor da primeira derivada da função no 
tempo anterior e h é o valor do passo. 
A série de Taylor pode ser adaptada ao problema do objeto em queda 
livre e ficar da seguinte forma: 
 
 
 
Substituindo o termo dv/dt pela equação do modelo matemático teremos: 
 
 
 
Assim temos o modelo numérico de diferenças finitas obtido a partir da 
série de Taylor truncada no segundo termo. Observe que do lado direito da 
igualdade, as variáveis dependentes e/ou independentes ganham o índice 
numérico do tempo anterior, e os outros valores constantes não ganham 
índices numéricos. 
 
 
b) Para determinarmos o valor da velocidade após 10 segundos, 
precisamos simular o modelo numérico começando da velocidade inicial, 
e assim vamos obtendo valores gradativos de velocidade em passos de 
2 segundos até chegarmos a 10 segundos. Portanto o vetor tempo que 
será usado para a simulação será t = [0 2 4 6 8 10], ou seja, cinco 
iterações, já que o valor de velocidade inicial já foi fornecido. 
 
Vamos iniciar os cálculos e para isso vamos montar a expressão da 
primeira iteração: 
 
 
 
Observe que as constantes e o valor de passo já foram substituídos, 
pois não mudarão durante a simulação. Substituindo o valor de velocidade 
temos: 
 
 
Onde v(2) é o valor da velocidade no segundo intervalo de tempo. Logo 
 calculadora 
científica mas se você quiser executar estes cálculos na linha de comando do 
Octave, use os seguintes comandos: 
 
 
Quadro 1 - Comandos para executar a primeira iteração no Octave. 
>> v(1) = 0; 
>> v(2) = v(1) + ((9.81 - (0.3/50)*(v(1))^2))*2 
 
 
Para continuar executando no Octave, basta recuperar o último 
comando com a tecla direcional para cima (seta), substituir os índices da 
velocidade e teclar Enter novamente. Vamos para a segunda iteração, onde a 
expressão é: 
 
 
 
Onde v(3) é o valor da velocidade no terceiro intervalo de tempo. 
Substituindo temos: 
 
 
 
 
 
E assim sucessivamente: 
 
 
 
 
Assim descobrimos que aos 10 segundos o objeto terá uma velocidade 
de queda livre de 40,41 m/s. Mais três iterações e os valores de velocidade não 
mudarão mais indicando que o objeto atinge sua velocidade terminal em 
aproximadamente 14 segundos. 
 
c) A série de Taylor truncada no terceiro termo ao lado direito da igualdade 
tem o objetivo de forneceruma estimativa um pouco mais precisa e fica 
da seguinte forma: 
 
 
Observe que no terceiro termo a função deve ser derivada pela segunda 
vez. O denominador 2! significa fatorial de 2 e calcula-se da seguinte forma: 
 
 ⇒ 
 
Obs: O fatorial 3! = 6, o fatorial 4! = 24, e assim por diante. 
O modelo numérico fica agora com um termo a mais que contém a 
segunda derivada do modelo matemático: 
 
 
 
Substituindo a primeira e a segunda derivada temos: 
 
 
 
 
Lembre-se que g sai da segunda derivada por se tratar de uma 
constante. 
 
d) Vamos determinar o valor da velocidade após 10 segundos utilizando o 
novo modelo numérico. Na primeira iteração, calculamos o segundo 
valor de velocidade pois o primeiro valor já foi dado e vale 0 (zero). A 
expressão fica: 
 
 
 
 
Substituindo o valor de v(1)=0, temos: 
 
 
 
Logo: 
Continuando os cáculos como no item anterior, ficamos com: 
 
 
 
 
 
 
 
 
 
 
Observe que o resultado obtido com o segundo modelo numérico está abaixo 
do obtido com o primeiro modelo numérico. Neste caso, o primeiro modelo 
superestimou o valor da velocidade já que o segundo modelo, que é mais 
preciso, obteve um valor 2,4% menor do que o primeiro. Neste problema esta 
diferença pode não ser muito significativa, mas em aplicações industriais, este 
percentual de diferença nas estimativas pode significar uma grande quantia 
monetária. 
 
e) Vamos determinar os erros relativos para os valores de velocidade 
obtidos no item anterior. Foram calculados 5 (cinco) valores, portanto 
teremos 4 (quatro) cálculos de erro relativo. Abaixo temos as expressões 
e os cálculos do respectivos erros: 
 
iteração 1: 
 
iteração 2: 
 
iteração 3: 
 
iteração 4: 
 
 
Os cálculos acima podem ser executados em uma calculadora científica 
mas se você quiser usar o Octave, basta digitar os comandos abaixo na linha 
de comando: 
 
Quadro 2 - Comando para o cáculo de erros relativos no Octave. 
>> erro(1) = (abs((v(2)-v(1))/(v(2))))*100 
 
 
Para continuar executando no Octave, basta recuperar o último 
comando com a tecla direcional para cima (seta), substituir os índices da 
velocidade e do erro e teclar Enter novamente. Observe os valores dos desvios 
obtidos diminuindo ao longo da simulação. Caso os erros calculados fossem 
usados em um critério de parada, o computador não tardaria em encerrar os 
cálculos. 
 
f) O código em Octave para executar os cálculos do segundo modelo 
estão escritos abaixo: 
 
 
Quadro 3 - Código escrito em GNU Octave para executar os cálculos. 
 1- 
 2- 
 3- 
 4- 
 5- 
 6- 
 7- 
 8- 
 9- 
10- 
11- 
12- 
13- 
%%% simulação numérica do exercicio 
clear all %% limpa todas as variáveis antes de começar 
 
passo = 2; %% este é o valor do passo 
 v(1) = 0; %% condição inicial da altura 
t = [0 2 4 6 8 10]; %% vetor tempo com seis valores (não é usado no código) 
 
for i=1:6 %% início do laço de repetição (for) para seis valores 
 
 v(i+1) = v(i) + (9.81 - (0.3/50)*(v(i))^2)*passo + (-2*(0.3/50)*(v(i)))*passo^2; 
 
end %% fim do laço de repetição (for) 
disp(v); %% mostra os resultados na linha de comando 
 
Abaixo temos um código escrito em Octave para a execução destes 
cálculos com critério de parada: 
 
Quadro 1 - Código escrito em Octave para os cálculos com critério de parada. 
 1- 
 2- 
 3- 
 4- 
 5- 
 6- 
 7- 
 8- 
 9- 
10- 
11- 
12- 
13- 
14- 
15- 
16- 
17- 
18- 
19- 
20- 
21- 
22- 
%%% simulação numérica do exercicio 
clear all %% limpa todas as variáveis antes de começar 
 
passo = 2; %% este é o valor do passo 
 v(1) = 0; %% condição inicial da altura 
t = 0:2:100; %% vetor tempo com muitos valores (usado neste código) 
tol = 0.01; %% valor de tolerancia admitido em percentual (%) 
 
for i=1:length(t) %% início do laço de repetição (for) para muitos valores de t 
 
 v(i+1) = v(i) + (9.81 - (0.3/50)*(v(i))^2)*passo + (-2*(0.3/50)*(v(i)))*passo^2; 
 
 erro = (abs(( v(i+1) - v(i))/( v(i+1))))*100; %% calcula o erro percentual 
 
 if erro < tol %% compara o erro com a tolerancia 
 break %% encerra os calculos caso seja verdadeiro 
 else 
 end 
 
end %% fim do laço de repetição (for) 
disp(v); %% mostra os resultados na linha de comando 
 
 
3. Resolva os itens A até D a partir da função abaixo: 
 
 
 
Determine: 
 
A. O zero (ou raiz) da função usando método da bisseção no intervalo entre 
1 e 2; 
B. O zero (ou raiz) da função usando método de Newton-Raphson com 
valor inicial de 1; 
C. O valor ótimo da função usando o método de Newton-Raphson; 
D. Determine se o valor ótimo é de máximo ou mínimo. 
 
 
 
Gabarito: 
 
Em primeiro lugar precisamos entender que os zeros ou raízes das funções 
estão em x quando f(x)=0, e os ótimos (máximos e/ou mínimos) também estão 
em x mas neste caso é quando f’(x) = 0 (quando a derivada é zero). O valor de 
f(x) ótimo é obtido substituindo o valor de x ótimo na função original (antes de 
derivar). Embora usemos métodos diferentes, eles devem retornar o mesmo 
resultado. Vamos à solução: 
 
A. De acordo com o método temos que e . A primeira etapa é 
dividir o intervalo de valores dado: 
 
 
 
 
 
Agora temos dois intervalos candidatos a substituir o primeiro intervalo 
de e , são eles: , e , . 
Para saber qual será, precisamos fazer o teste para definirmos o novo 
intervalo. O teste consiste em substituir os valores dos dois intervalos nas 
funções e fazer as multiplicações: e . O novo 
intervalo será aquele que produz um valor negativo no teste. Vamos ao 
primeiro teste: 
 
 
 
 
O produto que é positivo, logo este não será o novo 
intervalo. Sabemos que o novo intervalo é o intervalo superior, mas vamos 
confirmar: 
 
 
 
 
O produto que é negativo, confirmando que este é o 
novo intervalo e que que o zero da função está entre e . 
Precisamos dividir o novo intervalo novamente e recomeçar o procedimento. 
 
 
 
Vamos repetir o procedimento. A vantagem para a solução manual é 
que já calculamos dois valores de intervalo: 
 
 
 
 
 
O produto que é negativo. Logo já sabemos 
que o novo intervalo é e e que o zero está entre estes dois 
valores. 
Nós devemos prosseguir até o zero positivo desta função que é 1,6667. 
O outrozero vale 0 (zero). Observe que o resultado é uma dízima periódica, ou 
seja, para parar os cálculos precisamos de um critério de parada ou 
prosseguiremos infinitamente. Para o critério, devemos calcular os erros entre 
os valores de xr. Vejamos: 
 
iteração 1: 
 
Com uma tolerância de, por exemplo 0,0001 %, os cálculos não 
tardariam em parar e nos dariam o resultado com uma precisão de quatro 
casas decimais. Observe que a vantagem do método é sua simplicidade, 
entretanto como desvantagem ele precisa de uma estimativa precisa de 
intervalo inicial. A escolha errada do intervalo leva a não convergência. 
 
B. Para usarmos o método de Newton precisamos da derivada da função: 
 . Com a função original e a derivada usamos a fórmula 
abaixo: 
 
 
Vamos a primeira etapa, substituir o valor inicial na função e na 
derivada: 
 
 
Depois substituímos na fórmula: 
 
Ja podemos passar para a segunda etapa: 
 
 
Na fórmula do método para encontrarmos o novo valor temos: 
 
E assim por diante: 
 
 
 
Observe que uma vantagem é que convergência foi mais rápida a partir 
de um valor inicial qualquer. Uma desvantagem é que o método precisa 
obrigatoriamente da derivada da função. 
C. Para calcularmos o valor ótimo pelo método de Newton-Raphson 
precisamos da segunda derivada que é . Logo o valor da 
segunda derivada não irá mudar na fórmula ao longo das iterações pois 
não é função de x. A fórmula para determinar o ótimo é: 
 
A derivada a segunda deve ser diferente de zero, pois ela fica no 
denominador. Podemos iniciar o procedimento com o valor inicial 1: 
 
Já na primeira iteração o método encontra o valor ótimo. 
D. O valor ótimo encontrado é de máximo pois a segunda derivada da 
função produz um valor negativo (se fosse positivo seria de mínimo). 
 
 
 
4. Dado o sistema de equações lineares abaixo: 
 
 
 
 
 
 
Determine os valores de x1, x2 e x3 utilizando o método iterativo de Gauss-
Seidel. 
 
Gabarito: 
 
O método é simples. Em primeiro lugar isole as três variáveis das três 
equações e formule as equações abaixo: 
 
 
 
 
 
Depois atribua valores iniciais nulos a x2 e x3. Depois inicie os cálculos de x1, x2 
e x3 a partir das equações acima, e simplesmente repita os cálculos com os 
novos valores de x1, x2 e x3 obtidos. Vejamos, fazendo x2 =0 e x3=0, vamos a 
primeira iteração: 
 
 
 
 
 
Vamos a segunda iteração: 
 
 
 
 
Vamos terceira iteração: 
 
 
 
 
 
Vamos a quarta iteração: 
 
 
 
 
 
Observe que, na quarta iteração, os valores já se aproximam da resposta que é 
x1=2, x2=-3 e x3=5. O quadro abaixo contém os comandos para o cálculo 
iterativo de Gauss-Seidel no Octave. Execute os comandos na ordem em que 
estão mostrados. 
 
Quadro 1 - Comandos para executar o método de Gauss-Seidel no Octave. 
>> x2 = 0 
>> x3 = 0 
>> x1 = (4.5 + 2*x2 + 1.5*x3)/3 
>> x2 = (-21 -2*x1 + 2*x3)/5 
>> x3 = (32 - 1.5*x1 + 3*x2)/4 
 
 
1. Depois da primeira execução das linhas de comando acima, recupere os 
três últimos comandos com a tecla direcional para cima do teclado 
(seta), um de cada vez, teclando enter após cada vez, ou seja, recupere 
primeiro a equação de x1 e tecle enter, depois a equação de x2 e tecle 
enter e depois a equação de x3 e tecle enter. Repita este procedimento e 
observe que os valores vão se aproximando de x1=2, x2=-3 e x3=5. 
 
5. Dado o sistema de equações não lineares abaixo: 
 
 
 
 
Determine os valores de x e y utilizando o método de Newton-Raphson para 
sistemas não lineares. Use valores iniciais x=1 e y=2. 
 
 
Gabarito: 
 
Em primeiro lugar, vamos definir funções adaptadas para o método: 
 
 
 
 
A partir destas funções, vamos construir a matriz Jacobiana, onde cada 
elemento é a derivada de uma função em relação a apenas uma variável, ou 
seja, a outra variável fica se comportando como uma constante. A matriz 
Jacobiana, neste caso terá duas linhas e duas colunas, pois se trata de um 
sistema de duas equações não lineares com duas incógnitas (para três 
equações/incógnitas, seria uma matriz 3 x 3 e assim por diante). Vamos por 
partes: 
Vamos determinar o primeiro elemento, ou melhor, o elemento da 
primeira linha e primeira coluna da matriz Jacobiana: 
 
 
 
Observe que J(1,1) corresponde a derivada da primeira função f1 em relação a 
primeira variável x, por isso y foi tratada como constante (para facilitar, imagine 
uma constante no lugar da variável y antes de derivar). Vamos determinar o 
elemento da primeira linha e segunda coluna da matriz Jacobiana: 
 
 
 
Observe que agora, no elemento J(1,2), é x que é tratada como constante. 
Vamos determinar agora o elemento da segunda linha e primeira coluna da 
matriz Jacobiana: 
 
 
 
Neste elemento, a segunda função foi derivada em relação a x e y foi tratada 
como constante. Vamos determinar o elemento da segunda linha e segunda 
coluna da matriz Jacobiana: 
 
 
 
Neste elemento, a segunda função foi derivada em relação a y e x foi tratada 
como constante. Com a matriz Jacobiana e as funções já podemos iniciar as 
iterações. Vamos iniciar com os valores iniciais x=1 e y=2. 
Em primeiro lugar podemos calcular os valores das funções f1 e f2. 
 
 
 
 
Em uma segunda etapa, usamos estes valores iniciais para calcular cada 
elemento da matriz Jacobiana na primeira iteração: 
 
 
 
 
 
 
Ainda na segunda etapa, precisamos determinar o determinante da matriz 
Jacobiana: 
 
 
 
Na terceira e última etapa da primeira iteração, usamos todos este valores no 
cálculo dos novos valores de x e y. 
 
 
 
Vamos para segunda iteração, usando os novos valores obtidos 
x=1,8214 e y=7,7143.Vamos a terceira iteração: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Observe que na terceira iteração, o método já se aproxima da solução 
que é x=2 e y=4. Os cálculos deste método são um tanto quanto exaustivos, 
sendo um exemplo notório da necessidade dos computadores. 
Os comandos para executar os cálculos em Octave estão no quadro 
abaixo. Execute os comandos na ordem em que aparecem. 
 
Quadro 1 - Comandos para executar o método para sistemas não lineares. 
>> x = 1; 
>> y = 2; 
>> f1 = x^2 + x*y - 12 
>> f2 = y + 2*x*y^2 - 68 
>> J = [2*x + y , x; 2*y^2 , 1+4*x*y] 
>> x = x - (f1*J(2,2) - f2*J(1,2))/(det(J)) 
>> y = y - (f2*J(1,1) - f1*J(2,1))/(det(J)) 
 
 
Observe que, na linha de comando para calcular a matriz J, as derivadas 
já estão diretamente inseridas na matriz, onde as vírgulas (,) separam as 
colunas em uma mesma linha e o ponto-vírgula (;) separa as duas linhas. 
Depois da primeira execução das linhas de comando acima, recupere os 
cinco últimos comandos com a tecla direcional para cima do teclado (seta), um 
de cada vez, teclando enter após cada vez, ou seja, recupere primeiro a 
equação de f1 e tecle enter, depois a equação de f2 e tecle enter, depois a 
equação de J e tecle enter, depois a equação de x e tecle enter e depois a 
equação de y e tecle enter. Repita este procedimento e observe que os valores 
vão se aproximando de x=2 e y=4. 
Abaixo, temos um código escrito em Octave para a execução desses 
cálculos em um código: 
 
Quadro 2 - Código escrito em Octave para os cálculos. 
 1- 
 2- 
 3- 
 4- 
 5- 
 6- 
 7- 
 8- 
 9- 
10- 
11- 
12- 
13- 
14- 
15- 
16- 
17- 
18- 
%%% método de Newton-Raphson para o sistema não linear do exercício 
clear all %% limpa todas as variáveis antes de começar 
 
x = 1; %% este é o valor de x inicial 
y = 2; %% este é o valor de y inicial 
 
for i=1:10 %% início do laço de repetição (for) para 10 iterações 
 
f1 = x^2 + x*y - 12; 
f2 = y + 2*x*y^2 - 68; 
J = [2*x + y , x; 2*y^2 , 1+4*x*y]; %% cria a matriz Jacobiana 2x2 
x = x - (f1*J(2,2) - f2*J(1,2))/(det(J)); 
y = y - (f2*J(1,1) - f1*J(2,1))/(det(J)); 
 
end %% fim do laço de repetição (for) 
x %% valores de x e y após 10 iterações 
y 
 
Observe que o laço for repete a execução das linhas 8 até 14 por 10 
(dez) vezes, evitando o esforço que seria exaustivo manualmente. 
Experimente, como atividade complementar, inserir um critério de 
parada neste código e evitar esforço computacional desnecessário, 
lembre-se de indexar a variável que você escolher para calcular o erro. 
Com este desafio terminamos nosso estudo dirigido. 
 
6. Os dados abaixo foram obtidos em um experimento de laboratório. 
 
Tabela 1 - Dados experimentais da atividade. 
x (variável independente) y (variável dependente) 
0 0 
1 6 
2 12 
3 30 
4 40 
5 65 
6 92 
7 100 
8 150 
9 189 
10 240 
 
 
Utilize o método da regressão linear para responder o itens abaixo: 
 
a) Faça o ajuste dos dados utilizando uma função linear (ou polinomial de 1a 
ordem) do tipo y = ax + b 
b) Faça o ajuste dos dados utilizando uma função polinomial de 2a ordem do 
tipo y = ax2 + bx + c. 
c) Calcule o coeficiente de correlação para os dois ajustes e responda qual foi 
o melhor ajuste. 
d) Crie o gráfico dos dados com a função de melhor ajuste no GNU Octave. 
 
 
Gabarito: 
 
a) Os cálculos para os coeficientes do modelo linear estão na Tabela 2. 
 
Tabela 2 - Tabela para resolver o item a. 
x y x2 x∙y 
0 0 0 0 
1 6 1 6 
2 12 4 24 
3 30 9 90 
4 40 16 160 
5 65 25 325 
6 92 36 552 
7 100 49 700 
8 150 64 1200 
9 189 81 1701 
10 240 100 2400 
55 924 385 7158 
 
Para determinarmos o valor de a e b, temos as seguintes equações: 
 
 
Substituindo os valores para cálculo de a e resolvendo temos: 
 
 
 
Calculando as médias de x e y e substituindo os valores para cálculo de b e 
resolvendo temos: 
 
 
 
 
 
 
Logo o modelo linear que se ajusta aos dados é: 
 
y = 23,07 x - 31,35 
 
b) Os cálculos para os coeficientes do modelo polinomial de segunda 
ordem estão na Tabela 3: 
 
x y x2 x3 x4 x∙y x2∙y 
0 0 0 0 0 0 0 
1 6 1 1 1 6 6 
2 12 4 8 16 24 48 
3 30 9 27 81 90 270 
4 40 16 64 256 160 640 
5 65 25 125 625 325 1625 
6 92 36 216 1296 552 3312 
7 100 49 343 2401 700 4900 
8 150 64 512 4096 1200 9600 
9 189 81 729 6561 1701 15309 
10 240 100 1000 10000 2400 24000 
55 924 385 3025 25333 7158 59710 
 
 
 
Com os dados da última linha da tabela devemos usar as equações abaixo 
para determinarmos os coeficientes a, b e c. 
 
 
 
 
 
Substituindo os valores da última linha da tabela temos o sistema de três 
equações lineares abaixo: 
 
 
 
 
 
Utilizando qualquer um do métodos de solução de sistemas de equações 
lineares aprendidos na quarta unidade de aprendizado (UA4), encontramos 
facilmente os valores de a = 2,3193, b = -0,1207 e c = 3,4266. Logo o modelo de 
segunda ordem que melhor ajusta os dados é: 
 
y = 2,3193∙x2 - 0,1207∙x + 3,4266 
 
c) Substituindo os valores para cálculo de r do item a e resolvendo temos: 
 
 
 
 
 
 
Para o cálculo de r do item b utilizaremos o valor médio de y ( 84) e os 
coeficientes a = 2,3193, b = -0,1207 e c = 3,4266 calculados para criar a tabela 
abaixo: 
 
x y 
0 0 7056 11,7416 
1 6 6084 0,1405 
2 12 5184 0,2138 
3 30 2916 36,7454 
4 40 1936 0,0028 
5 65 361 17,5930 
6 92 64 33,6725 
7 100 256 263,3285 
8 150 4356 0,8032 
9 189 11025 1,4487 
10 240 24336 34,2272 
55 924 63574 399,9171 
 
 
A partir dos dados acima calculamos o coeficiente de determinação pela 
fórmula abaixo: 
 
 
 
O coeficiente de correlação é a raiz quadrada do coeficiente de determinação, 
então: 
 
 
 
Portanto o ajuste dos dados com a função polinomial de segunda ordem foi 
melhor pois apresentou um valor mais próximo de 1 (um). 
 
No Quadro 1 temos os comandos em Octave para executar todos os cálculos 
acima. 
Quadro 1 - Código escrito em Octave para todos os cálculos. 
 1- 
 2- 
 3- 
 4- 
 5- 
 6- 
 7- 
 8- 
 9- 
10- 
11- 
12- 
clear all %% limpa todas as variaveis 
 
x = [0 1 2 3 4 5 6 7 8 9 10] 
y = [0 6 12 30 40 65 92 100 150 189 240] 
n = 11 
 
%% Item A - calculos para ajuste da funcao de primeira ordem 
a1 = (n*sum(x.*y) - sum(x)*sum(y)) / (n*sum(x.^2) - (sum(x))^2) 
b1 = mean(y) - a1*mean(x) 
 
%% ItemB calculos para ajuste da funcao de segunda ordem 
%% criando a matriz de coeficientes A 
13- 
14- 
15- 
16- 
17- 
18- 
19- 
20- 
21- 
22- 
23- 
24- 
25- 
26- 
27- 
28- 
29- 
30- 
31- 
32- 
33- 
34- 
35- 
36- 
37- 
38- 
39- 
40- 
41- 
42- 
43- 
44- 
A = [ ]; 
A(1,1) = n 
A(1,2) = sum(x) 
A(1,3) = sum(x.^2) 
A(2,1) = sum(x) 
A(2,2) = sum(x.^2) 
A(2,3) = sum(x.^3) 
A(3,1) = sum(x.^2) 
A(3,2) = sum(x.^3) 
A(3,3) = sum(x.^4) 
 
%% criando a matriz coluna B 
B = [sum(y); sum(x.*y); sum(x.^2.*y)] 
 
%% resolvendo o sistema com o Octave e determinando os coeficientes 
C = A\B; 
 
a2 = C(3) 
b2 = C(2) 
c2 = C(1) 
 
%% Item C - calculo dos coeficientes de correlacao dos itens A (ra) e B (rb) 
ra = (n*sum(x.*y) - sum(x)*sum(y)) / (sqrt((n*sum(x.^2) - 
(sum(x))^2))*sqrt((n*sum(y.^2) - (sum(y))^2))) 
 
desvios1 = (y - mean(y)).^2; 
desvios2 = (y - (a2*x.^2 + b2*x + c2)).^2; 
 
rb =sqrt((sum(desvios1) - sum(desvios2 ))/(sum(desvios1 ))) 
 
 
 
 
d) Os comandos em GNU Octave para criar o gráfico contendo os dados e 
a curva de ajuste estão no Quadro 2: 
Quadro 2 - Comandos no Octave para criar o gráfico a partir da linha de comando 
>> ya = a2*x.^2 + b2*x + c2; 
>> figure(1), plot(x, y, ' * '); hold on; plot(x, ya); 
 
 
Antes de usar os comandos acima certifique-se de que as variáveis x, y e os 
coeficiente a2, b2 e c2 estão no ambiente de trabalho. Inserindo os comandos 
acima nas linhas 43 e 44 do código (sem os sinais “>>”), estes serão 
executados logo após os cáculos.

Continue navegando