La définition mathématique de la fonction COSH est:
Étant donné que les opérations exponentielles sont impliquées, lorsque les paramètres d'entrée sont importants, les résultats de calcul de la COSH se développent rapidement, entraînant de très grandes valeurs. Ces grandes valeurs peuvent provoquer un déséquilibre à l'échelle axiale, une distorsion du graphique et même des accidents dans la fonction de dessin lors du dessin.
De plus, la plage de valeur de COSH est , il n'y a pas de valeurs négatives, donc lors de la conception des graphiques, vous devez également éviter les erreurs causées lors de la mauvaise utilisation des valeurs négatives ou des transformations logarithmiques.
Débordement de données ou infinité <br> Par exemple, lorsque les paramètres entrants sont très importants, le résultat de la fonction COSH dépassera la plage de nombres de points flottants PHP, ce qui entraînera un traitement infr
Ratio d'axe de coordonnées déraisonnables <br> En raison de la croissance rapide de COSH , les entrées à petite échelle provoquent d'énormes changements de sortie, ce qui rend difficile la présentation des détails lors du dessin.
Utilisation abusive des coordonnées logarithmiques <br> Si le résultat COSH est utilisé directement sur l'axe logarithmique, une erreur sera augmentée lorsqu'un numéro 0 ou négatif apparaît.
Limitez raisonnablement la valeur d'entrée pour éviter de passer des paramètres trop grands ou trop petits. Par exemple:
function safe_cosh($x) {
// Limitez la plage d'entrée,Évitez le débordement
if ($x > 20) {
$x = 20;
} elseif ($x < -20) {
$x = -20;
}
return cosh($x);
}
Détectez le résultat COSH et remplacez l'infini ou la valeur illégale:
function safe_cosh_value($x) {
$value = cosh($x);
if (!is_finite($value)) {
return PHP_FLOAT_MAX; // ou autre remplacement de valeur maximale appropriée
}
return $value;
}
Normaliser ou transformation logarithmique des données en soulant les différences numériques:
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);
}
Utilisez des bibliothèques de dessin qui prennent en charge le traitement de grand nombre
Définir une gamme raisonnable d'axes de coordonnées
Évitez les opérations de logarithme sur les résultats directement, ou filtrez 0 et les valeurs négatives d'abord
L'exemple de code suivant montre comment calculer en toute sécurité les données de format JSON COSH et sorties pour faciliter le dessin de la bibliothèque de dessin frontal.
<?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),
];
}
// NormalisationYvaleur,Affichage du graphique pratique
$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 pour accéder aux exemples de données:
https://gitbox.net/path/to/your/api/cosh-data.php
Le frontal peut demander l'interface pour obtenir des données COSH sécurisées via AJAX, puis dessiner un tableau de proportions raisonnables.
Lors du calcul de l'utilisation de la fonction COSH de PHP, assurez-vous de faire attention au traitement de la plage d'entrée et des valeurs de résultat pour empêcher le débordement numérique et le déséquilibre proportionnel du graphique. En limitant l'entrée, en détectant les valeurs aberrantes, en normalisant les données et en configurant rationnellement les paramètres du graphique, les erreurs de dessin du graphique peuvent être évitées efficacement et la précision et l'esthétique de la visualisation des données peuvent être assurées.