• Nenhum resultado encontrado

PÁGINA DE INTERNET PARA ESTUDO DO CÁLCULO NUMÉRICO

N/A
N/A
Protected

Academic year: 2021

Share "PÁGINA DE INTERNET PARA ESTUDO DO CÁLCULO NUMÉRICO"

Copied!
34
0
0

Texto

(1)

i

RELATÓRIO FINAL DE INICIAÇÃO CIENTÍFICA

CAMPUS VOTUPORANGA

PÁGINA DE INTERNET PARA ESTUDO DO CÁLCULO

NUMÉRICO

ALUNO: ISABELA CASSIA DOMINICAL PARRA

ORIENTADOR: GUSTAVO CABRELLI NIRSCHL

MODALIDADE DE IC: PIVICT

VIGENCIA: 15/05/2015 A 15/12/2015

(2)

ii

RESUMO

Existem vários programas de computador voltados para cálculos de engenharia civil que

geralmente apresentam somente o resultado final ou alguns passos dos cálculos efetuados.

Objetivando principalmente mostrar os cálculos internamente programados e a teoria

envolvida, estão sendo desenvolvidos alguns programas online que auxiliarão no estudo de

Cálculo Numérico aplicado à Engenharia Civil. Neste período de inciação científica, foi

desenvolvido o cálculo do cosseno de um ângulo recorrendo ao polinômio de McLaurin e a

resolução de sistemas lineares por eliminação de Gauss, com pivoteamento parcial. Os

programas foram disponibilizados no próprio site da instituição (Instituto Federal de São

Paulo - Campus Votuporanga), sendo parte do NEV (Núcleo de Engenharia Virtual).

Palavras-chave:Cálculo Numérico. Cosseno. Polinômio de McLaurin. Sistemas Lineares.

(3)

iii

ABSTRACT

There are several computer programs for engineering calculations often present only the final

result or a few steps from the calculations. Aiming mainly show calculations internally

programmed and the theory involved, they are being developed some online programs that

will assist in Numerical Calculus study applied to Civil Engineering. In this research period, it

was developed to calculate the cosine of an angle using the McLaurin polynomial and solving

linear systems by Gaussian elimination with partial pivoting. The programs are available on

other website itself (Federal Institute of São Paulo - Votuporanga Campus), being part of the

NEV (Virtual Engineering Center).

Keywords: Numerical Calculation. Cosine. Polynomial McLaurin.Linear systems. Gaussian

(4)

iv

SUMÁRIO

INTRODUÇÃO ...1

APRESENTAÇÃO TEÓRICA ...2

2.1 Cosseno Via Polinômio De Mclaurin...2

2.2 Sistemas Lineares Via Eliminação de Gauss ...3

RESULTADOS ...8

CONCLUSÕES ... 14

REFERÊNCIAS BILBIOGRÁFICAS ... 15

APÊNDICE 1: Códigos utilizados na programação... 16

Código para o cálculo do Polinômio de McLaurin ... 16

(5)

v

LISTA DE FIGURAS

Figura 1: Link de acesso para os programas, na página do NEV...8

Figura 2: Interface para o cálculo do cosseno. ...9

Figura 3: Relatório em “pdf” gerado com o exemplo dos dados da Fig. 2. ...9

Figura 4: Interface para a resolução de sistemas Lineares... 10

Figura 5: Exemplo de uma matriz 3x3 ... 10

Figura 6: Relatório em “pdf” gerado com o exemplo dos dados da Fig. 5. PARTE 1... 11

Figura 7: Relatório em “pdf” gerado com o exemplo dos dados da Fig. 5. PARTE 2... 12

Figura 8: Relatório em “pdf” gerado com o exemplo dos dados da Fig. 5. PARTE 3... 12

(6)

vi

LISTA DE ABREVIATURAS

(7)

vii

LISTA DE SÍMBOLOS

P

Polinômio de McLaurin

x

Ângulo

n

Posição a qual pretende-se truncar

E

Erro

aij Termo da matriz dos coeficientes

bi Termo da matriz independente

m Fator da linha

(8)

1

CAPÍTULO 1

INTRODUÇÃO

Atualmente, com o avanço das tecnologias, não é mais preciso realizar cálculos

enormes em folhas de papel, sendo possível utilizar programas de computador comerciais ou

criar softwares de acordo com a necessidade. A maioria dos softwares apresenta alguns passos

efetuados ou simplesmente mostra os resultados finais. Pode-se citar como exemplo o

(FTOOL, 2015), programa de análise estrutural e o (TQS, 2015), sobre dimensionamento de

concreto armado.

O NEV – Núcleo de Engenharia Virtual (

http://vtp.ifsp.edu.br/nev

) pretende elaborar

softwares que apresentem todo o desenvolvimento dos cálculos até o resultado final, para

auxiliar alunos, profissionais recém-formados e professores que quiserem utilizar os

programas no ensino-aprendizado.

No caso deste relatório, será apresentado um software voltado para o cálculo numérico

do cosseno, recorrendo ao polinômio de McLaurin e a resolução de Sistemas Lineares

qualquer, pelo método de eliminação de Gauss, com pivoteamento parcial, conteúdo que

podem ser encontrados em Quadros e Bortoli (2009).

A evolução tecnológica motivou a utilização da programação direta em páginas de

internet, por meio da linguagem HTML/Javascript, que pode ser estudada em

W3schools(2015).

(9)

2

CAPÍTULO 2

APRESENTAÇÃO TEÓRICA

Na engenharia, as situações físicas são transformadas, na maioria das vezes, em

equações matemáticas para a resolução dos problemas. Os métodos analíticos de resolução

nem sempre são capazes de solucionar as equações ou são de difícil implementação

computacional. Por isso foram criados métodos numéricos de resolução.

2.1 Cosseno Via Polinômio De Mclaurin

Conforme Quadros e Bortoli (2009), para se calcular numericamente o cosseno de um

ângulo, de forma aproximada, pode-se recorrer à resolução do Polinômio de McLaurin

“P(x)”, conforme a Eq.(1).

𝑃 𝑥 = (−1)

𝑛

𝑥

2𝑛

2𝑛 !

𝑛=0

(1)

Em que:

x é o ângulo para o qual se pretender calcular o cosseno, em radianos; e

n é o número de termos que se pretende usar (truncamento).

Por se trucar o polinômio, há um erro de aproximação em relação ao cosseno exato, que

diminui à medida que aumenta o número de termos. O Erro “E” pode ser obtido pela a

fórmula dada a seguir:

(10)

3

Em que:

cos (x) é o valor exato calculado por meio de fórmula matemática direta (interna da

linguagem).

2.2 Sistemas Lineares Via Eliminação de Gauss

A resolução de sistemas lineares pelo método da eliminação de Gauss consiste em

construir, a partir de um sistema de equações lineares qualquer, um sistema triangular A′X =

B′ equivalente a AX=B, ou seja, ao sistema original, que pode ser resolvido por retro

substituição. O processo é conhecido também como Escalonamento.

Citam, Quadros e Bortoli (2009), que as seguintes operações, quando aplicadas a um

sistema linear, resultam num sistema equivalente:

1. Mudança de ordem de duas equações.

2. Multiplicação de uma equação por uma constante não nula.

3. Adição de um múltiplo de uma equação a outra equação.

Sendo assim, será reproduzida a seguir a resolução de um sistema de ordem 3 literal,

sendo que o mesmo processo pode ser aplicado a sistemas de qualquer ordem. Seja o seguinte

sistema:

A partir do sistema, considera-se a matriz dos coeficientes aij aumentada contendo os

termos independentes bi:

(11)

4

O objetivo é obter um sistema triangular, ou seja, todas os elementos abaixo do

elemento aij, sendo i=j, serão nulos, da forma genérica:

O processo consiste em fazer uma combinação linear para zerar os elementos da

primeira coluna abaixo do pivô (primeiro elemento não-nulo de cada linha; a

11

na matriz

abaixo), obtendo:

Uma combinação linear (considerando os critérios 1 a 3 dispostos no começo da

explicação) que torna a nova matriz equivalente à matriz anterior é, para cada linha “i”, a

partir da segunda, subtrair a primeira linha multiplicada pelo fator:

Sendo assim, os novos termos para o exemplo são dados por:

linha 2

linha 3

Repete-se o processo para zerar os elementos inferiores à diagonal da segunda coluna,

sendo que os elementos da matriz ficam:

(12)

5

linha 3

Quadros e Bortoli (2009), lembram que o sistema final não pode ter elementos nulos

na diagonal, ou seja, os elementos a11, a22, a33 etc. não podem ser nulos, o que resultaria

num sistema sem solução por este método, pois, neste caso, não seria possível calcular os

multiplicadores “m”. Este problema pode ser evitado pelo uso da estratégia de pivoteamento.

Esta consiste em trocar linhas (ou colunas) de forma a ter sempre o pivô não-nulo. A técnica

de pivoteamento parcial tem o seguinte esquema de escolha do pivô:

1º Pivô = elemento de maior valor absoluto na coluna 1;

2º Pivô = elemento de maior valor absoluto na coluna 2;

E assim sucessivamente.

A seguir apresenta-se um exemplo numérico com pivoteamento parcial:

2𝑥 − 4𝑦 + 7𝑧 = 3

9𝑥 − 3𝑧 = 3

4𝑥 − 8𝑦 + 5𝑧 = −4

A matriz aumentada para este sistema é:

2 − 4 7 3

9 0 3 − 4

4 − 8 5 − 4

Fazendo-se o pivoteamento parcial, ou seja, colocando a linha com o maior pivô como

a primeira:

9 0 3 − 4

2 − 4 7 3

4 − 8 5 − 4

Fazendo uma operação para zerar os termos abaixo da linha do pivô, conforme

explicado anteriormente:

(13)

6

m21 = a21/a11 = 2/9 = 0,222

m31 = a31/a11 = 4/9 = 0,444

a‟21 = 0

a‟22 = a22 – m21*a12 = (-4)-0,222*0 = -4

a‟23 = a23 – m21*a13 = 7-0,222*(-3) = 7,666

b‟2 = b2 – m21*b1 = 3-0,222*3 = 2,334

a‟31 = 0

a‟32 = a32 – m31*a12 = (-8)-0,444*0 = -8

a‟33 = a33 – m31*a13 = 5-0,444*(-3) = 6,332

b‟3 = b3 – m31*b1 = (-4)-0,444*3 = -5,332

9 0 3 − 4

0 − 4 7,666 2,334

0 − 8 6,332 − 5,332

Fazendo-se novamente o pivoteamento parcial, ou seja, colocando a linha com o maior

pivô (em módulo) como a próxima linha de resolução:

9 0 3 − 4

0 − 8 6,332 − 5,332

0 − 4 7,666 2,334

Para o segundo pivô:

m32 = a32/a22 = -4/-8 = 0,5

a‟31 = 0

a‟32 = 0

a‟33 = a33 – m32*a23 = 7,666-0,5*6,332 = 4,5

b‟3 = b3 – m32*b2 = 2,334-0,5*(-5,332)= 5

9 0 3 − 4

0 − 8 6,332 − 5,332

0 0 4,5 5

E, finalmente, resolvendo o sistema triangular superior:

z = a33/b3 = 4,5/5 = 1,111

(14)

7

y = b2 + (a23*z)/a22 = -5,332 + ( 6,332*1,111)/-8 = 1,5462

x = b1 + ((a13*z)+(a12*y))/a11 = -4 + ((3*1,111)+(0*1,5462))/9 = 0,7037

Portanto,

(15)

8

CAPÍTULO 3

RESULTADOS

Na página do NEV na internet já se encontra o cálculo do cosseno de um ângulo por

meio do polinômio de McLaurin e a resolução de sistemas lineares eliminação de Gauss, com

pivoteamento parcial. O acesso é em

http://vtp.ifsp.edu.br/nev/

, no link apresentado na Fig. 1

a seguir:

Figura 1: Link de acesso para os programas, na página do NEV.

Escolhido acessar o cálculo do Cosseno Via Polinômio de McLaurin, e clicado no link,

aparece a página mostrada na Fig. 2 a seguir, já com um resultado de exemplo:

(16)

9

Figura 2: Interface para o cálculo do cosseno.

Pode-se observar que o ângulo é digitado em graus e não em radianos, sendo que a

transformação é feita internamente pelo programa. Como principal objetivo das pesquisas do

NEV, é possível gerar um relatório detalhado em “pdf”, numa nova guia, mostrado no

exemplo da Fig. 3 seguir:

(17)

10

Acessando o link para a resolução se Sistemas Lineares por Eliminação de Gauss,

aparecerá a página mostrada a seguir, na Fig. 4:

Figura 4: Interface para a resolução de sistemas Lineares.

Para resolver um sistema linear, o primeiro passo é determinar a ordem do sistema e

clicar em gerar para que apareça a matriz a ser preenchida. Abaixo, na Fig. 5, segue o

exemplo de uma matriz 3x3, a mesma apresentada na Apresentação Teórica. Clicando-se no

botão CALCULAR aparece:

(18)

11

Outra alternativa para a entrada dos dados da matriz é escolher um arquivo TXT, que

contenha a matriz que se deseja resolver. No botão “EXEMPLO DE TXT”, que pode ser visto

na Fig. 5, contém um exemplo de como a matriz deve ser declarada no arquivo para que o

programa possa ler.

Para visualizar o relatório de cálculos, o maior propósito deste trabalho, é preciso

clicar no botão “Gerar Relatório”. Então o pdf é gerado, contendo toda a resolução do

sistema, passo a passo, até chegar na solução (x1, x2 e x3, no caso do exemplo anterior). Na

Fig. 6, Fig. 7, Fig. 8 e Fig. 9, está o relatório pdf gerado para o exemplo anterior.

(19)

12

Figura 7: Relatório em “pdf” gerado com o exemplo dos dados da Fig. 5. PARTE 2.

(20)

13

Figura 9: Relatório em “pdf” gerado com o exemplo dos dados da Fig. 5. PARTE 4.

(21)

14

CAPÍTULO 4

CONCLUSÕES

O avanço das tecnologias está levando os profissionais da engenharia a simplesmente

usar os softwares, “apertando botões” e não se atentando (e, muitas vezes, não entendendo)

aos cálculos internamente realizados. Justamente para auxiliar o entendimento da resolução

dos problemas é que foi criado o NEV. O meio on-line foi escolhido para propiciar

praticidade e ausência de custos aos estudantes e profissionais. Esses primeiros resultados

aqui apresentados demonstram a possibilidade real da criação de muitos outros aplicativos

que auxiliarão nos estudos de engenharia.

(22)

15

REFERÊNCIAS BILBIOGRÁFICAS

FTOOL.Ftool para Windows, versão 3.00. PUC-Rio, 2012. Disponível em

<http://www.tecgraf.puc-rio.br/ftool/>. Acesso em 29 de junho de 2015.

QUADROS, Régis S. de; BORTOLI, Álvaro L. de. Fundamentos de Cálculo Numérico

para Engenheiros. Porto Alegre, 2009. 265p.

TQS. TQS Online, versão 18. [S.l.]: TQS Informática, 2015. Disponível em

<http://www.tqs.com.br/>. Acesso em: 10 de junho de 2015.

W3SCHOOLS.W3schools Online. [S.l]. Disponível em <http://www.w3schools.com>.

Acesso em 05 de maio de 2015.

(23)

16

APÊNDICE 1: Códigos utilizados na programação

Para que se possa entender a criação do software citado anteriormente, segue o código

em linguagem HTML/Javascript utilizado. O código é dividido em duas partes: a primeira

apresenta o corpo da página (HTML), e a segunda traz as funções Javascript.

Código para o cálculo do Polinômio de McLaurin

Arquivo.html

<!DOCTYPEhtml> <html>

<metahttp-equiv="Content-Type" content="text/html;charset=utf-8" /><!-- PARA CORRETA ACENTUAÇÃO /><!--/><!-->

<title>Cosseno de Ângulo</title> <scriptsrc='../Comuns/pdfmake.min.js'></script> <scriptsrc='../Comuns/vfs_fonts.js'></script> <scriptsrc='funcoes-cosseno.js'></script> <body> <blockquote><blockquote><!-- 2 tabs --> <form> <br><br>

Ângulo x (graus decimais):<br>

<inputtype="number" id="angulo" value="30"><br><br>

Número de termos do Polinômio de Mclaurin (quanto maior, mais preciso):<br>

<inputtype="number" id="nvezes" value="5"> <br><br>

</form>

<buttononclick="fcos()">CALCULAR</button> <br><br>

<style>ins{text-decoration:none;}</style> cos(x) exato = <ins id="dcos"></ins> <br><br>

<style>ins{text-decoration:none;}</style>

cos(x) pelo polinômio de McLaurin = <ins id="demo"></ins> <br><br>

<style>ins{text-decoration:none;}</style> Erro = <ins id="derro"></ins> <br><br> <buttononclick="fpdf()">GERAR RELATÓRIO</button> </blockquote></blockquote> </body> </html>

Arquivo funcoes-cosseno.js

functionfcos() { // resolve o cos(x) //

ang = document.getElementById("angulo").value;

//COSSENO EXATO

angr=(ang/180)*(Math.PI) //conversão para radianos cos=Math.cos(angr)

document.getElementById("dcos").innerHTML = cos;

//POLINÔMIO DE MCLAURIN

n = document.getElementById("nvezes").value; n=n-1; //para considerar o zero

angr=(ang/180)*(Math.PI) //conversão para radianos termo=[]; //variável com cada termo do polinômio imp=''; //variável com a impressão de todos os termos do polinômio

m=0;

for (i = 0; i <= n; i++) {

termo[i]=((Math.pow(-1,i))*((Math.pow(angr,2*i))/(fatorial(2*i)))); //variável com o termo "i" do polinômio m=m+termo[i]; imp=imp+'\r\nTermo '+i+' = ((-1)^'+i+')*('+angr+'^('+2*i+'))/(2*'+i+')! = \r\n'+termo[i].toPrecision(2); } document.getElementById("demo").innerHTML = m; erro=(cos-m) document.getElementById("derro").innerHTML = erro.toPrecision(1); //imprime com 1 algarismo significativo

}

function fatorial(num){ // função fatorial if(num>20) {

document.getElementById("demo").innerHTML = "limite do fatorial atingido";

document.getElementById("derro").innerHTML = "limite do fatorial atingido";

alert("limite do fatorial atingido"); exit; }

if(num > 1)

(24)

17

else return 1; }

functionfpdf() { //VER ESTE SITE PARA ESTILOS DO PDF - https://github.com/bpampuch/pdfmake fcos(); vardocDefinition = { content: [ { text:

'\r\nÂngulo x (graus) = '+ang +'\r\n\r\nÂngulo x (radianos) = '+angr },

{ text:

'\r\nCos(x) exato = '+cos, bold: true }, { text: '\r\nPolinômio de McLaurin:' }, {

//Mclaurin.jpg EM http://dopiaza.org/tools/datauri/index.php. O site já dá o abaixo „(...)„: image:'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2 wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBw cGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2 wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDA wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD AwMDAwMDAz/wAARCAA1ALsDASIAAhEBAxEB/8QAHwAAAQ UBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgED AwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEI I0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdIS UpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJW Wl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2 uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAA AAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3 AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLR ChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYW VpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpa anqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8 vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9/KKKKACiiigAooooAKKK KACiivEP25P+Cgfw9/4J5eB9D8RfEhvEFvo/iHVE0a1udO0qW9jjunGY 0lZBtiD4IVnIBIxmk2lv6ffovxCzZyH7VX7eviP9ke3vfHGu+B7LU/g5p V//AGRqGp6dq4bXLCcuIxctZsixtbeadrbZvMjUGUqUBx6t8Dfib4q8Y3 Lw+K9O8KWjahaLq2lS6Bq7ajDJZuQFEjtGnz8qd6ZjfJ2n5TXjs/xZ8AX fxPm8ayfs5fFSbxVcwm3k1V/A6vPJGU2EFjJzlPlJ7rx0riT+3T8Cf+Cdnh O9u/8AhSHxW+FXhy+lEt/e2nw0u00+HbwGmkt1dIo1B43EKATinT00l/ X9PX8LdQlr8H9f1t+O59wUVX0vVLfW9Mt72zniubS7iWeCaJgySowD KykcEEEEH3qxQ007ME01dBRRRQAUUUUAFc78VvHrfDLwFfa1Hp eoa1LbGOOKyso2eWeSSRYkHAJChnBZsEKoZjwKn8fS68vh/Z4bTT/7 UmlSNZr7cYLVCfnlZVIZ8LnCgjJIyQMmvnb4CfF/44ftS/CGfX9Ivfh54 a0zxDpmqW+hapLY3VzcRXMGoNbWl8bYuqyQTW6PMU8xSrNEMs C2TW9l/Wl/x6eYLfX+v6/roegfDn9s7w7ruoeKNM8WPYeCdZ8K+Im8 Nzw3upRSQXlx9lhu4zBL8ofdDPGdmAytlcZHPqXhDxjpXj/w7bavomo WmqaZeAtBdW0gkjkwSpwR6EEEdiCK8A+Ef7EuvaJoXhC38Za54T1 WXwv4pl8Ty/2Toctqmpym3kVHmM080kk/2qU3LSsxy8cQVV2CvT/2 Yfg9qPwJ+EVn4d1TVrbWryCe4uZbuC2aBZ5Z5nnlkKszHc8sjuecAtgc AVVlZpvVW+eiu/W99Nhef9bv8lb1v5HoVFFFSMKKKKAPnn/gp1p+m av+yxeWN5pkOo6lqmo2en6Rm2aeaC6lmUB4gil9+wScIMsMrznB85+L fwf8O638OtA8NfB74ca5p3j21ktvsXin/hGLrw2dJ8nYslxcXc0ULSb4zIC g8wuSTtyFz6j+0J8I/iZ8VfjF4L1PT7LwO3hfwRqh1WOzvNauo7jVJgm2 N322brFsySAPM5Oc9h7zEWMS7wqvgbgpyAe+DgZ/KlTVo8396/nolb8 b+dvlZzfvJdl8rt6/hbfT11PJ/Bvi678ZfHTxQdQ1Bk0b4a2tvYsUfy7e5vpr cT3M8gB/5ZxPEqqchfMc9SMZ8X7fPw/fxra+Hm/4SeLVbu70+1EL6Bd Dylv3kjsp5Pk+SGZ4pArNjGxiwUDNZWmad4h8CfGD41aBoEWiWeve NbWPxN4Vn1bzHsb27+xJZyiYJ82yOS3ty6oS2yUEdag/Z/8Agh8UfBX xx8X+LfEr+C/O8fXlhd6ncWE9xLJZ21pYpbx2EKSIAVM/nSmQsMCd gEJ+anTu2ufTZ+W+qT18/JWtbZEtWdova+/ordf+He9tTsvg74tutC+N3jf 4e3l093Fo8Npr2kPLKZJksrwzKYmY8kRz28wXJJ2FR2rV+Nv7Unw//Z xfT18b+J7Dw6dUDm0Fyrnz9mN2NqnpuH51zfwm04eNP2r/AIieNbczH TbXTdO8I28hA8q5ltZLm4ndD1O17sRE9N0TY6Gui+OHwJvPjO+nm0 +IXxA8C/YA4YeGru1g+17sf63zrebO3HGMdT1okrKPJr/X+VivtSv/AE +vfrf/AIBgfDr9vz4O/FvxpY+HfDnjzSNW1rU3KWtpCsu+ZgpYgZQDo pPXtXR/tO/s2eEv2vvgL4n+G/jnTI9W8MeLLJ7K8hb7yZ5WWNv4ZEY K6sOQyg1zPw3/AGStT+Hvjaw1if4zfGPxLFZOWbTdY1GwlsrrKlcSLH ZxuQM5GHHIH0r1+5uY7K2kmmkSKKJS7u7bVRQMkkngAClUjCUL S+YQlKMrx3Pzz/4JJftK+Lv2aPjHrX7Fvxz1WW/8efD61F58P/El18i+O/ DYyIWUn71xbqNjrknCHr5bMf0LvLOLUbOW3uIo54J0McsUihkkUjB Ug8EEcEGvlrw38JNA/b7/AGnfBvxr1XQrY+FPhLLdD4eX0kZS71u5nT yp9SJ4IswBtgQ/6w7piMeXn6qq3KUop1Pi6+fZvza1a79m7KVFQm1DR fk+qXknt92yTfkXxTii8Iv8Pfhj4cL6NZ+I7uS3cWrlHs9MtIWmmSI5yoY +TCCPuCbjoK9bjjEMaqvCqMD6V4x8ebi30z4sfCj4hwmC70XRtQvdG1 G9SXKWVtfwiNZsjjaLqC2RiSAocnOAa0/il+w58H/jh4xn8ReLfh14U8 Ra3dIiS319YrLNIqKFUFj6AACoXPq3tf8ARf10KfLol2/V/wBfpazfpHiS 1v73Q7iLS7yDT791xDcT2xuY4mz1MYZN3fjcK8R/Y88a+If2sP2GtC1j xPqzQ+JdcS9STUtNj+yGGaG9niiljRThdvlIdpJBwQcgmu3+G/7NvhH9 mzw1rEfwu8FeFvDt5qQWR4IFNlb3kiZCea6I7AAE8hT16VxP7F3w98 Q/scfshWuh/EefwvCfCa3l1LeaNeT3MEkUlxNcE4lhjcMPMChQG3Ecdc VT5OSV/L9bhHnurdzk3tvE/wC1x4d+EXiqGC+Ntpi6r/wlEGnau9jDc3V tHNaNZ8MpeKa7Qg5BAWIcr39d/ZB8P+I/Cf7N/hPS/FsV/Fr9hYrDdi9u Fnn3jqGdWcEDO0fMSVVSTk1B+xn4Avfhx+zloNlqMdxBqF9JeazcwT gCS1kvrua8MLY4zH5+w/7tU/21f2X/AIVftTfBebTvjFoaa74Q8Nytr7xvf 3Nmts8MMoMpe3kjc7Y3k4Jxz0yBV1OWm5xjtf8AK/8AXbyuKN5WS 17enT+t/Nqx1Pxq+A+h/HvTNGtdbm1q3Gg6nHq9nJpmpz2EizokkY3NE yl0KyuCjZU5BxkAil8Cf2ZvC37OelpY+GY9Tjsra0i06ygu7+W6j020iz5 dtAHJ2RjPQcnjJOBj4V8Q/wDBI39kTwP4I8JTar8CrU+L/iDcvD4c8NL 421O1uL1hE9wITJPfKnmrbozOAeoIAOM1rfs0f8Egv2Lf2lfCer3dt8Dr/ QNY8M6zceHde0fUPE+rG40rUINpkhLR3rRyLtdHV0YqyOpHXAzjo5 KPz/D8rpeV/MHpZvr+O7/R29H2P0Vor4Y8d/8ABAP9lTSvB99eaF8Fb TU9StEMsVpL4r1pBdbTlogwuztcgEAkYDYzxmuA+M3/AASX/Yz+Hv 7Fvib4yaF8D/8AhJbLRfCtx4os9P8A+Et1q2e/WK3aYQljcsY2O3acqSpz xxik5JJt9DSnTlOShHduy9T9JqK+ef2cP2drb9m39kzw1pXwC8KeGvBE Wt3ljr17pOvX9/f29tFc+Q18FlLtKZxCCseSE3quQATX0NWk6bg3GW6 bX3GUZKUVKOz1CiiioGFFFFAEFxptvd3UE8sEMk1qS0EjoC0JI2kqe oyCQcdjU9FFAENhp8GlWiwWsEVvAmdscSBFXJJOAOOSSfxqaiigAr w39vv9nLx9+1P8GoPCPgbx5pngJLq/im1qa80dtSXVbNDuayZVliKxSs AJMNlk3JwGNe5V43+01468ZeHPiL8OdH8K6nDpkHiHUbmPVZX037 Z5VnDaSzyyf7DjYixnkF5BuVhwYna2vl/Xp38hq+tv69PPt1vtqeVWX7

(25)

18

OX7X+mWcVvbftDfCm3t7dBHFFF8LCiRIowFUC/wAAAABXBfHn9g L9sD49+H5tI1T9sjT/Cnh27jMOpQ+F/h9b6bcTwkjeFumuHmiJXI3I69T XbWn7WfxY1n9n/AOH+v+H9Pvtc1DWrW4k1KWw8CNrgBWT9zvC6 nYiFzEVLKA437h8u3FZ3iL4p/EX4neD/AApL480rUNN0Oz+IOjrq66h 4PPh+CSwZZ+ZEbUb4Sxi6+y5JMYU7cg5yN1TcqnJK29tdt7fP9R25HZ ee3km/0PrTwZ8PtF8HfDbS/C+n2kLaBpunxadb28n71Ht0jCKrZzvyo5Jz nJz1rcRBEgVQFVRgADgCvD/2CUvE+Gni3chj0I+ONdPh1QCI/wCzftr +V5Q6eVu8zZj5dm3HGK9xqHJy999bP71fXz7k+zVNunHaLa+52+7TQ KhvtPg1S38q5ghuItwbZKgdcggg4PGQQCPcVNRSAK8h/b3huZf2O/H7 W0wg+z6Wbm5cruAtY3WS4BHcGFZB+NevVFfWUOp2U1tcRJNb3C NFLG65WRWGCpHcEGoqR5oOPcunLlkpPoeIftrf tVeEP2VPgtpPjLWNHvdcme6jg8Piw8PXetPbXEsTBZ9lpFLLHGsZYs6 rnblRywB+X/h9oHhn45fCz4cWnw9k+It5J49+KU2o+KPEepaTqHhy8v3 SM32pXXlTRxy28ciwQ2kfAHlHy1J+Yn71+GXgKP4YeDLTQra8u7yx 00GGy+0kM9vbj/Vw7sZYIuFBOWwoySea3605Yc7k1fVNfJp2e9721tb p2Rla8Un2a+bTV19+nz7s+a/2Cbtk+IXxqiGn6hpFg3jOeLT9MkilSDTrS 0ggsEcb+N1y9tLcDZwUdWPLZNX4Iw2enf8ABNDW5PFC6gNDuLPx FeSi0tJNRuG06a+vZYmihiDPLut3QoiAkgqAM19DePfCf/Cd+EL/AEc3 t3p0WoxG3mntW2zCNuHCN/CSuRuHIzkYIBq54f0Gz8K6FZaZp1vFZ 2GnQJbW0EYwkMaKFVQPQAAUqlqlF0ZLRpLXW9k0/v8A6t10TSnz W0vfpp5J/wBbLfpU8APbP4E0U2SzLZmwgMCzQtDII/LXaGRsMhxjK sMg8GteiiqnLmk5dzOEVCKiugUUUVJQUUUUAFFFFABRRRQAUU UUAFNliWeJkdVdHBVlYZDA9QRRRQARoIkCqAqqMAAYAFOooo AKKKKACiiigAooooAKKKKACiiigD//2Q==', width: 150, alignment: 'left', }, { text: '\r\nNúmero de termos = '+(n+1) +'\r\n'+imp }, { text:

'\r\nSomatório dos termos = cos(x) aproximado = P(x) = '+m, bold: true },

{ text:

'\r\nErro = '+erro.toPrecision(1)

+'\r\n\r\n\r\nREFERÊNCIAS BIBLIOGRÁFICAS'

+'\r\n\r\nQUADROS, Régis S. de; BORTOLI, Álvaro L. de. Fundamentos de Cálculo Numérico para Engenheiros. Porto Alegre, 2009. Disponível

em <

http://www.inf.ufrgs.br/~rlflupchinski/files/20112/NUMERICO/numerico -bortoli.pdf >. Acesso em outubro de 2014.'

}, ] }

pdfMake.createPdf(docDefinition).open(); //ABRE NUMA OUTRA ABA//

(26)

19

Código para a resolução de Sistemas lineares via Gauss

Arquivo.html

<!DOCTYPE html> <html>

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

<title>Sistema Linear por Eliminação de Gauss</title> <script src='../Comuns/pdfmake.min.js'></script> <script src='../Comuns/vfs_fonts.js'></script> <script src='funcoes-sistemagauss.js'></script>

<p align="center"><img src="../Comuns/IFSP-VTP.jpg"></p><!--IMAGEM CABEÇALHO -->

<a href="http://vtp.ifsp.edu.br/nev/"><H3 align="center">VOLTAR À PÁGINA PRINCIPAL DO NEV</H3></a>

<center>

<TABLE BORDER=4 CELLPADDING=10>

<TR><TH> Título </TH><TH> Data </TH><TH> Autor </TH><TH> Orientador </TH><TH> Tipo </TH><TH> Curso </TH></TR>

<TR><TD width="250">SISTEMAS LINEARES POR ELIMINAÇÃO DE GAUSS</TD><TD width="50"> 00/00/2015 </TD><TD width="150"><a href="http://lattes.cnpq.br/7045466164571787" target="_blank"> Isabela Cassia Dominical Parra </a></TD><TD width="150"><a href="http://lattes.cnpq.br/1264758453590854" target="_blank"> Prof. Gustavo Cabrelli Nirschl </a></TD><TD width="150"> Iniciação Científica Voluntária </TD><TD width="150"> Engenharia Civil </TD></TR>

</TABLE> </center>

<blockquote><blockquote><!-- 2 tabs --> <body>

SISTEMA LINEAR POR ELIMINAÇÃO DE GAUSS <br><br>

Abaixo segue um exemplo de como o sistema linear deverá ser montado na matriz

<TABLE BORDER=0 CELLPADDING=10>

<TD><img src="sistemalinear.png"></TD><TH>Equivale a </TH><TD><img src="matriz.jpg"></TD><!--Imagem exemplo--> </TABLE>

<br><br>

Ordem do sistema (n):

<input type="number" id="ordem" value="2"><button onclick="gerar()">GERAR</button>

<br><br> </form> OU

<input type="file" id="fileToLoad"></td><td>

<button onclick="loadFileAsText()">LER</button> ****** <button onclick="exemplotxt('dadosexemplo.txt')">EXEMPLO de TXT</button>

<br><br>

<ins id="tabela"></ins><!-- TABELA IMPRESSA, DE ACORDO COM A FUNÇÃO gerar() no arquivo .js -->

<br>

<ins id="matrizprov"></ins> <br><br>

<ins id="resultado"></ins><!-- IMPRESSÃO DOS RESULTADOS, DE ACORDO COM A FUNÇÃO calcular() no arquivo .js --> </blockquote></blockquote> </body> </html>

Arquivo funcoes-sistemagauss.js

function gerar(){ n=document.getElementById("ordem").value; //lê n n=Number(n); //para definir que n é número, não texto col=n+1; //número de colunas, porque a última coluna são os valores após a igualdade

//abaixo, html dentro do javascript, para criar a tabela dinamicamente (nxn) html=""; html+='<table border>'; for (i=1;i<=n;i++){ html+='<tr>'; for(j=1;j<=n;j++){ ntermo=i+','+j;

conteudo='<input type="number" id='+ntermo+' value="0"/>'; html+='<td>'+conteudo+'</td>';

}

ntermo=i+','+col;

conteudo='<input type="number" style="background-color: #20B2AA" id='+ntermo+' value="0"/>';

html+='<td>'+conteudo+'</td>'; html+='</tr>';

} html+='</table>';

html1='Obs: Matriz COMPLETA (a última coluna contém os termos independentes, os valores após a igualdade).'+'<br><br>'+html

+'<br><br><button onclick="calcular()">CALCULAR</button><br><br>' document.getElementById('tabela').innerHTML=html1; } function loadFileAsText() { var fileToLoad = document.getElementById("fileToLoad").files[0]; var fileReader = new FileReader();

fileReader.onload = function(fileLoadedEvent) {

var textFromFileLoaded = fileLoadedEvent.target.result;

(27)

20

var texto = textFromFileLoaded; //lê todo o texto do arquivo, sem separar

separar(texto); //antes de fechar o arquivo, a seguir

};

fileReader.readAsText(fileToLoad, "UTF-8"); }

function separar(texto){

var linha = texto.split('L'); //sai linha[1], linha[2], etc. até linha.length valor=[];

for(var i=1;i<linha.length;i++){ var valorl = linha[i].split("|"); for (c=1;c<valorl.length;c++){ valor[i+','+c]=valorl[c]; } } n=(linha.length)-1; col=(valorl.length)-1;

if (col!=(n+1)) { //encontra o maior pivô em módulo alert('Erro: '

+'\rnúmero de linhas = '+n +'\rnúmero de colunas = '+col

+'\rO número de colunas tem que ser o número de linhas + 1.'); return; //pára o programa

} html=""; html+='<table border>'; for (i=1;i<=n;i++){ html+='<tr>'; for(j=1;j<=n;j++){ ntermo=i+','+j;

conteudo='<input type="number" id='+ntermo+' value='+valor[ntermo]+'>';

html+='<td>'+conteudo+'</td>'; }

ntermo=i+','+col;

conteudo='<input type="number" style="background-color: #20B2AA" id='+ntermo+' value='+valor[ntermo]+'>';

html+='<td>'+conteudo+'</td>'; html+='</tr>';

} html+='</table>';

html1='Obs: Matriz COMPLETA (a última coluna contém os termos independentes, os valores após a igualdade).'+'<br><br>'+html

+'<br><br><button

onclick="calcular()">CALCULAR</button><br><br>'

document.getElementById('tabela').innerHTML=html1; document.getElementById('resultado').innerHTML=''; //SE TIVER SIDO GERADO ALGO ANTES

ordem.setAttribute("value", n); } function exemplotxt(filename){ impressao='L|100|2.4|3|10' +'\r\nL|4|5|6.25|11.5' +'\r\nL|4.9|5|-6|0'; var a = document.createElement('a'); contentType = 'data:application/octet-stream,';

uriContent = contentType + encodeURIComponent(impressao); a.setAttribute('href', uriContent); a.setAttribute('download', filename); document.body.appendChild(a); a.click(); document.body.removeChild(a); } function calcular(){ //CABEÇALHO DO PDF **************************************************** docDefinition = { content: [ { columns: [ {

//Logo-vtp.JPG EM http://dopiaza.org/tools/datauri/index.php. O site já dá o abaixo: image: 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDA AgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJ C4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwL DBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjL/wAARCACtAZwDASIAAhEBAxEB/8QA HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAt RAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJx FDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q 0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJ ipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1N XW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQE BAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFB AQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzU vAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1R VVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJ maoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk 5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD36kZ1VcswA96ju J47aCSeVwscalmY9ABXhHjPx/e67dSWtjK8GnKSoCEhpfc+3t+dY1q0a Suz0styytj6nJT0S3Z65f8Ajfw5p0hjuNVgDr1VMuR+C5qOz8e+Gb6QR w6rCGJwBICmf++gK+caK4P7QlfY+sXCFHl1qO59YJIkihkYMp6EGn Zr538J+OdQ8NXSI0jz2BIDwsc7R6r6fSvZtU8QxL4cTULGQOLgAROP cZz+WfxrqWMh7N1H0PlM1yqtl0rT1i9ma1zqtjZttnuoo2/ulufyqv8A8JJp P/P7HXlskrzOXkYszHJJPJpleBPP6l/dirHhuuz1T/hI9J/5/Y/1q1a6nZXhx b3MUhxnCtz+VeQ0+GaSCVZYnZXU5BB6U4Z9Uv78dAVd9UezZqnc 6rY2bbJ7qKNv7pbn8q5+fxJJ/wAIql0uBcufKyOzev5DP41wkkjyuXkYsz HJJOSa7cZnEaSSpq7Zc6ttj1P/AISPSf8An9j/AFo/4SPSf+f2OvKqK8/+3 q38qI9u+x69banZXhxb3Mch9Fbn8qt5rxmGeW3lWWJ2R1OQQcV6noO oHU9KiuG+/wDdf6j/ADn8a9XLszWKbhJWZpTqc2hqUUgpa9c1CiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooA8++LWrPYeG47SJirXkmx iP7g5P9B+NeG1678aImMGkzc7FeRT6ZIXH8jXkVeNjm3Vsz9L4Wpwj gVJbtu4UUUVxH0oV3XhjVGm8Ly6bIxPkXIkiz2VlOR+fP41wtdT4W3 G2uCIgFDKDIBySQcD9DWOIbVJ2Pm+KYKWXybWx0FFFFeCfkYU UUUAbEn/ACKkX/X0f/Qax62JP+RUi/6+j/6DWPXTid16IqQUUUVzEh Xongn/AJAr/wDXU/yFed16J4J/5Aj/APXU/wAhXs5J/vPyNqPxHTCiiivs TqCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii

(28)

21

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

(29)

22

v/hG4VvvE+i3lidHPlWFuiieP90MAkc5UcGuf8L6roNp+zjcW+rz2paSO 5WO3dgXaQs2zC9c5wc9sZr1XTfh54S0e8F3YaFa29wFZA67s7WBVhy e4JH41Wg+HvgXRriO7XQtOhkVso8o3AN7bjivoHJJXZueTwxXGjWn wivdYJgiillV5JRtEaswKBienykfhXS31x/a/x8ll0aZLl7TQJEaSJtypId20Z HGcuten6jp2jeJbCXT7+3tr+2BBaJ8MFPY+x9xUeheFtD8MxSR6LplvZ LIcuY1+ZvqTyfzoTTV0B5p8EdW8P2Pgu4tby6tLXV47mU363TqkjHP BO7kjHH1BqH4j6kdX+J+iaPb6Tc6zbabaSXc9pa7csZBtU5PGANp/4FX oeq/D7wlrd+99qOg2c9y5y0pUqWPqcEZ/GtGy8OaPp2qz6naWEMN9cR rFLMoO5kUABfphR+VMD55Oo6jcfAPVNDaOdJ9F1NYbuE/fSAsTg/R 8g9uK948L6z4ZudE0yLRryw8kxKsEEcihhheRtznI5z3q7beGtGs7/UL2 DToEuNQGLt9ufO6/eB4PU9u9cd4a+G9ppXjfWNXk0XT4LR2X7AI2Je I4KsVxgKrA9OuSe1AHkfiK7vPEx8aa/baLfXUf22P7JqUYHl2yW/rnnlS Dx6112qa7aar8Rfh54i1ZkXSLqwJR5f8AVx3J3bgSeBhtg/Aelewaf4c0fS 9Gl0ex0+CDT5Qwe3UfK27hs59RVY+DPDh0BdCbR7V9MRiyWzLuV STkkZ5ByT0oA851u8sbz9oDQbjSJ4Xa0spH1OeFgVWMK2N7DjgEfm K9IutSj1vwdfXmgXK3JltZhayxE4ZwpAx/wIVRbwBolr4b1PR9EtYdJG oQtDLPAm59pGDyeTxnvW7pGl22iaPZ6ZZptt7WJYox7AYz9T1P1oA8 v+CmseG7TwAltJd2VrqEc0n25Lh1jkLbjgndyRjA/DFZ9/8A8lQ+I56j/h G2P/kJa9G1L4d+ENYv3vr/AECzmuXOXk2lSx9TjGT9a0G8L6I19e3p0 6E3N9b/AGW5k5zLFgDYeemABQB5V8IZNcXRdBB8T6KNL+cf2aU X7Tjc3Geuc8/SuS0O3n0OxuvHdhGztp2uXNpqMa/8tLSTbkkd9pb9Qe1 e32Pw28H6ZfQXtnoFrDcwOJIpF3ZVh0I5rUs/DGi2Gn3tha6dDHaXru9z CBlZWcYYnPqBTA+csonwq8Gz3SPJoUevStfYBKlN/G4f7u+veNa1bR L/AMF6ummX9jMDpVw0aW8qE7PLPIA6DpWraeGNEsNDfRbfTLdd MfdutSu5Dnk8HNZ+nfD3wnpMtxJYaHbQPcQtBKVz80bfeXrwD7UAe MX2oy/8KG8IeH7WKWe51i6KeRD9+SNJWJA+p2iuk+F+py6d8TPEeh z6ZcaTFqCLfW1lcY3IRw2Mccg5+i16Zb+DPD1pLpskGkwI2mhhZkZ/c 7iScc9ySatT+HtKuNdt9clsYm1O3QxxXPO5V54/8eP50gPKPiab1fjF4X OnajaaddfYpdlzeKDEn385B49R+Ir0zwm97JoQGp6tYardCRg89koEZH YYHGQKXXfBnh3xLcxXGs6TBeTRJsR5M5Vc5xwfWrWieHtK8N2T2 ej2MVnbu5kaOPOCxAGefYD8qYHnXhKND8fPGwKLgW0GBjp8qVy 2kPra/Ebx1/ZHiLSNHH9oDzP7QRW8zl8bc+nOfqK9wttB0uz1m71e3so 49Qu1CzzjO6QDGAfyFY198NfB2pX099eaBazXM7mSWRt2WY9T1p AcBdXdlY/tA2114kng+zSaUg065lwITJgZKk8DJ34+o9q0/jLdafqPgzT/ ALPPbXUP9tW6S+S4YHIbIOO+DXe6h4S0HVdLt9Mv9JtbiztlCwROm fLAGBtPUccVUh8AeFbfShpkWiWy2QuBc+T82PNAwG65zjigDxLUYr jwz4x0HwTdLI1vZ+IIrzTZSeDbSNyufZv1zXXfD68sNN+JfjuPXJ4LfV ZLvfE9ywTdBlj8pPbBQ/THpXp2p+GtH1i/s77UNPhuLqybfbyuPmjOQe PxAqvrngvw54lnSfWNHtbuZBhZHXDY9MjBI9qYHgU/lzeBvijeaaMaJ NqMH2QqMIxE3JX2wV/SvQvGWoxX/wADJrPSdQtprxNNtzLDDMrO I12eZwDnhc5/GvQZfC+hzaB/YT6Xb/2VgD7KqbU4II4HuAap6R4C8L6 De/bNL0W2trjYY96A52nqOT3pAeZ+KtW8Kzfs92tvbTWjO1tBHbQIw Mizgru+XqCMNn8fWqcTR6V8U/B7+MSqQLoMMdu91xGlwF5zngHP GT3I9q9Vtvh34Qs9UGpW/h6xjuw29XEfCt6hegP0FausaDpXiC0Frq2n2 95CG3KsyBtp9R6H6UAeUTeLdc1C+8a+HdSn0i5t7fRZ7iKbT1PII+UFs 84Dc+9c7quoyP8ABfwN4ctoJbmfVJgXt4T88kcchJA+pK/lXs+m+AvC2 kQ3UNholrAl3EYJ9oJMkZ6qSTnBqe28G+H7O50+4g0qCOXTkMdowz +5Ukkgc/7R/OmB5t8J9SlsfiB4o0G40yfSkuyNRt7O4wGjycMOOOcj8q9 mrMk8P6VLr8WuvYxHVIozElzzuCYIx9OTWnSAyfEOpnStLeZMeaflT 6/5zXl89xLcStJLIzuxySTnNd347/5BduP+mw/9BNcBXyOd1puvyX0Ry 1pPmsGT60ZNFFeLdmJLb3U1rMssMjI6nIINd7L4lI8MC+UAXDfu8dg 3r+XNee1suf8Aiko/+vv/ANkr0MFiqlKM1F9DSEmrmVNcTXErSyyMzs ckk5qPJ9TRRXnynKTu2Z3YZNTW91NaTLLBIyOvQg1DRTjOUXdM dz1jQ9R/tTS4rggByMOPcda0a5rwR/yBX/67H+Qrpq++wdR1KEZS3sds XeKYYpKWiukoKrXt0tlZy3LglY1LYHerNVdQFu1hOt0dsBQhz6CoqN qD5dwObHiPU4oYr6e0iFjI20BfvD9fY9queKJ7eGzgma2juJmbbEsgJHI 54zz0FZCvcaAImyt7pMzZXI6Z5/A1Y1/ULf8At3ThK5EEQEpIGevI/kP zrwXiJKjJTlr5lGnoN3a/2G94kCQ7dxlCeo/+tWb/AMJJqv2b+0BaQ/Yg+ 3BJ3fz/AKVT0q6jbStct42zHseRD6jBH+FTR4/4V+wPXd/7UpLEzlCKj K1lf7gsdfbTrdWsU8f3ZEDD6EVgy65qMmpXVtZ2sUgt853Hk/rWloOf 7Cs/+uS/yrm4V1F/Eeprp7Qq5J3GTPTPauzFV6ns6bi9X2EjYtvES3Gh3F 95W2WDIMeeC3b+dHh7XJtVEyXEapLHhvlBAIP1/wA81iarZHRPD6 WjyBpbibdIQOMAdv0p+lX1r/wlebVyYZognIxyAP8A4n9a5frlaNWMZ v1HY3dJ1eTUJ79HjVRbyFV2+mSOfy/WqMXiW4k0G4vvJjEkcoQLzjB x/jUfhk/6VrHP/LQ/zasi2/5E69/6+R/JaqWLq8iafcLHd2kxubOGcjBkRXI 9MjNYFzrmoz6hc2+mQROlsDvaTJJI9OR3BrZ0r/kEWn/XFP5Cuf8ADn /IV1rPXef/AEJq6cRVm404p2uJG3omqDVrDzyoV1Yq6jsf8mtOuW8E/ wDHjdY6edx/3yK6muvB1JVKKlLcGFFFFdQgooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooA5Tx3/yDLf8A67D/ANB NcBXofjaBpdHR1BIjlDH8iP6155XxudJrE3OSt8QUUUV45kFbL/8AIpp /19n/ANArGroZLKYeC45dhx9o38jtjH8/5114WLkp27Fw6nPUUUVyEB RRRTA9D8Ef8gZ/+ux/kK6eud8GwPDoYZxjzHLAH04H9K6KvvcAms PBPsd0PhQUUUV2FBVa+to7uzlt5DhHUgkdverNZXiJ2j0K5KnBIC8e5 A/rWVdpU5NgYdvos97Atj/asE1nC+cREFvp7dfWteDRfK1yW/d1aMxh I0x93gD+n61BDZWtokd3ayRRXX2ThGYBW4zubufc1Qi1y+EF6DcCU xxK6SGLbySAceo59O1ePBUKVvaLXcrU1P7BxrNxdiQCCeIo8YHPIA P8qzv+EZ1AWxsBfJ9iL7sbefy/+vTZtT1eL7STdxHyFjc4i67scdenP6VLf 6rqEc960EyLHbCJthTOdwHGfxpOWFkr8rQWZ0lvAttbxwR/cjUKPoKz 7HSWtNXvL0yBhP0UDp35rOvdZvIRqhjdR5Bg8v5QcbsZ+tSPf3418W 5lSKMsuyN04kTuQ3972rreIoScdNthWLOp6Yt9q1jK86KsJLeUerYOeB +VNvtKW+1O1uraeNWtnxIByeoOOPx/Oma5i31HTLwnAWXymOf7w 7/rWbZXFykUItZVik1G5lkMhXdgDtisa06KqSU4jVy3Pod7b31xLp16k K3WS6P1z1OOD6mph4bVdAbTkmw7sHaTHVuO34Vmi6utQvNEneZ UctIpwueR1P4jH0q9a6tdynT9zgiaSRX4HIHSog8Nd3i7BqOs9I1e2eFTq g8mPA2BOqjt+XFMudBvY7+4uNOu0iFyD5isOhPU9DUVlq2ovcWbzT I8M7SKUCYI298/56UlnrF+0lvJNKjJdJKyxhMeWVz379KXNhXHl1Cz NnRtMXSbEQB97k7nb1P+QK0c1zEV/qZ0dbua7gjErKA23JVeckDux44 +tRw6zqFxaWypKqyvdGFnePsB1K9jXXDGUqUVBJ7CsdXmlzXLR6p qE1vawiZFmkneNpSmQQvt+P6Uf2rfNpMMz3McTtIyuwj3McdAq96r+ 0KfZhY6ilrN0K9l1DSYbibHmNkHHfBI/pWlXbTmqkVJdRBRRRVgFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBFPAlx C8UqB0cEMD3FcXfeBpPNLWU6bCchZM8fiK7miuXE4OliF+8RMoK W553/AMIPqX/PW3/77b/Cj/hB9S/562//AH23/wATXolFcX9i4XsR7GJx Gn+B3EqvfTKUBzsjzz+Jrr2tIWtDamNfJK7dmOMVYorsoYKjQi4wW5 cYKOxw994GkMpaznTYTwsnb8QKp/8ACD6l/wA9bf8A76P/AMTXol Fcssnw0nexLpRPO/8AhB9S/wCetv8A99H/AAq9YeB2WVXvp1KjnZHn n8TXbUU4ZPhoyvYFSiiOKNYYljjUKijCgDgCpKKK9NJJWRoFFFFM AqveWqXlpJbyZ2OMHHWrFFTKKkrMDCi8OACTz7uWZmh8hCRjYv 8AWmp4aAjlR7uRzJCIslRwARj+Qrforn+p0ew7mPNoUcwuh5rDz0RO nTb/APqqhLos19q18jyTRWzCIcLxIAPX2Irp6KUsFSlbQLmFeeHEurie QXUkaT7N8YAwSuMfpUk2hLNfLO1zIYhKs3k4GN46EHqK2aKr6pR vewrlHVNOTU7JrZ2KZIIYdiKqSaChtLOKC4eGS1BCSAAnnrx71s0V U8PTm25ILmMugRRR2SxTSK1oxYNwd277350yDw+Le5im+1SMkLs 0cZAwA3atyioeDovoO5zWi6LLtguLl5VMTPthYYxnjNWbXw6lvKpNz K8cassSED5A3Xnv1NblFTHA0YpJq4XMeXQlk022tVndGt3EiSAZ5Ge 3402Dw/HCI/37uUuDPkgZJI6GtqireEpN3aC5zl9pS2dtCUF27LO0ge3U My7vb06UzT9Dlm02zaR5bWaF3ZeAWAbrnPfFdNRWX1Ck58z+4LlP TLBdMsUtUcuFJIJGOpz/AFq5RRXZCKglFbCCiiiqAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigD/9k=',

width: 150, //sem a altura ela fica automaticamente proporcional alignment: 'left',

}, { text:

(30)

23

'NEV: Núcleo de Engenharia Virtual'

+'\r\nTítulo: Sistemas Lineares por Eliminação de Gauss' +'\r\nData: 00/00/2015'

+'\r\nAutor: Isabela Cassia Dominical Parra' +'\r\nOrientador: Prof. Gustavo Cabrelli Nirschl' +'\r\nTipo: Iniciação Científica Voluntária' +'\r\nCurso: Engenharia Civil'

, fontSize: 9}, ],

// optional space between columns columnGap: 10

}, { text:

'\r\nA matriz segue o modelo abaixo' +'\r\n' +'\r\n' }, { image:'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcI AAACbCAIAAAB+jAyZAAAAAXNSR0IArs4c6QAAAARnQU1BAA Cxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAABIcSURBVH he7d3faxtnugfw+QPmxpe+EASMwBeFYIwuUkKwLlIcDHYoHEK2QW hDixKWYrPLxqchdg7rlmUjOK3Ntu45VFALH6qm9pWTthRnu3EOjsFq o5CIoGyTErtWNnYTJ4yNfCJ5cubH89p6ZL2yvSaR3tH3c5V5FME8fm e+1tjjebQXAACwB4hRAIA9QYwCAOwJYhQAYE8QowAAe4IYBQD YE8QoAMCeIEYBAPakUoxq/xJ6MwBADaPA2iV6M4cYBYB6RIG1S/ RmDjEKAPWIAmuX6M0cYhQA6hEF1i7RmznEKADUIwqsXaI3c4hR AKhHFFi7RG/mdhGjVAUAqBsUfwJVOcQoAIAUxZ9AVQ4xCgCvipF KRAcTqWXaVAHFn0BVzgMxauaX73wTfcuvH4tlclQjz5czX0eP7dfbY 5kCldRXtqmCkbkU7T7aqlsL5Q+e+vhqdo1eAbXkH2e+iR7z72uP3fHO MbshOx7SmkLjc7RZqsK5XDVu+m2gKqd6jK5lp/8rEmh0drAtmjSobM kvTA+fDtixomlN0WSeymqTNVVIDbb4AqE/fZa4OHLhpPUf9MNDqV WTXgU1mPns/w5HDnrsmGUqxaj8XK4qZ382UZVTKEbzxtLDbPbhklF 0dOWT0dau3tFrsyMnS7709isd743OXBs50aTmIVmmX2lT5rOf7/ySo9h 8PNV3QNPaB1Mr7jbUHjNv/Jq1sKPZSEa7OnpHZ2Y/P1Eao9Z/f2qvr3 VQWMfEslhq5WzE6NZG5OdydVH8CVTllIjRgpG+2NvRTPuhHzwVv 2nQlz+/YqyZL/LZ8ciWT6OrRm79xYu58ZByMSrvd0dNWWdjW00diF DMNG592dvVRKvbGDg1ettwL9/N/MqKnSt21vDlXZyI6G3nRkb6O52j gp0CSrFb83UMDL7vNqLtPxb9Ppung1t6LleVs5+bqMopEaMrqaFwOPr V1O17DzIziTNtmn4ifq/4Z38VvvQqxui2/VZsyryfON6kNb535ZkVuFBz Cqm/doSjY1O37j/IzCZ6A9q+o/G7bKm2xqhTsdIz8snl67N/i/cc0rSu4fQq vaqQ4kaS019Hjzdoracn5oq+IyBGXwnrs39T6VfZYzHKlOu3QlOFJ1M D1pnZFUs/pwrUMGd1S1eyfIw2Hh6+5a7peib2RqVf1NQwp5Hg4I/0+6P V6fdf0/XIxKK7aUOMvjzmajZ5OTb4l77ukyc6WnXPx+g2/cqaMvMLEz 3NDf7waEbZn57VgfVc9odLsaELfd1hZ3V3FqNFuVmyqZDSPd96JCN GXxYjE4/49ddD5z6MJca+ioYaPR6j2/Zbtikzn/2uP+jTgx9cXVSp2zpj5j KjYb8vEDr7UeyLcWd1EaOI0ZfPufDx9U25v3j2/kX99v2Waco0bsbCL XpwYBJ3jNY05xeAvvNTK87lwi4u6j0To77O2B1qDRf1r459U6TeEIrdy C4u3p+O9xwuushdW8rcSCZnvo2+qWmt3fGpZPLWnPt7z/xSJmm5HO 3wab7u+EwyeXNOjV9uVuhX1lQuHQ+3aPqRvrFr9usOVdotp/Dkylm/3 hmdfWJvPZk8498XjM44X4JHV84c0IP/OWso+gu0ldRgu9ZwMnZjfmn xp+vxP7RtXtSb+aW79sp9G+3Q+DHrqRjVNL29NzFzb+Ef05++7dcCPd 9mnQNVfi5XlZt+G6jKqRCjL9aykwNB96Zkrbkz8tahjVhxEsd9QWiOT CzQK1QR9HcnFpX4wxBpv9Km7BtiqLCBf5NXS2Fx4l1dLKXbnWhnY SLSrM5SbkU/e3GXqKnzt6FDjSJGnYTlqGtPxWjLOwN9x/zu8drc+cEk3 fAkP5eri/ZFoCqnRIxa1nNLP6WSP6bnnuXN3PLDXw2612w9t/zIvo15k 3jJ/m9UIuxW5xon6VfalHuvfjH+dwrKsW/P3lhla+Ofoh3nxnW1e7OWcf FuKplMzxv5gnUAb3SzZXnFItovPFq2bxl2lGwqRBzMeWM+7R7e9IJFf i5XFcWfQFVOlRgFAKgCij+BqhxiFABAiuJPoCqHGAUAkKL4E6jKIU YBAKQo/gSqcohRAAApij+BqhxiFABAiuJPoCqHGAUAkKL4E6jKIU YBAKQo/gSqcohRAAApij+BqhxiFABAiuJPoCqHGAWAVwUDlqlaU8 ynmYkPuzuducJNb5wa+ruY6+Ly2oBl07gzEbXabbSfahH83dDVX8SfJ GPAsgfUwSJWeKjKNudy1Vi7U4yqnNox6jwU5vXQwH8nxj6/EH5d13 yHB3+gCTUeHLBsPwFID4QHPvtibOTP4UCjph8dTD2zX7G/EBiwrLh 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

(31)

24

8Yi1Y3rg9CffTM9eHekJNGgHh9Psx6AKxmghNdTxdnRs6vb9nzOzX5 wJNOhH4/fsz5076dc6Te8njjdpje9debb52RxqRyH1146wtby37j/IzCZ6A9 q+o/G7zlI5x6qVnpGPv7k+czX++4DWcHD4lr28dvrYyRL55PL12b/Few 5pWtdwetV+k1qKG0lOfx093qC1np6Ys9OyVnu0dqoYVTklYpSxrtab6K OWGytvDqfdq9dcJvZvmhYZzxZHpoIxyjgfLWn/d9Jv4cnUgHVmdsXSz 6kCNcw5msXh6Ryrhz9NP3c+g63fib3RqIXGs9a/7YhpPDx8y13T9UzsD dV+wkicRoKDP+bczdXp91/Taa5BrfZI8SdQlVMkRs3VbPJybPAvfd0nT 3S06ixGN3KkZNOlZIyauV+Slz4fvNDXHf5NR2sjj9EK/Zr5hYme5gZ/e DSj7E/P6sB6LvvDpdiQvbzO0cxi1M3Nkk07YooypWRTIaV7XnR61mq PFH8CVTklYtTIxCN+/fXQuQ9jibGvoqFGb8doLh0Pt+iB0LmPYonx/4 mGXttZjJr57Hf9QZ8e/ODqokLd1hszlxkN+32B0NmPYl+MO0czYhQx+ vI5Fz6+vin3UnbLRb3XYtRp8EDf1GNna+tFffl+TeNmzArf4MAk7hitac 6C+s5PrTiXC1sv6r0fo77O2B06HUsv6hGjL499U6TeEIrdyC4u3p+O9xz e0UV9fimTtFyOdvg0X3d8Jpm8OafELzftdrXmUGw2u/TP+9dHetp828e o8wFW04/0jV2zm3Yo0m5ZfOguG7Cs+nDpldRgu9ZwMnZjfmnxp+vxP 7TV3UW9puntvYmZewv/mP70bb8W6Pk2ax+oiNGXbC07ORCk+3+aO yNvHdpBjDphxKkykTg/P9l/hNpt6oyEDm0fo84I4hIqTyTmQ3fZgGXVh 0vTz17cJWrq/G3oUGOdxWjLOwN9x/zu8drc+cEk3fCEGH351nNLP6W SP6bnnuXN3PJDuind/mfRfbps096wb3DepNCIXjO3dPdmMpmes/q0+h B7Lu/XuWGb4X+noBz7HuyNPz2wNjYGLHthuLSZW7ybspZ33sgXcsu PRDfr1r+Llrdo017p4r+24JsKsffcXta8MZ92T2d6oXZ7pPgTqMqpEqMA AFVA8SdQlUOMAgBIUfwJVOV2EaM7RG8GAKhhFFi7RG/mEKMA UI8osHaJ3swhRgGgHlFg7RK9mUOMAkA9osDaJXozhxgFgHpEgbVL9 GYOqQcAsCeIUQCAPUGMAgDsCWIUAGBPEKMAAHvw4sX/A5Dh IQLKz7SeAAAAAElFTkSuQmCC', width:200, alignment:'left', }, { text: '\r\nOrdem da Matriz ='+n, bold:true }, { text: '\r\nMatriz Completa:' +'\r\n' +'\r\n', bold:true }, ], }

p=0; //número do passo, ou da iteração p=Number(p);

//ler os termos aij a=[]; //criar o vetor col=n+1; b=[]; //criar o vetor for(i=1;i<=n;i++){ //linhas //********************************************************** ***** docDefinition.content.push(

{style: 'tableExample', table: {widths: [], body:[[]]}}); //cria a linha i em branco

for (t=1;t<=(n+1);t++){

docDefinition.content[(docDefinition.content.length)-1].table.widths.push(

50 //espessura de cada coluna (são n+1 colunas) na linha i ); } //********************************************************** ***** for(j=1;j<=n;j++){ //colunas ntermo=i+','+j; a[i+','+j+','+p]=document.getElementById(""+ntermo+"").val ue; //********************************************************** ***** afix=Number(a[i+','+j+','+p]).toFixed(4); docDefinition.content[(docDefinition.content.length)-1].table.body[0].push(

afix //adiciona cada valor a da linha i ); //********************************************************** ** } ntermo=i+','+col; b[i+','+p]=document.getElementById(""+ntermo+"").value; //**************************************************** bfix=Number(b[i+','+p]).toFixed(4); docDefinition.content[(docDefinition.content.length)-1].table.body[0].push(

{ text: bfix, italics: true, bold: true, color: 'blue' } //adiciona o valor b da linha i, itálico, negrito e azul

);

//********************************************************** *

}

sistemagauss(n,b,a); //chama a função que calcula o sistema por eliminação de gauss

//imprimir os resultados xi res=''; for (i=1;i<=n;i++){ res=res+'\r\nx'+i+'\r\n='+(x[i].toFixed(4))+'<br>' } res1=res+'<br><br><button onclick="fpdf()"> Gerar Relatório </button>'

document.getElementById('resultado').innerHTML = res1; }

function sistemagauss(n,b,a){ //AQUI ENTRA O ALGORITMO DOS ALUNOS

//******************************************************** docDefinition.content.push(

{ text:

'\r\nPara resolução do sistema linear via Gauss, modifica-se a matriz completa de tal forma que esta forme um sistema triangular superior (toda zerada à esquerda da diagonal principal).'

+'\r\nÉ usado neste sofware a técnica do pivotamento parcial, que consiste em trocar linhas (ou colunas) de forma a ter sempre o pivô não-nulo.

(32)

25

Segundo o seguinte esquema de escolha do pivô:'

+'\r\n1º Pivô = elemento de maior valor absoluto na coluna 1;' +'\r\n2º Pivô = elemento de maior valor absoluto na coluna 2;' +'\r\nE assim sucessivamente.'

}, { text:

'\r\nAbaixo segue a resolução:', bold:true

} );

//********************************************************* //entra n, b e a (sistema qualquer). Sai x pela rotina sistemasuperior.

for (k=1;k<=n-1;k++){ //para cada linha w=Math.abs(a[k+','+k+','+p]); //w é o pivô r=k; //r é o nº da linha que está o pivô for (j=k;j<=n;j++){ //para cada linha

if (Math.abs(a[j+','+k+','+p])>w) { //encontra o maior pivô em módulo

w=Math.abs(a[j+','+k+','+p]); r=j; } } //******************************************************* docDefinition.content.push( { text:

'\r\nO Pivô, em valor absoluto, é '+w.toFixed(4) +'\r\n' +'\r\n' } ); //******************************************************** if (w==0) {

alert('Erro: Todos os pivôs são nulos.'); pdfMake.createPdf(docDefinition).open(); return; //pára o programa

}

else { //troca linha k pela linha r (a linha r é a linha com o maior pivô) //montar a matriz do passo p+1 inicialmente igual à do passo p

p=p+1; u=p-1; for (ip=1;ip<=n;ip++){ for (jp=1;jp<=n;jp++){ a[ip+','+jp+','+p]=a[ip+','+jp+','+u]; } } for (ip=1;ip<=n;ip++){ b[ip+','+p]=b[ip+','+u]; }

//troca linha k pela linha r (a linha r é a linha com o maior pivô) for(c=1;c<=n;c++){ //coluna 1 a n+1 a[k+','+c+','+p]=a[r+','+c+','+u]; a[r+','+c+','+p]=a[k+','+c+','+u]; } b[k+','+p]=b[r+','+u]; b[r+','+p]=b[k+','+u]; }

//mostramatriz(n,n,a); //imprime na tela a matriz a //mostravetor(n,b); //imprime na tela o vetor b //return;

//montar a matriz do passo p+1 inicialmente igual à do passo p p=p+1; u=p-1; for (ip=1;ip<=n;ip++){ //*********************************************** docDefinition.content.push(

{style: 'tableExample', table: {widths: [], body:[[]]}}); //cria a linha i em branco

for (t=1;t<=(n+1);t++){

docDefinition.content[(docDefinition.content.length)-1].table.widths.push(

50 //espessura de cada coluna (são n+1 colunas) na linha i ); } //*************************************************** for (jp=1;jp<=n;jp++){ a[ip+','+jp+','+p]=a[ip+','+jp+','+u]; //*************************************************** afix=Number(a[ip+','+jp+','+p]).toFixed(4); docDefinition.content[(docDefinition.content.length)-1].table.body[0].push( afix ); //************************************************ } b[ip+','+p]=b[ip+','+u]; //************************************************* bfix=Number(b[ip+','+p]).toFixed(4); docDefinition.content[(docDefinition.content.length)-1].table.body[0].push(

{ text: bfix, italics: true, bold: true, color: 'blue' } //adiciona o valor b da linha i, itálico, negrito e azul

);

//************************************************ }

for (i=k+1;i<=n;i++){//para cada linha, menos a anterior (zera a primeira coluna e calcula os outros termos)

m=[]; //criar o vetor m[i+','+k]=a[i+','+k+','+p]/a[k+','+k+','+p]; afix=Number(a[i+','+k+','+p]).toFixed(4); afix1=Number(a[k+','+k+','+p]).toFixed(4); //*********************************************** docDefinition.content.push( { text: '\r\nm['+i+','+k+']=a\'['+i+','+k+']/a\'['+k+','+k+']='+afix+'/'+afix1+'='+(m[i +','+k].toFixed(4)) } ); //**************************************************

(33)

26

for (j=1;j<=k;j++){ //para cada coluna, a partir da k a[i+','+j+','+p]=a[i+','+j+','+p]-m[i+','+k]*a[k+','+j+','+p]; afix=Number(a[i+','+j+','+p]).toFixed(4); afix1=Number(a[i+','+j+','+u]).toFixed(4); //**************************************************** docDefinition.content.push( { text: 'a\'['+i+','+j+']=a['+i+','+j+']-m['+i+','+k+']*a\'['+k+','+j+']='+afix1+'-('+(m[i+','+k].toFixed(4))+')*('+afix+')='+(a[i+','+j+','+p].toFixed(4)) } ); //******************************************************** }

a[i+','+k+','+p]=0; //a primeira coluna é zero for (j=k+1;j<=n;j++){ //para cada coluna, a partir da k a[i+','+j+','+p]=a[i+','+j+','+p]-m[i+','+k]*a[k+','+j+','+p]; afix=Number(a[i+','+j+','+p]).toFixed(4); afix1=Number(a[i+','+j+','+u]).toFixed(4); //*********************************************** docDefinition.content.push( { text: 'a\'['+i+','+j+']=a['+i+','+j+']-m['+i+','+k+']*a['+k+','+j+']='+afix1+'-('+(m[i+','+k].toFixed(4))+')*('+afix+')='+(a[i+','+j+','+p].toFixed(4)) } ); //************************************************ } b[i+','+p]=b[i+','+p]-m[i+','+k]*b[k+','+p]; bfix=Number(b[i+','+p]).toFixed(4); bfix1=Number(b[i+','+u]).toFixed(4); //************************************************* docDefinition.content.push( { text: 'b\'['+i+']=b['+i+']-m['+i+','+k+']*b['+k+']='+bfix1+'-('+(m[i+','+k].toFixed(4))+')*('+bfix+')='+(b[i+','+p].toFixed(4)) +'\r\n' +'\r\n' } ); //************************************************** }

//mostramatrizc(n,a,b); //imprime na tela a matriz completa a|b //return;

//mostramatriz(n,n,a); //imprime na tela a matriz a //return;

}

//mostramatriz(n,n,a); //imprime na tela a matriz a //return;

mostramatrizc(n,a,b); //imprime na tela a matriz completa a|b

sistemasuperior(n,b,a); //chama a função que calcula o sistema por eliminação de gauss

}

function mostramatrizc(n,a,b){ //mostra uma matriz completa a[]|b[] de

ordem n

//************************** docDefinition.content.push( {

text:

'\r\nMatriz Triangular Equivalente:' +'\r\n' +'\r\n', bold:true } ); //*************************************** html=""; html+='<table border>'; for (i=1;i<=n;i++){ //linhas html+='<tr>';

for(j=1;j<=n;j++){ //colunas ntermo=i+','+j+','+p; valor=a[ntermo];

conteudo='<input type="number" id='+'mprov'+ntermo+' value="'+valor+'"/>';

html+='<td>'+conteudo+'</td>'; }

ntermo=i+','+p; valor=b[ntermo];

conteudo='<input type="number" id='+'mprov'+ntermo+' value="'+valor+'"/>';

html+='<td>'+conteudo+'</td>'; html+='</tr>';

} html+='</table>';

html1='Matriz triangular equivalente:<br><br>'+html document.getElementById('matrizprov').innerHTML=html1; a=[];

for(i=1;i<=n;i++){

//******************************************************* docDefinition.content.push(

{style: 'tableExample', table: {widths: [], body:[[]]}}); //cria a linha i em branco

for (t=1;t<=(n+1);t++){

docDefinition.content[(docDefinition.content.length)-1].table.widths.push(

50 //espessura de cada coluna (são n+1 colunas) na linha i ); } //****************************************************** for(j=1;j<=n;j++){ a[i+','+j+','+p]=document.getElementById(""+'mprov'+i+','+j+','+p+"").va lue; //****************************************************** afix=Number(a[i+','+j+','+p]).toFixed(4); docDefinition.content[(docDefinition.content.length)-1].table.body[0].push(

afix //adiciona cada valor a da linha i );

(34)

27

//********************************************** } b=[]; b[i+','+p]=document.getElementById(""+'mprov'+i+','+p+""). value; //************************************************** bfix=Number(b[i+','+p]).toFixed(4); docDefinition.content[(docDefinition.content.length)-1].table.body[0].push(

{ text: bfix, italics: true, bold: true, color: 'blue' } //adiciona o valor b da linha i, itálico, negrito e azul

);

//************************************************** }

}

function sistemasuperior(n,b,a){

//entra n, b e a (sistema triangular superior). Sai x. x=[]; //criar o vetor x[n]=b[n+','+p]/a[n+','+n+','+p]; afix=Number(a[n+','+n+','+p]).toFixed(4); bfix=Number(b[n+','+p]).toFixed(4); //******************************************* docDefinition.content.push( { text:

'\r\nCom o triângulo superior formado pode se encontrar os valores de x:' }, { text: '\r\nx'+n+'=(b\['+n+']/a\'['+n+''+n+'])='+bfix+'/'+afix+'='+(x[n].toFixed(4)) , bold:true } ); //************************************************ for (i=n-1;i>=1;i--){ //************************************************ docDefinition.content.push( { text: 'soma=0' } ); //*************************************** soma=0 for (j=i+1;j<=n;j++){ soma1=soma soma=soma+a[i+','+j+','+p]*x[j]; afix=Number(a[i+','+j+','+p]).toFixed(4); //******************************************** docDefinition.content.push( { text: 'soma=soma+a['+i+','+j+']*x['+j+']='+soma1.toFixed(4)+'+'+afix+'*'+x[j].t oFixed(4)+'='+soma.toFixed(4) } ); //***************************************** }

x[i]=(b[i+','+p]-soma)/a[i+','+i+','+p]; //sai x[i], o vetor solução bfix=Number(b[i+','+p]).toFixed(4); //******************************************** docDefinition.content.push( { text: 'x'+i+'=(b\'['+i+']-(soma))/a\'['+i+''+i+']=('+bfix+'-('+(soma.toFixed(4))+'))/'+afix+'='+(x[i].toFixed(4)), bold:true } ); //******************************************** } //******************************************** docDefinition.content.push( { text: '\r\n\r\n\r\nREFERÊNCIAS BIBLIOGRÁFICAS'

+'\r\n\r\nQUADROS, Régis S. de; BORTOLI, Álvaro L. de. Fundamentos de Cálculo Numérico para Engenheiros. Porto Alegre, 2009. Disponível

em <

http://www.inf.ufrgs.br/~rlflupchinski/files/20112/NUMERICO/numerico -bortoli.pdf >. Acesso em outubro de 2014.'

} );

//*************************************** }

function fpdf() { //VER ESTE SITE PARA ESTILOS DO PDF - https://github.com/bpampuch/pdfmake

calcular();

//COLOCAR AQUI TODAS AS FUNÇÕES QUE TÊM COISAS A IMPRIMIR OU VARIÁVEIS NECESSÁRIAS PARA AS IMPRESSÕES pdfMake.createPdf(docDefinition).open();

Referências

Documentos relacionados

(João Cabral de Melo Neto, “Morte e vida severina”.) 2) (ESPM/2015) O autor foi o criador do Ready-made, termo criado para designar um tipo de objeto, por ele inventado, que

Desta forma, o objetivo do presente artigo é realizar um estudo sobre áreas degradadas, especificamente relacionado à margem do Córrego das Acácias e seu entorno, localizado

• plot( x, y, z, w ): Plota dois grácos (ou mais, dependendo do número de argu- mentos). O MATLAB seleciona linhas diferentes para cada gráco;.. No exemplo 56, são gerados

O primeiro item, “Mercado de Call Center: histórico, seus desafios, tendências para futuro” traz um recorte sobre o segmento de Call Center e suas principais

A PRA poderá, excepcionalmente, emitir autorização a servidor ativo do quadro próprio ou funcionário terceirizado da UFPR para a condução de veículo da frota oficial

Com a ponderação através do Índice de Importância das barras, o Índice de Sensitividade passou a representar, de forma mais precisa, uma grandeza capaz de ordenar as

Diante do exposto, o projeto busca o alinhar estrategicamente ações interinstitucionais e interdisciplinares para gerar conhecimentos e tecnologias para o cultivo

O Comitê Técnico Setorial é composto por profissionais internos e externos ao SENAI, que possam contribuir com suas experiências profissionais, formação e visão de futuro, sendo