円の弧長,弦長,矢高,半径のどれか2つを与えて残りを計算(カシオの高精度計算サイト自作式)で180°以上、複数解に対応。
以前から、カシオの高精度計算サイトkeisan.casio.jpにこういう自作式を作ってアップしていて、かなりの人気になっている。
で、今日、ユーザの方のコメントでこういうのを見た。
「弧長345.1840854矢高125と入力すると弦長114.6153961半径75.63668903中心角261.4814516と表示されるが、弦長100半径72.5中心角271.7943621もあります、プラスの解が複数ある場合があるようです。当方、模型の制作、検査をしている者ですが数学のレベルが中学生以下なのでこちらの自作式を使用させてもらっています。これはお願いですが、弦長、半径、既知と弧長、矢高、既知のように解が複数あるときはそれらも表示出来る様にしてもらえないでしょうか、ぜひ御検討お願いいたします。」
え!180°以上で使っている人いたのか!と驚いた。しかも模型なのか。
実際、この2つの解って
のような状態。。。想定していたのはこの絵の通り、180°以下。
使っている人がいるなら修正せねばなるまい。
なんで2つ解があるかというと、
L=r*θ, d=2*r*sin(θ/2), h=r*(1-cos(θ/2))
から計算しているのだが、矢高と弧長だと、
2*h/d=(1-cos(x))/x (ただしx=θ/2)なのだが、この関数が、
こんな形なので、x<πまでに2つ解が出てくる。
(本当は180°以下の中心角が小さいほうだけしかいらないと思っていた、、、)
もう一つ、弦長と半径の場合も180°超えていいなら2つ解がでる。
あとはたぶんないはず、、、
とりあえず修正しましたが、いろんな使われ方をする自作式でおもしろいですな(自分で作ったながら、、、)
(参考)
Windowsアプリ版:
「円の弧長・弦長・矢高・半径のどれか2つを与えて残りを計算」するWindowsアプリ(.exe)を作ってみた。keisan.casio.jpとExcel VBA版のVB.net移植版。
Excel版:
円の弧長,弦長,矢高,半径のどれか2つを与えて残りを計算するExcelシート(VBA利用)を作った。ダウンロードできます。カシオの高精度計算サイトのExcel移植版。
« 近江ちゃんぽん 二条駅店で韓国チゲちゃんぽんを食す。 | トップページ | 高周波回路シミュレータQucsStudioを使ってみる(その1)まずは何をさておきμの文字化けだけには注意。 »
「パソコン・インターネット」カテゴリの記事
- Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(4) 多項式フィッティングをして、Array.ConvertAllで一括でフィッティングデータを得る。(2023.03.31)
- Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(3) 高速フーリエ変換(FFT)を実行する。FourierOptionsにMatlabとNumerical Recipesがあるのが意外。(2023.03.30)
- Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(2) 補間を行う(Interpolate) リニア、3次スプライン、有理関数などいろいろ使える。(2023.03.27)
- Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(1)複素行列を定義して一次方程式や逆行列、行列式などを計算する。(2023.03.24)
- KeysightのADSで位相を±180°に限らずに連続にする関数をよく聞かれるがいつも忘れる…unwrap()だ。PythonのNumPyでもあるので(matlabにもある)いい加減に覚えたい。とりあえずPythonでやってみて記憶する。(2023.03.02)
「学問・資格」カテゴリの記事
- Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(4) 多項式フィッティングをして、Array.ConvertAllで一括でフィッティングデータを得る。(2023.03.31)
- Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(3) 高速フーリエ変換(FFT)を実行する。FourierOptionsにMatlabとNumerical Recipesがあるのが意外。(2023.03.30)
- Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(2) 補間を行う(Interpolate) リニア、3次スプライン、有理関数などいろいろ使える。(2023.03.27)
- Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(1)複素行列を定義して一次方程式や逆行列、行列式などを計算する。(2023.03.24)
- 高周波(RF・マイクロ波・ミリ波・5G)関連ニュース(3/16) IEEE Microwave Magazineは女性マイクロ波研究者特集、Microwave Journalで285GHz帯で30GHz帯域のOTA測定!QorvoがUWB室内ナビのデモ、STMとonsemiのBluetooth新商品、IDTechExの6Gレポート、など。(2023.03.16)
「日記・コラム・つぶやき」カテゴリの記事
- Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(4) 多項式フィッティングをして、Array.ConvertAllで一括でフィッティングデータを得る。(2023.03.31)
- Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(3) 高速フーリエ変換(FFT)を実行する。FourierOptionsにMatlabとNumerical Recipesがあるのが意外。(2023.03.30)
- Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(2) 補間を行う(Interpolate) リニア、3次スプライン、有理関数などいろいろ使える。(2023.03.27)
- Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(1)複素行列を定義して一次方程式や逆行列、行列式などを計算する。(2023.03.24)
- BingのAIチャットに最大の素数はいくつ?と聞くと、存在しないが今知られている最大の素数は2^89589933-1だと答えた。が、これは引用している記事が誤植していて、実際は2^82589933-1だ...間違った記事を引用すると間違った答えになる。英語で聞くと1つ前のメルセンヌ素数に…(2023.03.17)
« 近江ちゃんぽん 二条駅店で韓国チゲちゃんぽんを食す。 | トップページ | 高周波回路シミュレータQucsStudioを使ってみる(その1)まずは何をさておきμの文字化けだけには注意。 »
コメント