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






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts