Spline cubique naturelle
Par quatre points qui alternent entre 0 et 1, la spline cubique naturelle vaut 0,5 quand x vaut 1,5. Saisissez au moins trois points dans n’importe quel ordre et un x cible pour obtenir la valeur lissée et le morceau cubique qui la donne. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- x cible
- 1,5
- Y
- 0,5
- Nombre de points
- 4
- x minimum
- 0
- x maximum
- 3
L'interpolation par spline cubique naturelle est la façon classique de tracer une courbe lisse à travers des points d'échantillon dispersés lorsque vous souhaitez des dérivées première et seconde continues entre les nœuds et une allure quasi linéaire près des extrémités. Contrairement à un unique polynôme de haut degré, une spline cubique naturelle utilise un cubique distinct sur chaque intervalle entre abscisses consécutives, puis joint ces morceaux pour que la fonction, la pente et la courbure coïncident à chaque nœud intérieur. Le mot naturel signifie que la dérivée seconde est forcée à zéro aux deux extrémités, ce qui supprime les deux derniers paramètres libres sans inventer de pentes supplémentaires. Ce calculateur accepte une liste ordonnée ou non de nœuds (x, y), construit cette spline naturelle unique par un système tridiagonal de Thomas, et renvoie la valeur interpolée en votre x cible avec les coefficients du segment actif.
Qu'est-ce qu'une spline cubique naturelle et pourquoi les extrémités comptent
La continuité de S, S-prime et S-seconde aux nœuds intérieurs laisse deux conditions aux limites libres. Ce choix est courant dans les manuels d'analyse numérique, les croquis proches du CAD et les tracés scientifiques, car il n'exige que les points tabulés — sans pentes ni courbures d'extrémité fournies par vous. Le système résultant pour les coefficients de dérivée seconde est tridiagonal symétrique et défini positif lorsque les x sont strictement croissants, de sorte qu'un seul balayage de Thomas le résout en temps linéaire.
Évaluer en un x cible est alors une courte évaluation polynomiale à la Horner sur l'unique intervalle qui contient la cible. Ce calculateur d'interpolation par spline cubique naturelle met en œuvre exactement ce pipeline pour que votre résultat coïncide avec la construction classique des cours et des bibliothèques de référence.
Où l'évaluation de spline cubique naturelle justifie son usage
Les travaux de laboratoire demandent d'interpoler à la main trois à dix échantillons tabulés avec le système de conditions naturelles ; un calculateur en ligne d'interpolation par spline cubique naturelle permet de vérifier les dérivées secondes intermédiaires et le S final d'un x en milieu d'intervalle sans retaper l'algèbre linéaire. Les carnets finance et opérations utilisent des splines naturelles comme lisseur transparent lorsqu'ils veulent un interpolant qui touche chaque observation exactement plutôt qu'un ajustement aux moindres carrés. Une validation échouée ne consomme pas le solde.
Gardez les requêtes petites, figez dans les tests le y nettoyé et les coefficients de segment, et vous obtenez des valeurs de spline reproductibles pour plugins LMS, outils de conception et tableaux de mesures sans déployer votre propre infrastructure symbolique ou de tracé.
Cas d’usage
Contrôles de devoirs et d'analyse numérique
Vérifiez des systèmes cubiques naturels construits à la main : envoyez les mêmes nœuds et un x en milieu d'intervalle, puis comparez y et les coefficients de segment aux étapes du méthode de Thomas du manuel.
Comblement de trous capteurs et étalonnage
Interpolez des tables d'étalonnage irrégulièrement espacées aux instants de requête strictement entre le premier et le dernier échantillon sans envoyer une pile scientifique complète au bord.
Carnets et interpolants exacts lisses
Construisez une courbe deux fois différentiable qui passe par chaque observation lorsque le lissage aux moindres carrés serait le mauvais modèle pour la tâche.
Questions fréquentes
Que signifie naturel pour une spline cubique ?
Naturel signifie que les dérivées secondes aux deux extrémités sont fixées à zéro. Cela ferme le système sans exiger de pentes d'extrémité et produit la résolution tridiagonale classique des manuels.
Combien de points me faut-il ?
Au moins trois nœuds à x distinctes (deux intervalles). Moins de trois est rejeté ; plus de 256 aussi. Les x en double sont toujours invalides pour cet interpolant.
Les points d'entrée doivent-ils être pré-triés ?
Non. Envoyez-les dans n'importe quel ordre ; le moteur trie par x croissante avant de résoudre. Seule l'unicité de x est exigée.
Puis-je évaluer la spline hors de l'intervalle de mes données ?
Non. Le x cible doit se situer entre le plus petit et le plus grand x de vos points, bornes comprises. Au-delà, la spline extrapolerait, et la demande est refusée plutôt que de deviner une valeur.
En quoi une spline diffère-t-elle d'un ajustement par moindres carrés ?
La spline passe exactement par chaque point fourni, avec une pente et une courbure continues à chaque jonction. Les moindres carrés lissent sans toucher chaque observation, ce qui convient mieux aux mesures bruitées qu'aux tables exactes.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/calculus/cubic-spline-natural \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"points":[{"x":0,"y":0},{"x":1,"y":1},{"x":2,"y":0},{"x":3,"y":1}],"target_x":1.5}'const res = await fetch("https://api.kit.forhosting.com/calculus/cubic-spline-natural", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"points": [
{
"x": 0,
"y": 0
},
{
"x": 1,
"y": 1
},
{
"x": 2,
"y": 0
},
{
"x": 3,
"y": 1
}
],
"target_x": 1.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calculus/cubic-spline-natural",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"points": [
{
"x": 0,
"y": 0
},
{
"x": 1,
"y": 1
},
{
"x": 2,
"y": 0
},
{
"x": 3,
"y": 1
}
],
"target_x": 1.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calculus/cubic-spline-natural", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"points":[{"x":0,"y":0},{"x":1,"y":1},{"x":2,"y":0},{"x":3,"y":1}],"target_x":1.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"points":[{"x":0,"y":0},{"x":1,"y":1},{"x":2,"y":0},{"x":3,"y":1}],"target_x":1.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calculus/cubic-spline-natural", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"points": [
{
"x": 0,
"y": 0
},
{
"x": 1,
"y": 1
},
{
"x": 2,
"y": 0
},
{
"x": 3,
"y": 1
}
],
"target_x": 1.5
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calculus.cubic_spline_natural",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Étudiants, ingénieurs et auteurs de carnets peuvent vérifier des exercices, combler des trous dans des séries de mesures, ou piloter widgets gratuits et API depuis le même module parse pur à $0.002 par appel réussi.
Qu'est-ce qu'une spline cubique naturelle et pourquoi les extrémités comptent
Une spline cubique sur des nœuds x_0 inférieur à x_1 inférieur à … inférieur à x_n est un polynôme cubique par morceaux S qui passe exactement par chaque valeur y_i en x_i, est deux fois continûment différentiable sur tout l'intervalle, et utilise un morceau cubique sur chaque sous-intervalle [x_i, x_{i+1}]. Le choix naturel fixe S-seconde de x_0 et S-seconde de x_n égales à zéro, ce qui revient à supposer que la courbe se prolonge en droite hors de la fenêtre d'échantillons. Une fois ces coefficients connus, chaque morceau s'écrit S_i de x égal à a_i plus b_i fois delta plus c_i fois delta au carré plus d_i fois delta au cube, où delta est x moins x_i, a_i est y_i, et b_i, c_i, d_i viennent de la récurrence standard.
Contrat d'entrée, champs de réponse et règles de validation
L'ordre n'importe pas : le moteur trie les nœuds par x croissante avant de construire la spline. La cible doit se situer dans l'intervalle fermé de la plus petite x de nœud à la plus grande ; ce point de terminaison n'extrapole pas hors de la fenêtre d'échantillons, car les morceaux cubiques naturels ne garantissent l'interpolant voulu qu'entre nœuds. Envoyez un corps JSON avec deux champs obligatoires. points est un tableau d'au moins trois objets, chacun avec x et y numériques finis ; vous pouvez aussi envoyer le même tableau sous les alias knots ou data. Les valeurs de x doivent être deux à deux uniques ; si deux nœuds partagent la même abscisse, la tâche échoue avec invalid_input car un graphe de fonction ne peut avoir deux ordonnées en un même x pour cet interpolant. Un plafond strict de 256 nœuds borne le travail du navigateur et du worker. target_x est l'abscisse finie où vous voulez évaluer S ; l'alias x est accepté pour les clients courts. En cas de succès le corps renvoie target_x, le y interpolé arrondi pour des goldens stables, point_count, x_min, x_max, le segment_index base zéro du morceau actif, un objet segment avec x_left, x_right et les coefficients a, b, c, d de ce morceau, le tableau points trié, method égal à natural_cubic_spline, et une courte chaîne formula rappelant la forme du morceau et les conditions aux limites. Champs manquants, nombres non finis, moins de trois points, x en double ou cible hors plage de nœuds lèvent invalid_input et ne sont pas facturés.
Où l'évaluation de spline cubique naturelle justifie son usage
Les pipelines de capteurs stockent souvent des points d'étalonnage irrégulièrement espacés et ont besoin d'un remplissage lisse aux instants de requête entre échantillons — appeler une petite API parse évite d'envoyer une pile SciPy complète à chaque worker de bord. Comme l'implémentation est purement analytique avec un Thomas linéaire, chaque appel réussi coûte le prix de base publié $0.002 sans jetons de modèle ni réseau sortant.
Questions techniques
Puis-je évaluer hors de la plage des données ?
Non. target_x doit se situer dans l'intervalle fermé de la plus petite à la plus grande x de nœud. Les requêtes hors de cette plage échouent avec invalid_input plutôt qu'une extrapolation silencieuse.
Combien coûte le calculateur de spline cubique naturelle ?
L'outil navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n'est pas facturée.