Prévia do material em texto
<p>TRABALHO 01: CÁLCULO NUMÉRICO</p><p>ANDRÉ FELIPE DE OLIVEIRA CARVALHO</p><p>DRE: 118024140</p><p>Exercícios: 3.9 e 3.13</p><p>Projetos: 3.5 e 3.15</p><p>MACAÉ - RIO DE JANEIRO</p><p>2019</p><p>Exercício 3.9</p><p>Usando o método de Newton, com erro inferior a 10−2 , determinar uma raiz das seguintes equações:</p><p>A. 2 x = tg x,</p><p>B. 5 x3 + x2 − 12x + 4 = 0,</p><p>C. sen (x) − ex = 0,</p><p>D. x4 − 8 = 0</p><p>Letra A:</p><p>A raiz encontrada foi x = 0.000164.</p><p>Inicialmente é necessário rearranjar a equação e a igualar a zero.</p><p>Após se observar o gráfico da função f(x) = tg(x) - 2x = 0 com o auxílio do Symbolab, foi verificado que uma das raízes da função está entre 1 e 2.</p><p>Algoritmo implementado no Scilab:</p><p>//Método de Newton Exercício 3.9 (Letra A)</p><p>clear;clc</p><p>//Entrada</p><p>function y = f(x)</p><p>y = tan(x) - 2*x</p><p>endfunction</p><p>palpite = 1.5</p><p>erro = 0.000001</p><p>//Variáveis Auxiliares</p><p>x = palpite</p><p>pare = %f</p><p>n = 0</p><p>d=((f(x+palpite)-f(x))/palpite)</p><p>//Rotina</p><p>while pare == %f do</p><p>y = x - f(x)/d</p><p>if abs (y-x) / abs (y) < erro then</p><p>pare=%t</p><p>end</p><p>if n>100 then pare = %t end</p><p>x = y</p><p>n = n+1</p><p>end</p><p>//Saída</p><p>printf("A raiz da equação é %f.",y)</p><p>Letra B:</p><p>A raiz encontrada foi x = 1.231129.</p><p>Com o auxílio do Symbolab, foi verificado que uma das raízes da função está entre próxima de 2.</p><p>Algoritmo implementado no Scilab:</p><p>//Método de Newton Exercício 3.9 (Letra B)</p><p>clear;clc</p><p>//Entrada</p><p>function y=f(x)</p><p>y = 5*x**3 + x**2 - 12*x + 4</p><p>endfunction</p><p>palpite = 3</p><p>erro = 0.000001</p><p>//Variáveis Auxiliares</p><p>x = palpite</p><p>pare = %f</p><p>n = 0</p><p>d = ((f(x+palpite)-f(x)) / palpite)</p><p>//Rotina</p><p>while pare == %f do</p><p>y = x - f(x)/d</p><p>if abs(y-x) / abs(y) < erro then</p><p>pare = %t</p><p>end</p><p>if n > 100 then pare = %t end</p><p>x = y</p><p>n = n+1</p><p>end</p><p>//Saída</p><p>printf("A raiz da equação é %f.",y)</p><p>Letra C:</p><p>A raiz encontrada foi x = - 3.183054.</p><p>Com o auxílio do Symbolab, foi verificado que uma das raízes da função está entre -4 e -2.</p><p>Algoritmo implementado no Scilab:</p><p>//Método de Newton Exercício 3.9 (Letra C)</p><p>clear;clc</p><p>//Entrada</p><p>function y=f(x)</p><p>y = sin(x) - exp(x)</p><p>endfunction</p><p>palpite = 1</p><p>erro = 0.000001</p><p>//Variáveis Auxiliares</p><p>x = palpite</p><p>pare = %f</p><p>n = 0</p><p>d = ((f(x+palpite)-f(x)) / palpite)</p><p>//Rotina</p><p>while pare == %f do</p><p>y = x - f(x)/d</p><p>if abs(y-x) / abs(y) < erro then</p><p>pare = %t</p><p>end</p><p>if n > 100 then pare = %t end</p><p>x = y</p><p>n = n+1</p><p>end</p><p>//Saída</p><p>printf("A raiz da equação é %f.",y)</p><p>Letra D:</p><p>A raiz encontrada foi x = 1.681779.</p><p>Com o auxílio do Symbolab, foi verificado que as duas raízes da função está entre -2 e 2.</p><p>Algoritmo implementado no Scilab:</p><p>//Método de Newton Exercício 3.9 (Letra D)</p><p>clear;clc</p><p>//Entrada</p><p>function y=f(x)</p><p>y = x**4 - 8</p><p>endfunction</p><p>palpite = 1</p><p>erro = 0.000001</p><p>//Variáveis Auxiliares</p><p>x = palpite</p><p>pare = %f</p><p>n = 0</p><p>d = ((f(x+palpite)-f(x)) / palpite)</p><p>//Rotina</p><p>while pare == %f do</p><p>y = x - f(x)/d</p><p>if abs(y-x) / abs(y) < erro then</p><p>pare = %t</p><p>end</p><p>if n > 100 then pare = %t end</p><p>x = y</p><p>n = n+1</p><p>end</p><p>//Saída</p><p>printf ("A raiz da equação é %f.",y)</p><p>Exercício 3.13</p><p>Determinar, pelo método das secantes, uma raiz de cada uma das equações:</p><p>A. x = 2.7 ln (x),</p><p>B. log x − cos x = 0,</p><p>C. e−x − log x = 0.</p><p>Letra A:</p><p>A raiz encontrada foi x = 2.68785.</p><p>Inicialmente é necessário rearranjar a equação e a igualar a zero.</p><p>Após observar o gráfico da função f(x) = x - 2.7Ln(x) = 0 com o auxílio do Symbolab, foi verificado que a raiz da função está entre 2 e 3. E então esse foi o intervalo escolhido.</p><p>Utilizou-se o Método das Secantes, cujo as linhas de código estão abaixo, para então encontrar o valor da raiz.</p><p>Algoritmo implementado no Scilab:</p><p>//Método das Secantes Exercício 3.13 (Letra A)</p><p>clear; clc //Limpa as variáveis e o console, respectivamente</p><p>function y=f(x)</p><p>y = (x - 2.7*log(x))</p><p>endfunction</p><p>//Entrada</p><p>a = 1</p><p>b = 3</p><p>erro = 0.0001</p><p>//Variáveis Auxiliares</p><p>pare = %f</p><p>x = a</p><p>y = b</p><p>//Rotina</p><p>while pare==%f do</p><p>z = (x * f(y) - y * f(x)) / (f(y) - f(x))</p><p>if abs(z-y) < erro * abs(z) then</p><p>pare = %t</p><p>end</p><p>x = y</p><p>y = z</p><p>end</p><p>//Saída</p><p>printf("O valor da raíz é: %g", z)</p><p>printf("\n O valor da função nesse ponto é: %g", f(z))</p><p>Letra B:</p><p>A raiz encontrada foi x = 1.41841.</p><p>Após observar o gráfico da função f(x) = Ln(x) - cos(x) com o auxílio do Symbolab, foi verificado que a raiz da função está entre 1 e 2. E então adotou-se esse intervalo.</p><p>Foi utilizado o Método das Secantes, cujo as linhas de código estão abaixo, para então encontrar o valor da raiz.</p><p>Algoritmo implementado no Scilab:</p><p>//Método das Secantes Exercício 3.13 (Letra B)</p><p>clear; clc //Limpa as variáveis e o console, respectivamente</p><p>function y=f(x)</p><p>y = (log10(x) - cos(x))</p><p>endfunction</p><p>//Entrada</p><p>a = 1</p><p>b = 2</p><p>erro = 0.0001</p><p>//Variáveis Auxiliares</p><p>pare = %f</p><p>x = a</p><p>y = b</p><p>//Rotina</p><p>while pare==%f do</p><p>z = (x * f(y) - y * f(x)) / (f(y) - f(x))</p><p>if abs(z-y) < erro * abs(z) then</p><p>pare = %t</p><p>end</p><p>x = y</p><p>y = z</p><p>end</p><p>//Saída</p><p>printf("O valor da raíz é: %g", z)</p><p>printf("\n O valor da função nesse ponto é: %g", f(z))</p><p>Letra C:</p><p>A raiz encontrada foi x = 1.59531.</p><p>Após observar o gráfico da função f(x) = e−x − log x com o auxílio do Symbolab, foi verificado que a raiz da função está entre 1 e 2. E então adotou-se esse intervalo.</p><p>Foi utilizado o Método das Secantes, cujo as linhas de código estão abaixo, para então encontrar o valor da raiz.</p><p>Algoritmo implementado no Scilab:</p><p>//Método das Secantes Exercício 3.13 (Letra C)</p><p>clear; clc //Limpa as variáveis e o console, respectivamente</p><p>function y=f(x)</p><p>y = (exp(-x) - log10(x))</p><p>endfunction</p><p>//Entrada</p><p>a = 1</p><p>b = 5</p><p>erro = 0.0001</p><p>//Variáveis Auxiliares</p><p>pare = %f</p><p>x = a</p><p>y = b</p><p>//Rotina</p><p>while pare==%f do</p><p>z = (x * f(y) - y * f(x)) / (f(y) - f(x))</p><p>if abs(z-y) < erro * abs(z) then</p><p>pare = %t</p><p>end</p><p>x = y</p><p>y = z</p><p>end</p><p>//Saída</p><p>printf("O valor da raíz é: %g", z)</p><p>printf("\n O valor da função nesse ponto é: %g", f(z))</p><p>PROJETO 3.5</p><p>Pelo enunciado tem-se que = 1,5 Kgf/m, L = 30 m e S = 33 m, podemos escrever a equação como , e rearranjando a equação, temos = 0.</p><p>Achando a raiz dessa equação acima, obtemos o valor de .</p><p>Utilizando-se o método das secantes, obtém-se a raiz da equação = 0.</p><p>A raíz encontrada foi = 29.473752449030044. com um erro relativo de 0.0007057725977118302.</p><p>Após obter o valor de , substitui-se os valores na equação para determinar o valor da flecha .</p><p>O valor da flecha encontrado foi de 6.0089399569660795 m.</p><p>Algoritmo implementado em Python:</p><p>#Método das Secantes - Projeto 3.5</p><p>import math</p><p>#Entrada</p><p>x = 7</p><p>y = 60</p><p>F = 33</p><p>#Rotina</p><p>while True:</p><p>fx = (2/1.5)*x*(math.sinh(22.5/x))-33</p><p>fy = (2/1.5)*y*(math.sinh(22.5/y))-33</p><p>z = abs((x*fy - y*fx)/(fy-fx))</p><p>erro = abs((z-y)/z)</p><p>x = y</p><p>y = z</p><p>if erro < 0.001:</p><p>break</p><p>#Cálculo da flecha</p><p>f = (z/1.5)*((math.cosh(22.5/z))-1)</p><p>#Saída</p><p>print("Valor da flecha f:",f,"m")</p><p>print("Valor de x: ",z)</p><p>print("Erro relativo de: ",erro,"%")</p><p>PROJETO 3.15</p><p>Para determinar as raízes da equação (S2 + 1)(S) - (2S + 1)(S2 - 1) é preciso fatorar a expressão.</p><p>Obtém-se então a equação f(x) = - S3 - S2 + 3S + 1 que será utilizada para encontrar as raízes, ou seja, onde f(x) é igual a zero.</p><p>Após se observar o gráfico com o auxílio do Symbolab, verificou-se a existência de três raízes. E então foi escolhido três intervalos diferentes que sejam apropriados.</p><p>Os intervalos escolhidos foram [-4,-2], [-1,1] e [1,4] respectivamente.</p><p>Utilizou-se o Método das Secantes, cujo as linhas de código estão abaixo, para então determinar os valores das raízes.</p><p>O valor da raíz 01 é: -2.17009</p><p>//Método das Secantes Projeto 3.15 (1ª raiz)</p><p>clear; clc //Limpa as variáveis e o console, respectivamente</p><p>function y=f(x)</p><p>y = (-x**3 - x**2 + 3*x + 1)</p><p>endfunction</p><p>//Entrada</p><p>a = -4</p><p>b = -2</p><p>erro = 0.0001</p><p>//Variáveis Auxiliares</p><p>pare = %f</p><p>x = a</p><p>y = b</p><p>//Rotina</p><p>while pare==%f do</p><p>z = (x * f(y) - y * f(x)) / (f(y) - f(x))</p><p>if abs(z-y) < erro * abs(z) then</p><p>pare = %t</p><p>end</p><p>x</p><p>= y</p><p>y = z</p><p>end</p><p>//Saída</p><p>printf("O valor da raíz 01 é: %g", z)</p><p>O valor da raíz 02 é: -0.311108</p><p>//Método das Secantes Projeto 3.15 (2ª raiz)</p><p>clear; clc //Limpa as variáveis e o console, respectivamente</p><p>function y=f(x)</p><p>y = (-x**3 - x**2 + 3*x + 1)</p><p>endfunction</p><p>//Entrada</p><p>a = -1</p><p>b = 1</p><p>erro = 0.0001</p><p>//Variáveis Auxiliares</p><p>pare = %f</p><p>x = a</p><p>y = b</p><p>//Rotina</p><p>while pare==%f do</p><p>z = (x * f(y) - y * f(x)) / (f(y) - f(x))</p><p>if abs(z-y) < erro * abs(z) then</p><p>pare = %t</p><p>end</p><p>x = y</p><p>y = z</p><p>end</p><p>//Saída</p><p>printf("O valor da raíz 02 é: %g", z)</p><p>O valor da raíz 03 é: 1.48119</p><p>//Método das Secantes Projeto 3.15 (3ª raiz)</p><p>clear; clc //Limpa as variáveis e o console, respectivamente</p><p>function y=f(x)</p><p>y = (-x**3 - x**2 + 3*x + 1)</p><p>endfunction</p><p>//Entrada</p><p>a = 1</p><p>b = 2</p><p>erro = 0.0001</p><p>//Variáveis Auxiliares</p><p>pare = %f</p><p>x = a</p><p>y = b</p><p>//Rotina</p><p>while pare==%f do</p><p>z = (x * f(y) - y * f(x)) / (f(y) - f(x))</p><p>if abs(z-y) < erro * abs(z) then</p><p>pare = %t</p><p>end</p><p>x = y</p><p>y = z</p><p>end</p><p>//Saída</p><p>printf("O valor da raíz 03 é: %g", z)</p><p>Portanto, obteve-se, como raízes, x = - 2.17009; - 0.311108 e 1.48119 respectivamente.</p><p>image9.png</p><p>image6.png</p><p>image4.png</p><p>image7.png</p><p>image2.png</p><p>image5.png</p><p>image3.png</p><p>image1.png</p><p>image8.png</p>