Wolfram Mathematicaとグラフデジタイザーを使用した関数グラフのデジタル化と近似

ほとんどすべてのエンジニアと学生は、関数と曲線のグラフをデジタル化するタスクを処理する必要があります。 従来の「手動」方式は非常に不便であり、データに大きなエラーをもたらします。 1回限りのタスクの場合、この方法はそれほど悪くはありませんが、複数のグラフがあり、それぞれが1つの曲線ではなく、曲線のファミリーを示している場合はどうでしょうか。



物理学の実験室ワークショップを実施する過程で、私はしばしば、さらなる計算を実施するために、紙に提示されたグラフに従って関数の値を決定するタスクに直面します。 このようなグラフをコンピューターで処理すると、このプロセスの速度と精度が大幅に向上するため、グラフをデジタル化し、グラフに表示される曲線の数学モデルを構築する可能性を検討することにしました。



画像



例として、電気工学に関する実験室のワークショップから、発電機の効率の電力依存性のグラフを取りました。 作業の入力時に、グラフをスキャンし、グラフの画像を処理し、座標をデジタル化し、曲線の数学モデルを構築しました。



1.画像の準備



スキャン後、最初のステップは、結果の画像をフルコントラストにし、グラフの軸の1つを揃えることです。 次に、画像をシャープにしてサイズを変更します。 サイズと解像度が大きすぎると、その後の作業段階で問題が発生します。



画像処理Adobe Photoshopプログラムをお勧めします。 カーブツールを使用して完全なコントラストを実現し、スマートシャープフィルターを使用してシャープネスを高めます。 Photoshopの間違いない利点は、アクション(アクション)を記録し、それをバッチ処理(ファイル-バッチ処理)と組み合わせて適用することにより、多数の画像を処理できることです。



プロセスを高速化するために、事前に準備されたプリセットまたは自動アルゴリズムを使用して、スキャンプログラムで処理を実行できます。



画像

図1.1-処理前と処理後のグラフの画像



2.座標のデジタル化



座標をデジタル化するために、シェアウェアGetData Graph Digitizeバージョン2.26を使用しました。 プログラムを開始した後、処理済みのイメージ「ファイル-イメージを開く」を開きます。 開くと、標準のワークスペースが表示されます。



画像

図2.1-標準グラフデジタイズインターフェイス



2.1。 座標系の設定(SK)



最初に行う必要があるのは、座標系を確立することです。 軸線をマークします。 これを行うには、「コマンド-座標系の設定」に進みます。 次に、LMBを押しながら、原点を見つけてクリックします。 表示されるウィンドウで、原点の値(Xmin)を入力します。 次に、Xmax、Ymin、Ymaxの値を同様に設定します。 ポイントの便利な設定のために、拡大鏡のウィンドウを開く必要があります "View-Magnifier"。 制御点を設定すると、軸線が表示され、[座標系パラメーター]ウィンドウが開きます。このウィンドウでは、制御点の値を再割り当てし、対数軸スケールを設定できます。



SKインストールの品質を視覚的に制御するために、指定されたステップ「表示-グリッドの表示」でグリッドを表示できます。 SCを正しくインストールする場合、グリッド線はグラフ画像の線と厳密に平行でなければなりません。 ターンをスキャンすると、グラフがベンド領域に表示されることが多く、軸の1つが湾曲していることに注意してください。 この場合、SCを正しく確立することはできません。そのため、スキャン段階では、ターンをガラスにより強く押し付ける必要があります。



画像

図2.2-座標系とグリッドがインストールされたビュー



2.3。 数値化曲線



チャートにポイントを設定しましょう。 これを行うには、ポイント設定モードに移動します(Ctrl + P)。 このモードでは、LMBをクリックして新しいポイントを設定します。 選択したポイントの座標テーブルを表示するには、「表示-情報ウィンドウ」に進みます。 ポイントを削除するには、データポイントの消しゴム「コマンド-データポイントの消しゴム」を使用します(Ctrl + E)



私の経験では、曲線の変曲点の近くに多数のポイントを設定する必要があります;曲線の線形セクションでは、それらを少数に制限できます。



グラフ上に複数の曲線または曲線のファミリがある場合、最初のポイントを設定した後、「コマンド-行の追加」という新しい行を追加する必要があります。 その後、2番目の曲線などに点を設定することができます。



グラフ画像にグリッドがない場合は、自動曲線追跡アルゴリズム(Ctrl + T)を使用できます。 グリッドがある場合、アルゴリズムは多くのエラーを生成します。



画像

図2.3-曲線上に固定点があるビュー



2.4。 データエクスポート



取得したデータをさらに処理するには、ポイントの座標を.txtファイルまたはクリップボードにエクスポートする必要があります(カーブが1つしかない場合に便利です)。 GetData Graph Digitizeプログラムでは、「File-Data Export」コマンド(Ctrl + Alt + E)を呼び出して.txtへのエクスポートを実行します。 開いたウィンドウをクリックした後、保存パスとファイル名を設定することをお勧めします。



データファイルのエクスポート
作成者GetData Graph Digitizer 2.26.0.20、作成日2017年10月1日、21:16、

ファイル「C:\ Users \ Andrey \ Downloads \ Article Habr \ pr-1 \ IMG.jpg」に基づいて



行番号1

0.00000000000000 0.00000000000000

2.36249828804472 0.0100017499987319

4.64890967470313 0.0144478880812405

9.19129768746544 0.0211179194797685

9.25216720857449 0.0255624090127471

13.8097726016141 0.0333435627945197

18.3369432340991 0.0389024718098030

25.1353078729653 0.0477963965243503

27.4217192596237 0.0522425346068590

34.2048665182127 0.0600253369381616

34.2961707998762 0.0666920712376295

38.7929066718068 0.0700287354864236

41.1097528190197 0.0766971183354215

45.6825755923365 0.0855893945004388

52.4657228509255 0.0933721968317414

54.8130037586929 0.102262824447229

61.5961510172819 0.110045626778531

66.1841911708760 0.120049025326793

70.7417965639155 0.127830179108566

73.0282079505739 0.132276317191075

77.6010307238908 0.141168593356092

84.3689606022025 0.147840273304150

86.7010241296927 0.155619778536392

91.3042816635640 0.166734299467899

95.8466696763263 0.173404330866427

98.1635158235393 0.180072713715425

102.721121216579 0.187853867497197

111.805897242103 0.201193930294253

114.137960769594 0.208973435526496

118.710783542910 0.217865711691513

125.478713421222 0.224537391639571

132.277078060088 0.233431316354119

134.578706827024 0.238988576819872

141.361854085613 0.246771379151175

145.904242098375 0.253441410549703

152.733041497796 0.264557580030739

157.275429510558 0.271227611429267

164.058576769147 0.279010413760570

168.616182162187 0.286791567542342

173.158570174949 0.293461598940870

179.926500053261 0.300133278888928

184.468888066023 0.306803310287456

191.236817944335 0.313474990235514

193.538446711271 0.319032250701268

198.050399963478 0.323480037333306

204.818329841790 0.330151717281364

211.571042339824 0.335712274846178

218.323754837859 0.341272832410991

227.332443961997 0.349057283291824

231.844397214205 0.353505069923862

240.883521098898 0.363511765571184

247.621016216655 0.367961200752753

252.117752088585 0.371297865001547

256.629705340793 0.375745651633586

263.367200458550 0.380195086815154

272.375889582689 0.387979537695987

274.647083589070 0.391314553395251

283.625337952654 0.396876759509595

290.393267830965 0.403548439457653

299.371522194549 0.409110645571996

306.139452072861 0.415782325520054

315.132923816722 0.422455654017642

324.095960800028 0.426906737748741

333.089432543889 0.433580066246329

339.842145041924 0.439140623811142

353.317135277438 0.448039494174280

357.829088529646 0.452487280806318

364.566583647403 0.456936715987887

375.770379876536 0.462500570651760

389.230152731773 0.470288318631653

398.208407095357 0.475850524745997

407.156226698386 0.479190486093851

420.615999553624 0.486978234073743

429.609471297485 0.493651562571331

440.798050146340 0.498104294851960

454.242605621300 0.504780920448608

467.641508955428 0.508124178895523

476.574111178180 0.510353017860132

485.537148161487 0.514804101591231

498.951268875892 0.519258482421390

521.282774432772 0.524830579832913

541.388738124103 0.530401028694907

554.802858838508 0.534855409525066

565.961002926809 0.537085897039205

581.600665506764 0.541541926418894

597.225110706442 0.544886833415338

617.331074397772 0.550457282277332

641.872904439924 0.554919905855141

659.722891505151 0.558266461401115

679.828855196482 0.563836910263109

697.678842261709 0.567183465809083

708.836986350010 0.569413953323222

726.671756034959 0.571649386485952

735.619575637989 0.574989347833806

753.454345322938 0.577224780996536

789.139102073114 0.582806769705239

809.214631003891 0.586154973800744

833.741243665765 0.589506474995308

849.335254104888 0.590629137225263

860.508615573467 0.593970747122647

884.989576094510 0.593988881167477

905.065105025286 0.597337085262982

916.223249113588 0.599567572777121

925.125416575785 0.599574166975241

947.350400470724 0.597368407704052

960.734086424575 0.599600543767722

998.598732899469 0.601850813876222

1032.02751302354 0.605208909268906

1052.04217243321 0.604112623831432

1078.74867481980 0.604132406425792

1105.45517720639 0.604152189020153

1121.01875288496 0.603052606483618

1165.49915543539 0.600863332707730

1181.04751373369 0.598652627787951

1192.16000568116 0.597549748152356

1203.27249762862 0.596446868516762

1223.27193965801 0.594239460696043

1234.35399684493 0.590914336293959

1249.91757252350 0.589814753757425

1260.99962971041 0.586489629355341

1274.30722876288 0.583166153502787

1285.40450333007 0.580952151483948

1303.13275135308 0.575409727963965

1316.45556778582 0.573197374494656

1331.98870870383 0.569875547191632

1345.28109037602 0.565440948955834

1360.79901391376 0.561007999269566

1371.88107110067 0.557682874867482

1385.18867015314 0.55435939901494928

1396.27072734005 0.551034274612844

1411.80386825807 0.547712447309821

1420.66038357943 0.544385674358207

1431.74244076635 0.541060549956123

1442.82449795326 0.537735425554039

1453.87612037962 0.532188056385466

1467.19893681236 0.529975702916157

1476.05545213373 0.526648929964543

1484.88153269454 0.521099912246440

1498.17391436673 0.516665314010642

1509.24075417337 0.512229067225314

1522.54835322583 0.508905591372760

1533.63041041275 0.505580466970676

1546.90757470466 0.500034746351633

1557.97441451129 0.495598499566305

1564.60538796711 0.492270078065161

1573.44668590820 0.487832182730302

1588.94939206566 0.482288110660789

1599.98579711174 0.475629619108972



「設定-パラメータ」メニューで、データ出力の形式が設定されます。 ここで、X座標の値でポイントを並べ替えることができます。各Xの曲線に一意のYがある場合、一連の設定ポイントのランダムエラーを除外します。



画像

図2.4-エクスポート設定



3.曲線の数学モデルの構築



最後に、取得したデータの近似を実行し、取得した数学モデルの正確性を確認します。 このために、Wolfram Mathematicaコンピューター代数システムを使用することをお勧めします。



Wolfram Mathematicaにデータをすばやくインポートするには、エクスポートされたファイルからポイントの座標をコピーして空のExcelセルに貼り付けます。 その結果、データXとYの2列がそれぞれシートに表示されます。



画像

図3.1-Excelのデータ



次のステップは、新しいWolfram Mathematicaドキュメントを作成し、Excelファイルをそこにドラッグすることです。 その結果、ポイントの座標を含むリストのリストが形成されます。 変数データをそれに割り当てます。



画像

図3.2-Wolfram Mathematicaにインポートされたデータ



ListPlot []関数を使用して、インポートされたデータを表示します。



画像

図3.3-データ散布図形式のポイントのグラフィカル表示



5次の多項式でポイントを近似します。 これを行うには、LinearModelFit []関数を使用します。 その結果、クラスFittedModel []のオブジェクトを取得します。 フィットするように設定します。



決定係数R ^ 2を計算し、変数の変動(広がり)が方程式をどの程度説明するかを示します。 この係数が1に近いほど、方程式が説明する変動の割合が大きくなります。 これを行うには、「RSquared」をfit関数の引数として指定します。 この場合、R ^ 2 = 0.99です。これは、モデルが変数の変動の99.9%を説明することを意味します。



Yの値を計算するには、必要なXの値をfit関数の引数として指定する必要があります。



画像

図3.4-ポイントの近似、決定係数の計算、および関数の値の計算



決定係数の計算に加えて、回帰分析を実施します。 今回は、フィット関数の引数として「ANOVATable」を指定します。 結果によると、近似多項式の各項の使用は正当化されると主張できます。 得られた方程式を明示的な形式で表示します;このために、フィット変数にNormal []関数を適用します。



画像

図3.5-回帰分析と明示的な形式の多項式



次に、多項式をプロットし、その開始点を表示します。 標準の構文を使用して、チャートスタイルを構成し、軸にラベルを追加し、チャート名を追加します。



画像

図3.6-最終的なグラフ



画像

図3.7-最終グラフとソースデータの比較



Wolfram Mathematicaで数学モデルを分析する可能性は本当に大きいが、我々は上記のものに限定するつもりである。 興味のある方は、fit ["Properties"]関数を評価することでさらに学ぶことができます。



結論:



その結果、グラフをデジタル化し、曲線の数学モデルを選択するためにWolfram MathematicaとGraph Digitizerを使用する可能性を調査しました。 使用済みソフトウェアを使用すると、最小限の労力で高品質のタスクを完了できます。



PS:簡単に説明すると、仕事で同じような仕事にどれくらいの頻度で直面する必要があるか教えていただけますか? 私は質問に答えてうれしいです。



All Articles