Solução do Problema de Deflexão de Vigas com o Método das Diferenças Finitas
DOI:
https://doi.org/10.5540/03.2014.002.01.0074Palabras clave:
Equação Diferencial Ordinária, Solução Numérica, Diferenças Finitas, Deflexão de VigasResumen
Este trabalho trata da obtenção das soluções analítica e numérica de um Problema de Valor de Contorno (PVC) para o problema de Deflexão de Vigas. Em particular, considera-se uma viga bi-apoiada de seção transversal retangular, de modo que as extremidades não sofrem deflexão, com uma carga uniformemente distribúıda sobre ela, como apresentada na Figura 1. Figura 1: Viga com extremidades apoiadas, sujeita a carga uniforme A Equação Diferencial Ordinária Linear que aproxima o caso à situação física é dada por: d2w dx2 S EI w qx 2EI (x l), onde w(x) é a deflexão a uma distância x a partir da extremidade esquerda da viga, l representa o comprimento da viga, q a intensidade de carga uniforme a que está submetida, E o módulo da elasticidade, S o esforço nas extremidades e I representa o momento de inércia central. Como não há deflexão nas extremidades da viga, vale as condições: w(0) 0 e w(l) 0. Para um estudo de caso, considera-se uma viga de aço com as seguintes características: l 120pol, q 100lb/pé 100 12 lb/pol, E 3, 0 107lb/pol2 , S 1000lb e I 625pol4 . bolsista de Iniciação Científica PICME, CNPq/Capes Obtém-se então o Problema de Valor de Contorno (PVC) d2w dx2 1.0 · 10 4 1875 w 1.0 · 109 4.5 (x2 120x) w(0) 0 e w(120) 0 , cuja solução analítica é dada por w(x) c1e mx c2e mx c3x2 c4x c5 , onde c1 ( 532 · 106)(1 e2· 3/125) e2· 3/125 e2· 3/125 , c2 ( 532 · 106)(e2· 3/125 1) e2· 3/125 e2· 3/125 , m 3 7500 , c3 1 240 , c4 1 2 e c5 5 32 · 106. Para obter a solução numérica do PVC, foi aplicado o método das Diferenças Finitas, substituindo-se as derivadas da equação pelas fórmulas de diferenças centrais [1] wi1 ( 2 h2 ( 1.0 · 104 1875 )) wi wi1 h2 ( 1.0 · 109 4.5 ) (x2 120x) w0 0 e wN1 0 , obtendo um sistema linear de equações, para i variando de 1 até N . Dividiu-se o intervalo [0, 120] (comprimento da viga) em 1200 subintervalos iguais, cujas extremidades são os pontos da malha xi ih, para i 0, ..., 1201, sendo h 0, 1 (passo), para os quais busca-se a aproximação wi. Quanto mais discretizado o intervalo, mais precisas são as aproximações. No entanto, tendo em vista o custo computacional e que a discretização aplicada foi suficiente para se obter um resultado satisfatório, não foi necessário um passo menor. A forma matricial do sistema gerado trabalha com uma matriz de coeficientes tridiagonal 1199 1199. O código em MATLAB a seguir implementa o método e resolve o sistema. Código 1: Solução Numérica de um PVC com o Método de Diferenças Finitas syms x %w’’ p(x)w’ q(x)w r(x), [a,b] dados inputdlg ({’P: ’, ’Q: ’, ’R: ’, ’n: ’},’Dados ’); limites inputdlg ({’a: ’, ’f(a): ’, ’b: ’, ’f(b): ’},’PVC’); passo (str2num(limites {3}) - str2num(limites {1}))/str2num(dados {4}); xVector str2num(limites {1}) : passo : str2num(limites {3}); %Sistema matricial: Aw d. Obtendo a matriz tridiagonal A: a(1) 2 (passo 2)*subs(dados {2},x,xVector (2)); %diagonal principal b(1) -1 (passo /2)*subs(dados {1},x,xVector (2)); %diagonal superior d(1) -(passo 2)*subs(dados {3},x,xVector (2)) ((1 (passo /2)*subs( dados {1},x,xVector (2)))*str2num(limites {2})); for i 2: length(xVector)-3 a(i) 2 (passo 2)*subs(dados {2},x,xVector(i1)); b(i) -1 (passo /2)*subs(dados {1},x,xVector(i1)); c(i) -1 - (passo /2)*subs(dados {1},x,xVector(i1)); %inferior d(i) -(passo 2)*subs(dados {3},x,xVector(i1)); end a(i1) 2 (passo 2)*subs(dados {2},x,xVector(i2)); c(i1) -1 - (passo /2)*subs(dados {1},x,xVector(i2)); d(i1) -(passo 2)*subs(dados {3},x,xVector(i2)) ((1 - (passo /2)*subs (dados{1},x,xVector(i2)))*str2num(limites {4})); %Fatoraçao LU l(1) a(1); u(1) b(1)/a(1); z(1) d(1)/l(1); for i 2: length(xVector)-3 l(i) a(i) - (c(i)*u(i-1)); u(i) b(i)/l(i); z(i) (d(i) - (c(i)*z(i-1)))/l(i); end l(i1) a(i1) - (c(i1)*u(i)); z(i1) (d(i1) - (c(i1)*z(i)))/l(i1); %Resolvendo o sistema w(1) str2num(limites {2}); w(length(xVector)) str2num(limites {4}); w(length(xVector) -1) z(length(xVector) -2); for i length(xVector) -2: -1 : 2 w(i) z(i-1) - (u(i-1)*w(i1)); end A Figura 2 apresenta os gráficos de ambas as soluções. Figura 2: Soluções Gráficas Com as soluções gráficas fica visível a proximidade entre os resultados. A Tabela a seguir exemplifica alguns dos valores encontrados, também para facilitar a comparação entre as soluções. xi w(xi) wi Erro absoluto Erro percentual 0 0 0 0 0 20 0.0006073605 0.0006073609 0.0000000004 0.0000658587 40 0.0010428818 0.0010428824 0.0000000006 0.0000575329 60 0.0011999063 0.0011999070 0.0000000007 0.0000583379 80 0.0010428818 0.0010428824 0.0000000006 0.0000575329 100 0.0006073605 0.0006073609 0.0000000004 0.0000658587 120 0 0 0 0 Tabela 1: Resultados e Erros Pode-se concluir, pela ordem de magnitude dos erros, que ficou entre 0.00005% e 0.00007%, a eficácia do método numérico.