Cálculo

1. Cálculo

Elton Chaves
chavesejf

(usa Ubuntu)

Enviado em 21/12/2016 - 17:56h

Olá pessoal,

Tenho uma lista de dados organizados da seguinte forma:

F1 F2 F3... F25

exemplo:

F1
-0.051 # linha1, F(ext)1_1
10.114 # linha2, F(ext)1_2
16.895 # linha3, F(ext)1_3
...
97.9837 # linha30.000, F(ext)1_30.000

Para todas as colunas eu preciso aplicar este cálculo: http://imageshack.com/a/img924/6236/bAjfhd.gif
Onde, v = 0.05, dt = 0.02 e F(ext) corresponde a cada dado numérico nas linhas das colunas

É possível realizar este cálculo utilizando shell script?


  


2. Re: Cálculo

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 21/12/2016 - 20:39h

chavesejf escreveu:

Olá pessoal,

Tenho uma lista de dados organizados da seguinte forma:

F1 F2 F3... F25

exemplo:

F1
-0.051 # linha1, F(ext)1_1
10.114 # linha2, F(ext)1_2
16.895 # linha3, F(ext)1_3
...
97.9837 # linha30.000, F(ext)1_30.000

Para todas as colunas eu preciso aplicar este cálculo: http://imageshack.com/a/img924/6236/bAjfhd.gif
Onde, v = 0.05, dt = 0.02 e F(ext) corresponde a cada dado numérico nas linhas das colunas

É possível realizar este cálculo utilizando shell script?


Boa noite chavesejf.
Acredito que sim . . .
poste um exemplo de como resolveria . . .

Att.:
Marcelo Oliver





3. Re: Cálculo

Elton Chaves
chavesejf

(usa Ubuntu)

Enviado em 21/12/2016 - 21:02h


Boa noite chavesejf.
Acredito que sim . . .
poste um exemplo de como resolveria . . .


Opá, boa noite Marcelo.
Até o momento esta é a minha solução p/ uma única coluna. Funcionou bem, mas apresenta uma demora desconfortável, o que me desencorajou a fazer com as outras colunas.


V=0.05
DT=0.02
NROWS=30000

W=`awk 'NR==1 {print ('$V'*$1/69.497*'$DT') }' file`

for ((i=2;i<=$NROWS;i++)); do
W=`awk 'NR=='$i' {print ('$V'*$1/69.497*'$DT'+'$W') }' file`
echo $W >> output
done


69.497 corresponde a um fator de conversão.

Att.,
Elton






4. Re: Cálculo

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 21/12/2016 - 21:13h

chavesejf escreveu:
Opá, boa noite Marcelo.
Até o momento esta é a minha solução p/ uma única coluna. Funcionou bem, mas apresenta uma demora desconfortável, o que me desencorajou a fazer com as outras colunas.


acho q a questão aí é vc explicar como faz essa matemática !!!
___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


5. Re: Cálculo

Perfil removido
removido

(usa Nenhuma)

Enviado em 21/12/2016 - 21:19h

existem algoritmos prontos pra calculo de integral (metodos numericos), como o metodo de simpsons e o metodo dos trapezios


6. Re: Cálculo

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 21/12/2016 - 22:42h

chavesejf escreveu:


Boa noite chavesejf.
Acredito que sim . . .
poste um exemplo de como resolveria . . .


Opá, boa noite Marcelo.
Até o momento esta é a minha solução p/ uma única coluna. Funcionou bem, mas apresenta uma demora desconfortável, o que me desencorajou a fazer com as outras colunas.


V=0.05
DT=0.02
NROWS=30000

W=`awk 'NR==1 {print ('$V'*$1/69.497*'$DT') }' file`

for ((i=2;i<=$NROWS;i++)); do
W=`awk 'NR=='$i' {print ('$V'*$1/69.497*'$DT'+'$W') }' file`
echo $W >> output
done


69.497 corresponde a um fator de conversão.

Att.,
Elton

Elton,
Pelo que entendi, o NR 1 de "file", é usado somente para calcular o valor do 1º "W", é isso?

marcelo oliver




7. Re: Cálculo

Elton Chaves
chavesejf

(usa Ubuntu)

Enviado em 22/12/2016 - 00:01h


Elton,
Pelo que entendi, o NR 1 de "file", é usado somente para calcular o valor do 1º "W", é isso?

marcelo oliver



Isso mesmo. A "matemática" é a seguinte:

# linha 1
V * F(ext)1 / 69.479 * DT
= 0.05 * (-0.051 / 69.479) * 0.02
= 0.000000734 --> resultado1

# linha2
V * F(ext)2 / 69.479 * DT + resultado1
= 0.05 * (10.114 / 69.479) * 0.02 + 0.000000734
= 0.000146303 --> resultado2

# linha3
V * F(ext)3 / 69.479 * DT + resultado2
= 0.05 * (10.114 / 69.479) * 0.02 + 0.000146303
= 0.000387908 --> resultado3

... e assim vai, até

# linha30000

Segue abaixo uma prévia do output da coluna 1:

0.000144791
0.000387908
0.000592969
0.000981266
0.00169979
0.00238009
0.00309928
0.00390939
0.00471031
0.00569507
0.00660879
0.00761573
0.00860207
0.00957516
0.0104532
0.0114114
0.0123609
0.0132963
0.0141521
0.0150261
0.0158894