Estou muito impressionado com o Qalculate! .
Eu quero ser capaz de pressionar uma combinação de teclado, começar a digitar uma expressão matemática que inclui unidades e matemática ligeiramente avançada (não apenas uma calculadora de quatro funções), e obter um resultado imediatamente, em unidades que eu especificar, que eu pode copiar e colar.
units
no Deskbar e Launchy , mas estou não é um codificador real e eu não uso mais nenhum deles. Quaisquer outras soluções ou melhorias?
(A plataforma cruzada é melhor)
A calculadora ideal com reconhecimento de unidade seria capaz de lidar com tudo isso:
7 nV/sqrt(Hz) ⋅ sqrt(20000 Hz - 20 Hz) → μV
= 0.99 μV sqrt(4*k*25 °C * 1 kΩ * (20 kHz - 20 Hz))
= 0,57357 μV 3.5 billion kilowatt-hours per year
= 399,5 MW 60 billion kWh per year
= 6.849 GW 1/sqrt(2 mH * 2 nF)
= 500 kHz 1/(2*pi*10 kΩ * 22 µF)
= 0,7234 Hz 1/(2·π·100 Hz·30pF) → ohm
= 53,05 MΩ −10 dBV + 4 dB + 10 dB − 12 dB → dBu
= -5.782 dBu 94 dBSPL → Pa
= 1.00237 Pa 54 inches + 2 feet → cm
= 198,1 cm 12 V ÷ 141.5 µA
= 84,8 kΩ 16 bit * 44.1 kHz * 2 → kbit/s
= 1411 kbit / s 1 hundred V / 5 ohms
= 20 A furlong per fortnight → cm/minute
= 0.9979 attoparsec/microfortnight → in/second
= 1.004 1 ft / speed of sound
= 0.89576 ms Estou muito impressionado com o Qalculate! .
inseto tem versões baseadas em web e em terminal. Suporta análise, manipulação e conversão de unidades físicas, por exemplo:
>>> 2min + 30s
= 2.5min
>>> 40000km / speedOfLight -> ms
= 133.426ms
>>> 6Mbit/s * 1.5h -> GB
= 4.05GB
>>> 2J·s + 3W
Unification error:
Cannot unify unit W (base units: kg·m²·s⁻³)
with unit J·s (base units: kg·m²·s⁻¹)
Para uma solução de fácil criação de scripts, convém dar uma olhada no módulo sympy
python.
$ cat conv.py
#!/usr/bin/env python
import sys
from sympy.physics.units import *
from sympy.printing.pretty.pretty import pprint
from sympy.abc import x, y, z
from sympy import *
# adding extra units is easy
parsec = 3.26163626*ly
if __name__ == '__main__':
s_input = sys.argv[1]
s_unit = sys.argv[2]
input = eval(s_input) # input string
unit = eval(s_unit) # output unit
print 'Converting:'
pprint(input)
print
print str((input/unit).evalf()) +' '+ s_unit
que dá, e. para alguma expressão moderadamente feia convertida em mm:
$./conv.py 'tanh(3*m/(2*m))*sinh(60*deg)*1*parsec' 'mm'
Converting:
/π\
3.08574615554565e+16*m*sinh|--|*tanh(3/2)
/
3.48955431541888e+19 mm
Claro que este é realmente um código studpid que não verifica a unidade compatibilidade da entrada e saída, para que você pode acabar unidades extras no resultado.
$./conv.py 'c' 'parsec'
Converting:
299792458*m
-----------
s
9.71539598165644e-9/s parsec
Eu principalmente compartilho suas idéias sobre uma calculadora ideal e as desvantagens de usar Unidades GNU e Wolfram e rolei minha própria Calculadora on-line que eu coloquei on-line em PhyCalc.com . Ele faz sua própria álgebra unitária para unidades do SI e usa Unidades GNU para conversão para outras unidades, ou como um substituto quando o a própria expressão contém unidades não-SI.
Seu objetivo é interpretar a entrada Unicode onde isso faz sentido. E tenta ser esperto em adivinhar a quantidade exata e a unidade correspondente. Insere automaticamente prefixos de SI. (assim como minha fiel calculadora de bolso Casio faz no modo "ENG")
Alguns comentários sobre suas entradas e respostas da "calculadora ideal":
sqrt(4*k*25 °C * 1 kΩ * (20 kHz - 20 Hz)) = 0.57357 μV
Não é exatamente preciso assumir automaticamente que o ° C seja uma temperatura absoluta. Também k não é exatamente um símbolo não ambíguo para a constante de Boltzmann. No entanto, isso deve dar a resposta necessária:
sqrt(4*1.38064852e-23J/K*(273.15K+25 °C) * 1 kΩ * (20 kHz - 20 Hz)) in μV
Eles falham em Unidades GNU:
3.5 billion kilowatt-hours per year
1 ft / speed of sound
As alternativas das Unidades GNU podem ser:
3.5 billion kWh per year
1 ft / mach in ms
1/(2·π·100 Hz·30pF) → ohm
Você pode deixar de fora a parte "→ ohm". Isso é o que eu quis dizer com "ser esperto em adivinhar a quantidade": -).
−10 dBV + 4 dB + 10 dB − 12 dB → dBu
Unidades GNU tem alguma conversão de dB, mas é definida como 10 ^ (x / 10) que é um escalar que não irá adicionar a uma voltagem, onde você assume que a calculadora deve reconhecer que deve ser escalonada. Power e deve aplicar a escala de 10 ^ (x / 20) em vez disso. Isso seria muito legal, mas é uma ponte muito longe para as unidades de gnu que eu tenho medo. Isso pelo menos lhe dará a resposta correta usando as Unidades GNU:
1V*dB(-10)^0.5*dB(4)^0.5*dB(10)^0.5*dB(-12)^0.5 → dBu
Mas posso ver por que você pode achar isso pouco intuitivo.
Caso contrário, acho que PhyCalc.com pode chegar bem perto da sua calculadora ideal.
Para ter acesso rápido a ele, mapeio minha chave dedicada do teclado da calculadora adicionando-o ao seguinte par de nome / valor de string (REG_SZ) no registro do Windows:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey]
"ShellExecute"="http://phycalc.com"
O Wolfram Alpha é capaz de processar matemática e não requer que você baixe ou instale nada.
Confira aqui como usar suas funções matemáticas.