トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

tips-sliderule

計算尺

https://ja.wikipedia.org/wiki/%E8%A8%88%E7%AE%97%E5%B0%BA


名前 単位
D尺 標準(Log)
C尺 標準(Log)
A尺 D尺の1/2目盛
B尺 C尺の1/2目盛
K尺 C尺の1/3目盛
CI尺 C尺の逆目盛
DF尺 C尺を10ずらす
DF尺 C尺をπずらす
S/SI尺 SIN
T1/T2 tan (6度から~84度まで)

計算式


R : 幅(尺の長さ)
# : スケール(目盛の値)
最初の列にはスケール名があります。 
2番目の列は、そのスケールに使用される式です。 
単純化は、読者の練習問題として残されています。 
使用される規則では、
   Rはルールの長さを示し、
   #は位置が計算されているスケール上の数値を示します。 
最後の列には、特定のスケールに関するメモが含まれています。

Scale Formula Comments
A/B (R/2)*log(#) Used to calculate squares and square roots with the D scale. used to calculate the sine of an angle with the S scale on a Mannheim slide rule
C/D R*log(#) Used in multiplication and division. and also used with many other scales in various operations
CF/DF (log# - logPI)*R if # less than R then add R The folded scales used as a shortcut in multiplication and division
CI abs[R*log(10/#)-R] The inverse of the C scale. often used as a shortcut in division
CIF abs[R*(log(1/#) - log(1/PI))] if #<(10/PI) abs[R*(log(1/#) - log(1/PI)) - 25] if #>(10/PI) The inverse of the CF scale
K (R/3)*log(#) Used with the D scale to find the cube or cube root of a number
L #*R Used with the D scale to calculate the logarithm log10(#) of a number
LL0 log(ln(#))*R + 3*R Contains all numbers greater than or equal to 1.001 and less than or equal to 1.01; these scales (LL0-LL3) are used for logarithms. roots. and powers
LL1 log(ln(#))*R + 2*R Contains all numbers greater than or equal to 1.01 and less than or equal to 1.105
LL2 log(ln(#))*R + R Contains all numbers greater than or equal to 1.105 and less than or equal to e
LL3 log(ln(#))*R This contains all numbers greater than or equal to e
LL/0 log(ln(1/#))*R + 3*R This contains all numbers greater than or equal to e-0.01 and less than or equal to e-0.001
LL/1 log(ln(1/#))*R + 2*R This contains all numbers greater than or equal to e-0.1 and less than or equal to e-0.01
LL/2 log(ln(1/#))*R + R This contains all numbers greater than or equal to e-1.0 and less than or equal to e-0.1
LL/3 log(ln(1/#))*R This contains all numbers greater than or equal to e-10.0 and less than or equal to e-1.0
R1 log(#)*2*R Used with the D scale to find squares and square roots; those numbers greater than about 3.13 are on the R2 scale
R2 [log(#)*2*R] - 25 Used with the D scale to find squares and square roots; those numbers greater than about 3.13 are on the R2 scale
Smannheim (R/2)*[2 + log(sin(#))] Used with the A scale to calculate the sine of a number. or the tangent of a number less than 5.7 degrees
S/T [log(100*sin(#))]*R Used with the C scale to calculate the sine or the tangent of a number less than 5.7 degrees
S [log(10*sin(#))]*R Used with the C scale to calculate the sine of a number greater than 5.7 degrees
T R*log[10*tan(#) Used with the D scale to calculate the tangent of angles greater than 5.7 degrees

https://www.sliderulemuseum.com/SR_Scales.htm

http://www.pi-sliderule.net/sliderule/make/program/datafile.html


y=log(sin(x)) (0<x<π)

y=log(sin(x)) (0<x<π)
y'=cos(x)/sin(x)=cot(x)=1/tan(x)
x→+0でy→-∞
x→π-0でy→-∞

0<x<π/2でy'>0なので単調増加
π/2<x<πでy'<0なので単調減少
x=π/2でy'=0で極大となる。
x=π/2で極大値(最大値)y=0

増減表(等幅フォントで表示させ見てください)
x | 0 ……π/2 …… π
y'|+∞ +  0  − -∞
y |-∞ ↑ 極大0 ↓ -∞

グラフを描く補助として
直線x=π/2に対してグラフが対称
漸近線x=0(y軸)、直線x=π
x=π/6および5π/6でy=log(1/2)=-log2=-0.6931…
x=π/4および3π/4でy=log(1/√2)=-(log2)/2=-0.3465…
x=π/3および2π/3でy=log(√3/2)=log(3)/2-log(2)=-0.1438…
の情報を使うと良いでしょう。

作り方

http://osinko.hatenablog.jp/entry/2018/02/15/230704

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Mar  5 23:32:41 2021

@author: green
"""
import math

def header() :
   print("\\documentclass{jsarticle} " )
   print("\\usepackage[dvipdfmx]{graphicx}")
   print("\\usepackage{tikz}")
   print("\\usetikzlibrary{intersections,calc,arrows.meta}")
   print("\\begin{document}")
   print("\\begin{tikzpicture}")
   print( "" )

def footer() :
   print("\\end{tikzpicture}")
   print("\\end{document}")
   print("")

D=10.0
# C / D Rail 

header()

for x in range(10,101):
   x1 = (x/D)
   x2 = math.log10( x1 ) * 10.0
   # print ('\\draw (0,0) rectangle(','{:.4g}'.format(x2),',2);')
   print ('\\draw (', '{:.4g}'.format(x2), ',0 ) -- (', '{:.4g}'.format(x2),',2);')
   if ( (x % 5 ) == 0 ) :
       print ('\\draw (', '{:.4g}'.format(x2), ',0 ) node {', x1, '} ;' )

footer()

Tips

https://www.sliderulemuseum.com/

http://49.212.24.146/~take/TakeWiki/index.php?Arduino%E5%8B%89%E5%BC%B7%E4%BC%9A%2FJ2-%E8%A8%88%E7%AE%97%E5%B0%BA%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9#e5b24e43


Java_Script

http://www.pi-sliderule.net/program/sliderule/java/sliderule.html