COSH関数の数学的定義は次のとおりです。
指数操作が関与しているため、入力パラメーターが大きい場合、 COSHの計算結果が急速に増加し、非常に大きな値が得られます。これらの大きな値は、軸方向のスケールの不均衡、グラフの歪み、さらには描画時に描画関数にクラッシュする可能性があります。
さらに、 COSHの値範囲はです 、負の値はありません。したがって、チャートを設計するときは、負の値や対数変換を誤用するときに発生するエラーを避ける必要があります。
データオーバーフローまたは無限<br> たとえば、着信パラメーターが非常に大きい場合、 COSH関数の結果はPHPフローティングポイント数の範囲を超えて、 INFまたはNANをもたらし、チャートライブラリが処理できなくなります。
不合理な座標軸比<br> COSHの急速な成長により、小規模の入力により出力が大きな変化を引き起こすため、描画時に詳細を提示することが困難になります。
対数座標の誤用<br> COSHの結果が対数軸で直接使用される場合、0または負の数が表示されるとエラーが発生します。
入力値を合理的に制限して、大きすぎたり小さすぎたりするパラメーターを渡すことを避けます。例えば:
function safe_cosh($x) {
// 入力範囲を制限します,オーバーフローは避けてください
if ($x > 20) {
$x = 20;
} elseif ($x < -20) {
$x = -20;
}
return cosh($x);
}
COSHの結果を検出し、無限または違法価値を置き換えます。
function safe_cosh_value($x) {
$value = cosh($x);
if (!is_finite($value)) {
return PHP_FLOAT_MAX; // またはその他の適切な最大値の交換
}
return $value;
}
数値の違いを軽減するためにデータの正規化または対数変換:
function normalize_data(array $data) {
$max = max($data);
$min = min($data);
if ($max == $min) {
return $data;
}
return array_map(function($v) use ($max, $min) {
return ($v - $min) / ($max - $min);
}, $data);
}
多数の処理をサポートする描画ライブラリを使用します
合理的な範囲の座標軸を設定します
結果の対数操作を直接避けたり、最初に0と負の値をフィルタリングしたりしないでください
次のサンプルコードは、 COSHと出力JSON形式のデータを安全に計算して、フロントエンドの図書館ライブラリの図面を容易にする方法を示しています。
<?php
function safe_cosh($x) {
if ($x > 20) {
$x = 20;
} elseif ($x < -20) {
$x = -20;
}
$value = cosh($x);
if (!is_finite($value)) {
return PHP_FLOAT_MAX;
}
return $value;
}
$input_range = range(-10, 10, 0.5);
$data = [];
foreach ($input_range as $x) {
$data[] = [
'x' => $x,
'y' => safe_cosh($x),
];
}
// 正規化Y価値,便利なチャートディスプレイ
$y_values = array_column($data, 'y');
$y_norm = normalize_data($y_values);
foreach ($data as $key => $point) {
$data[$key]['y_normalized'] = $y_norm[$key];
}
header('Content-Type: application/json');
echo json_encode($data);
function normalize_data(array $data) {
$max = max($data);
$min = min($data);
if ($max == $min) {
return $data;
}
return array_map(function($v) use ($max, $min) {
return ($v - $min) / ($max - $min);
}, $data);
}
サンプルデータにアクセスするためのURL:
https://gitbox.net/path/to/your/api/cosh-data.php
フロントエンドは、インターフェイスを要求して、AJAXを介して安全なCOSHデータを取得し、合理的な割合のチャートを描画できます。
PHPのCOSH関数を使用して計算するときは、入力範囲と結果の値の処理に注意を払って、数値のオーバーフローとチャートの比例不均衡を防ぎます。入力を制限し、外れ値の検出、データの正規化、チャートパラメーターの合理的に構成することにより、チャート描画エラーを効果的に回避でき、データの視覚化の精度と美学を確保できます。