Suite

Calculer la géométrie sur certaines entités ont les mêmes X et Y pour le début et la fin ?


J'ai fait "Calculer la géométrie" sur un fichier de formes de ligne pour obtenir les coordonnées X et Y pour le début et la fin de toutes les lignes de la forme. Mais certaines lignes résultaient avec le même X au début et à la fin, et le même Y au début et à la fin.

Si la ligne est traversée par une autre ligne, les X et Y qui en résultent sont les X et Y du point où la ligne est croisée. Donc X,Y sont les mêmes parce que c'est un point. Ma question maintenant est pourquoi Calculate Geometry fait cela?

Voici l'une des lignes concernées :

C'est une autre ligne et ses propriétés


Avez-vous jeté un œil à ces lignes pour voir ce qui pourrait se passer? Leurs points de départ et d'arrivée peuvent en fait être au même endroit, s'ils ont été mal dessinés. Sélectionnez-en un et zoomez dessus. S'il apparaît comme un point, c'est pourquoi les coordonnées XY des points de début et de fin sont les mêmes.

Selon le système de coordonnées que vous utilisez, il est également possible qu'une ligne très courte apparaître d'avoir les mêmes points de départ et de fin parce que vous ne voyez tout simplement pas assez de chiffres après la virgule dans vos coordonnées pour voir la différence.


Vous pouvez utiliser l'outil Sommets d'entités en points avec l'option BOTH_ENDs cochée, sur vos lignes, qui vous donnera les points de départ/fin des lignes. Ajoutez ensuite les coordonnées XY pour remplir les points résultants avec les valeurs Lat/Long.

Une autre façon d'aborder votre flux de travail.


Comment un pilote utilise-t-il la géométrie dans son travail ?

Le pilotage d'un aéronef nécessite une quantité importante de connaissances. Les pilotes doivent comprendre la géographie et la physique et doivent avoir de bonnes aptitudes mécaniques. Le travail exige également de bonnes compétences en mathématiques. Les pilotes utilisent les mathématiques au quotidien. En plus de l'arithmétique, de l'algèbre et du calcul de base, une compréhension approfondie de la géométrie permet aux pilotes de bien faire leur travail. Avant d'envisager une carrière de pilote, vous devez comprendre comment les pilotes appliquent leurs connaissances en géométrie pour faire leur travail.


27 Réponses 27

Vous ne pourrez pas obtenir cela à partir d'un TimeSpan , car un "mois" est une unité de mesure variable. Vous devrez le calculer vous-même et vous devrez déterminer exactement comment vous voulez que cela fonctionne.

Par exemple, des dates comme le 5 juillet 2009 et le 4 août 2009 devraient-elles produire une différence d'un mois ou de zéro mois ? Si vous dites qu'il devrait en produire un, alors qu'en est-il du 31 juillet 2009 et du 1er août 2009 ? Est ce un mois? Est-ce simplement la différence des valeurs du mois pour les dates, ou est-ce plus lié à une période de temps réelle ? La logique pour déterminer toutes ces règles n'est pas triviale, vous devrez donc déterminer la vôtre et implémenter l'algorithme approprié.

Si tout ce que vous voulez est simplement une différence dans les mois - sans tenir compte des valeurs de date - alors vous pouvez utiliser ceci :

Notez que cela renvoie une différence relative, ce qui signifie que si rValue est supérieur à lValue , alors la valeur de retour sera négative. Si vous voulez une différence absolue, vous pouvez utiliser ceci :

(Je me rends compte que c'est une vieille question, mais.)

C'est relativement pénible à faire en pur .NET. Je recommanderais ma propre bibliothèque Noda Time, qui est particulièrement conçue pour des choses comme celle-ci :

(Il existe d'autres options, par exemple si vous ne voulez qu'un nombre de mois même sur plusieurs années, vous utiliseriez Period period = Period.Between(start, end, PeriodUnits.Months) )

Peut-être que vous ne voulez pas connaître les fractions de mois Qu'en est-il de ce code ?

J'ai écrit une méthode d'extension très simple sur DateTime et DateTimeOffset pour ce faire. Je voulais que cela fonctionne exactement comme une propriété TotalMonths sur TimeSpan : c'est-à-dire retourner le nombre de mois complets entre deux dates, en ignorant les mois partiels. Parce qu'il est basé sur DateTime.AddMonths(), il respecte différentes longueurs de mois et renvoie ce qu'un humain comprendrait comme une période de mois.

(Malheureusement, vous ne pouvez pas l'implémenter en tant que méthode d'extension sur TimeSpan car cela ne conserve pas la connaissance des dates réelles utilisées, et pendant des mois, elles sont importantes.)

Le code et les tests sont tous deux disponibles sur GitHub. Le code est très simple :

Et il réussit tous ces cas de tests unitaires :

Vous devrez définir ce que vous entendez par TotalMonths pour commencer.
Une définition simple met un mois à 30,4 jours (365,25/12).

Au-delà de cela, toute définition comprenant des fractions semble inutile, et la valeur entière la plus courante (des mois entiers entre les dates) dépend également de règles métier non standard.

Vous devez le résoudre vous-même en dehors des dates-heures. La façon dont vous gérerez les jours de talon à la fin dépendra de l'utilisation que vous voulez en faire.

Une méthode serait de compter le mois puis de corriger les jours à la fin. Quelque chose comme:

Il n'y a pas beaucoup de réponses claires à ce sujet parce que vous supposez toujours des choses.

Cette solution calcule entre deux dates les mois entre en supposant que vous souhaitez enregistrer le jour du mois pour comparaison, (ce qui signifie que le jour du mois est pris en compte dans le calcul)

Exemple, si vous avez une date du 30 janvier 2012, le 29 février 2012 ne sera pas un mois mais le 01 mars 2013 le sera.

Il a été testé de manière assez approfondie, il sera probablement nettoyé plus tard au fur et à mesure que nous l'utiliserons, et prend deux dates au lieu d'une période, ce qui est probablement mieux. J'espère que cela aidera quelqu'un d'autre.

La réponse acceptée fonctionne parfaitement lorsque vous voulez des mois complets.

J'avais besoin de mois partiels. Voici la solution que j'ai trouvée pendant des mois partiels :

J'avais aussi besoin d'un an de différence avec le même besoin d'années partielles. Voici la solution que j'ai trouvé :

Vieille question que je sais, mais pourrait aider quelqu'un. J'ai utilisé la réponse acceptée par @Adam ci-dessus, mais j'ai ensuite vérifié si la différence est de 1 ou -1, puis vérifiez s'il s'agit d'une différence d'un mois civil complet. Ainsi, le 21/07/55 et le 20/08/55 ne seraient pas un mois complet, mais le 21/07/55 et le 21/07/55 le seraient.

Le problème avec les mois est que ce n'est pas vraiment une mesure simple - ils ne sont pas de taille constante. Vous devrez définir vos règles pour ce que vous souhaitez inclure et travailler à partir de là. Par exemple, du 1er janvier au 1er février - vous pouvez affirmer que 2 mois sont impliqués là-bas, ou vous pouvez dire qu'il s'agit d'un mois. Alors qu'en est-il du "1er janvier 20h00" au "1er février 00h00" - ce n'est pas tout à fait un mois complet. C'est 0 ? 1? qu'en est-il de l'inverse (du 1er janvier 00h00 au 1er février 20h00). 1? 2 ?

Définissez d'abord les règles, puis vous devrez le coder vous-même, j'en ai peur.

Si vous souhaitez avoir un résultat 1 entre le 28 février et le 1er mars :

Cette bibliothèque calcule la différence de mois, en considérant toutes les parties de DateTime :

Vous trouverez ci-dessous la manière la plus précise de procéder, car la définition de "1 mois" change en fonction du mois, et aucune des autres réponses n'en tient compte ! Si vous souhaitez plus d'informations sur le problème qui n'est pas intégré au framework, vous pouvez lire ce post : A Real Timespan Object With .Years & .Months (cependant, la lecture de ce post n'est pas nécessaire pour comprendre et utiliser la fonction ci-dessous, cela fonctionne à 100%, sans les inexactitudes inhérentes à l'approximation que les autres aiment utiliser - et n'hésitez pas à remplacer la fonction .ReverseIt par la fonction .Reverse intégrée que vous pouvez avoir sur votre framework (c'est juste ici pour être complet).

Veuillez noter que vous pouvez obtenir n'importe quel nombre de dates/heures de précision, secondes et minutes, ou secondes, minutes et jours, n'importe où jusqu'à des années (qui contiendraient 6 parties/segments). Si vous spécifiez les deux premiers et qu'il a plus d'un an, il renverra "il y a 1 an et 3 mois" et ne renverra pas le reste car vous avez demandé deux segments. s'il ne date que de quelques heures, il ne retournera que "il y a 2 heures et 1 minute". Bien sûr, les mêmes règles s'appliquent si vous spécifiez 1, 2, 3, 4, 5 ou 6 segments (max à 6 car secondes, minutes, heures, jours, mois, années ne font que 6 types). Il corrigera également les problèmes de grammaire tels que "minutes" vs "minute" selon qu'il s'agit d'une minute ou plus, identique pour tous les types, et la "chaîne" générée sera toujours grammaticalement correcte.

Voici quelques exemples d'utilisation : bAllowSegments identifie le nombre de segments à afficher. c'est-à-dire: si 3, alors la chaîne de retour serait (à titre d'exemple). "3 ans, 2 mois et 13 jours" (n'inclura pas les heures, les minutes et les secondes car les 3 premières catégories de temps sont renvoyées), si toutefois, la date était une date plus récente, comme quelque chose il y a quelques jours, en spécifiant le les mêmes segments (3) renverront "il y a 4 jours, 1 heure et 13 minutes" à la place, donc cela prend tout en compte !

si bAllowSegments vaut 2, il renverrait "3 ans et 2 mois" et si 6 (valeur maximale) renverrait "3 ans, 2 mois, 13 jours, 13 heures, 29 minutes et 9 secondes", mais, rappelez-vous qu'il NE RETOURNEZ JAMAIS quelque chose comme ceci "il y a 0 ans, 0 mois, 0 jours, 3 heures, 2 minutes et 13 secondes" car il comprend qu'il n'y a pas de données de date dans les 3 premiers segments et les ignore, même si vous spécifiez 6 segments, donc ne t'inquiète pas :). Bien sûr, s'il y a un segment avec 0, il en tiendra compte lors de la formation de la chaîne et s'affichera comme "il y a 3 jours et 4 secondes" et en ignorant la partie "0 heures" ! Profitez et commentez si vous le souhaitez.

Bien sûr, vous aurez besoin d'une fonction "ReplaceLast", qui prend une chaîne source et un argument spécifiant ce qui doit être remplacé, et un autre argument spécifiant par quoi vous voulez le remplacer, et il ne remplace que la dernière occurrence de cette chaîne . J'ai inclus le mien si vous n'en avez pas ou si vous ne voulez pas l'implémenter, alors le voici, il fonctionnera "tel quel" sans aucune modification nécessaire. Je sais que la fonction reverseit n'est plus nécessaire (existe dans .net) mais les fonctions ReplaceLast et ReverseIt sont reportées des jours pré-.net, veuillez donc excuser à quel point elle peut sembler datée (fonctionne toujours à 100%, j'ai utilisé em depuis plus de dix ans, peut garantir qu'ils sont sans bug). :). à votre santé.


1 réponse 1

PostGIS le fera facilement. Boundless Geo propose un excellent didacticiel PostGIS. Je vous recommande également de vous familiariser avec Ch3 & 4 du manuel PostGIS.

Je vous conseille fortement d'apprendre et de comprendre la différence entre les coordonnées projetées et non projetées si vous allez travailler avec des données spatiales. Projeté signifie que les coordonnées ont été prises à partir d'une « terre ronde » et ajustées ou projetées sur une page de carte plate (avec des coordonnées normalement données en pieds ou en mètres selon les propriétés de la projection utilisée). Cela permet d'effectuer des calculs cartésiens normaux efficaces en termes de calcul pour la distance, la surface, la direction, l'intersection, les contenus, etc. Il existe des compromis pour l'utilisation des projections. ou surface sur une carte plate. Différentes projections sont optimisées pour différents compromis. Les calculs sur les données projetées ne sont précis que sur une portion relativement petite de la surface de la terre. Il existe de nombreuses projections cartographiques disponibles pour répondre aux divers besoins et localités. Si vous envisagez de travailler avec des données projetées, vous devez choisir une projection qui convient à vos objectifs et à votre emplacement. Si vous ne comprenez pas les projections, vos requêtes peuvent facilement produire des déchets sans vous en rendre compte.

Les données non projetées (c'est-à-dire les coordonnées Lat/Lon brutes que vous avez) impliquent des calculs beaucoup plus compliqués car ils sont effectués sur la surface incurvée du sphéroïde représentant la Terre. Il existe un certain nombre de systèmes de coordonnées de référence qui sont utilisés pour exprimer Lat/Lon, mais le plus courant est "WGS84" (c'est dans lequel les coordonnées "GPS" sont exprimées).

Les objets PostGIS (sous la forme d'"entités simples" telles que définies par l'OGC) peuvent être stockés sous forme de types "géométrie" (coordonnées projetées) ou de types "géographie" (Lon/Lat non projetés dans WGS84 : notez l'ordre, une source commune de confusion !). En tant que petit problème, Lon/Lat (commandez à nouveau !) peut également être stocké en tant que type de géométrie "pseudo projetée" (généralement avec un SRID de projection de '4326' pour WGS84 Lon/Lat).

La méthode que vous utilisez pour calculer la distance dépendra de la façon dont vous choisissez de stocker vos points (« géométrie » ou « géographie »).

Voir ST_Distance de la documentation PostGIS pour d'excellents exemples de mesure de distance en utilisant à la fois des points de géométrie et de géographie. Notez que si vous souhaitez calculer les distances cartographiques projetées, vous devrez choisir une projection cartographique appropriée et utiliser ST_Transform pour projeter vos points sur le système de référence spatiale approprié (actuellement dans les coordonnées SRID 4326- "GPS"). Pour quelques points seulement, la différence ne sera pas du tout perceptible, mais une fois que vous aurez commencé à effectuer de nombreuses requêtes spatiales plus complexes, la différence peut être significative. PostGIS a beaucoup plus de fonctions pour les types de géométrie que pour les types de géographie, ce qui peut influencer votre décision. Voir également ST_DistanceSpheroid pour une autre possibilité de calculer la distance à partir des coordonnées Lon/Lat.

Pour commencer, je stockerais vos points en tant que « géographie » pour simplifier vos expériences. Vos distances seront alors des calculs de "grand cercle" en mètres et vous n'aurez pas à vous soucier des projections au départ.


Q & A rapide

Quelques idées que j'ai manquées lors du premier apprentissage du sinus :

Le sinus est vraiment à une dimension

Le sinus bouge dans une dimension. Vraiment. Nous avons souvent représenté graphiquement le sinus au fil du temps (donc nous n'écrivons pas sur nous-mêmes) et parfois la "chose" faisant le sinus est également en mouvement, mais c'est facultatif ! Un ressort dans une dimension est une onde sinusoïdale parfaitement heureuse.

(Source : Wikipédia, essayez de ne pas vous faire hypnotiser.)

Les cercles sont un Exemple de deux ondes sinusoïdales

Les cercles et les carrés sont une combinaison de composants de base (sinus et lignes). Le cercle est constitué de deux ondes 1D connectées, chacune se déplaçant dans les directions horizontale et verticale.

Mais rappelez-vous, les cercles ne sont pas le origine des sinus pas plus que des carrés sont à l'origine des droites. Ce sont des exemples, pas la source.

Que signifient les valeurs de sinus ?

Le sinus oscille entre -1 et 1. Il commence à 0, augmente jusqu'à 1,0 (max), plonge jusqu'à -1,0 (min) et revient au neutre. Je vois aussi le sinus comme un pourcentage, de 100% (à toute vapeur) à -100% (à pleine vitesse).

Quelle est l'entrée « x » dans sin(x) ?

Question piège. Le sinus est un cycle et x, l'entrée, est où en sommes-nous dans le cycle.

  • Vous voyagez sur une place. Chaque côté prend 10 secondes.
  • Après 1 seconde, vous êtes terminé à 10% de ce côté
  • Après 5 secondes, vous avez terminé à 50 %
  • Après 10 secondes, vous avez terminé le côté

Le mouvement linéaire a peu de surprises. Maintenant pour le sinus (en se concentrant sur le cycle "0 à max") :

  • Nous voyageons sur une onde sinusoïdale, de 0 (neutre) à 1,0 (max). Cette partie prend 10 secondes.
  • Après 5 secondes, nous sommes. 70% terminé ! Sine fuse hors de la porte et ralentit. La plupart des gains sont dans les 5 premières secondes
  • Il faut 5 secondes de plus pour passer de 70% à 100%. Et passer de 98 % à 100 % prend presque une seconde entière !

Malgré notre vitesse initiale, le sinus ralentit donc nous embrassons doucement la valeur max avant de faire demi-tour. Cette douceur fait sinus, sinus.

Pour les geeks : Appuyez sur "afficher les statistiques" dans la simulation. Vous verrez le pourcentage d'achèvement du cycle total, le mini-cycle (0 à 1,0) et la valeur atteinte jusqu'à présent. Arrêtez, parcourez et basculez entre le mouvement linéaire et sinusoïdal pour voir les valeurs.

Quiz rapide : qu'en est-il plus loin, 10 % d'un cycle linéaire ou 10 % d'un cycle sinusoïdal ? Sinus. N'oubliez pas qu'il sort de la porte à la vitesse maximale. Au moment où le sinus atteint 50% du cycle, il se déplace à la vitesse moyenne du cycle linéaire, et au-delà, il ralentit (jusqu'à ce qu'il atteigne le maximum et se retourne).

Donc x est le « montant de votre cycle ». C'est quoi le cycle ?

Ça dépend du contexte.

  • Trig de base : ' x ' est des degrés et un cycle complet est de 360 degrés
  • Trig avancé : « x » est en radians (ils sont plus naturels !), et un cycle complet tourne autour du cercle unité (2*pi radians)

Jouez avec les valeurs de x ici :

Mais encore une fois, les cycles dépendent des cercles ! Pouvons-nous échapper à leur tyrannie ?


Composantes X et Y d'un vecteur de force

Cet article traite des composantes x et y d'un vecteur de force. Comprenez que les diagrammes et les mathématiques ici pourraient être appliqués à tout type de vecteur tel qu'un vecteur de déplacement, de vitesse ou d'accélération.

Pour une compréhension de vecteurs voir la section Vecteurs du Département de Physique.

Pour une compréhension de trigonométrie triangle rectangle voir la section Trigonométrie et triangles rectangles des Royaumes de trigonométrie.

Lorsque vous avez terminé avec le matériel ici, assurez-vous de visiter la Force Component Machine. Il vous montrera comment les signes positifs et négatifs des composantes de la force fonctionnent pour n'importe quelle direction vers laquelle le vecteur de force bidimensionnel peut pointer.

Le vecteur de force bidimensionnel

Un vecteur de force peut être exprimé en deux dimensions sur le (x, y) plan. Par exemple, imaginez que la surface d'un plateau de table est un plan (x, y). Les objets peuvent être poussés sur cette surface de table dans plusieurs directions différentes, pas seulement parallèlement à la longueur ou à la largeur de la table. Les objets peuvent être poussés sur un plateau de table dans une direction inclinée par rapport aux bords du plateau de table. Dans l'animation ci-dessous, nous voyons plusieurs directions différentes dans lesquelles vous pouvez pousser un objet sur un plateau de table, ou les différentes directions dans lesquelles vous pouvez appliquer une force à un objet sur un plan (x, y). L'objet poussé est le disque vert et le vecteur de force est la flèche noire :

Les vecteurs de force comme celui montré ci-dessus sont dits des vecteurs de force bidimensionnels. Vous pouvez les considérer comme des forces qui ont une partie qui pousse droite ou gauche, et qui ont une autre partie qui pousse haut ou bas. Ces parties de la force sont appelées les Composants de la force. Le composant qui pousse à droite ou à gauche s'appelle le X-composant, et la partie qui pousse vers le haut ou vers le bas s'appelle le composant y.

Forcer les composants et les ombres

Mathématiquement, les composants agissent comme ombres du vecteur de force sur les axes de coordonnées.

Dans l'image directement ci-dessous, nous voyons un vecteur de force sur le plan (x, y). Le vecteur de force est blanc, l'axe x est rouge, l'axe y est vert, l'origine est blanche. Il est courant de positionner des vecteurs de force comme celui-ci avec leurs queues à l'origine. La lumière dans cette image brille directement dans le plan (x, y), et nous ne voyons aucune ombre de cette vue. Pour nos besoins ici, les axes et le vecteur sont dessinés de manière inhabituellement large, ils sont normalement dessinés sous forme de lignes fines dans les diagrammes.

Le vecteur sur le plan (x, y)

Juste en dessous se trouve la même scène d'un autre point de vue. La lumière brille maintenant directement d'en haut. C'est-à-dire que la lumière brille vers le bas parallèlement à l'axe y. Notez l'ombre du vecteur sur l'axe des x. Cette ombre représente le X-composant du vecteur de force.

Ensuite, ci-dessous, nous avons la même situation sauf que la direction de la lumière a changé. La lumière brille maintenant de la droite, parallèlement à l'axe des x. Une ombre du vecteur de force peut être vue sur l'axe des y. Cette ombre, mathématiquement, est la composante y du vecteur de force.

Diagrammes de composants vectoriels de force

Nous revenons à un diagramme de surface plane ci-dessous, il montre comment ces composants peuvent être dessinés.

Le vecteur noir est le vecteur de force bidimensionnel, étiqueté F.

Le vecteur rouge est le X-composant du vecteur de force, étiqueté Fx. Il serait prononcé 'F sous x'. Étant donné que 'x' est en fait un indice, cette notation ressemble généralement à ceci :

Cependant, dans Zona Land Education, la position de l'indice est souvent implicite, comme ici, espérons-le sans aucune perte de sens.

Le vecteur vert est le composant y du vecteur de force, étiqueté Fy, prononcé 'F sub y'.

Les composantes du vecteur de force peuvent également être arrangées de cette façon, formant un triangle rectangle:

Forcer les mathématiques des composantes vectorielles

Si nous connaissons la taille du vecteur de force bidimensionnel, le noir dans le diagramme ci-dessus, et l'angle qu'il fait avec l'axe des x, alors nous pouvons utiliser la trigonométrie en triangle rectangle pour trouver les valeurs des composants.

Dans le diagramme suivant, 'A' est l'angle que fait le vecteur de force bidimensionnel avec l'axe des x. En utilisant la trigonométrie du triangle rectangle, Fx est adjacent à l'angle A, Fy est opposé à l'angle A et F est l'hypoténuse, comme :

Le diagramme ci-dessus montre comment la trigonométrie est généralement présentée - le fonction cosinus est associé à la X-composant et le fonction sinus est associé à la composant y. Cependant, ce n'est pas la seule façon d'y penser. Ce qui suit est un diagramme vectoriel légitime pour ce vecteur de force, mais la composante x est calculée avec la fonction sinus, la composante y avec le cosinus. Notez que nous utilisons l'angle B maintenant c'est un angle différent :

Rappelez-vous, le diagramme et la dérivation de formule ci-dessus, bien que corrects dans son propre contexte, sont inhabituel en ce qui concerne les exemples de manuels courants. Ils sont généralement configurés pour résoudre la composante x en utilisant la fonction cosinus et la composante y en utilisant le sinus, comme cela a été présenté à l'origine avec l'angle 'A'. Il y a de bonnes raisons pour cela. Si la direction du vecteur de force est donnée en position standard, comme l'angle A pourrait être interprété, alors les dérivations originales donnent des résultats corrects.

Le signe des composants

La composante x du vecteur de force peut être positive ou négative.

  • S'il indique le droite, il est positif.
  • S'il indique le la gauche, il est négatif.

La composante y du vecteur de force peut être positive ou négative.

  • S'il pointe en haut, il est positif.
  • S'il pointe vers le bas, il est négatif.

Lorsque la trigonométrie en triangle rectangle est utilisée, vous devez consulter votre diagramme vectoriel pour décider dans quelle direction les composants pointent, puis attribuer le signe correct à vos valeurs calculées comme dernière étape de votre solution. La trigonométrie du triangle rectangle telle que présentée ici donnera toujours positif résultats. Il ne s'agit vraiment que de résoudre le longueurs des jambes d'un triangle rectangle, comme on pourrait le faire dans les études de géométrie.

F, la valeur de la taille du vecteur de force bidimensionnel, est toujours indiquée comme un nombre positif.

Un objet est poussé sur le dessus d'une table avec une force de 16,6 N dirigée à 32,7 degrés S de E. Quelles sont les composantes x et y de cette force ?

Résoudre pour le X-composant, Fx:

Trigonométrie du triangle rectangle : Le cosinus d'un angle intérieur aigu d'un triangle rectangle est égal à la longueur du côté adjacent à l'angle divisé par la longueur de l'hypoténuse.

Utilisez la longueur des vecteurs de force comme longueurs du côté adjacent et de l'hypoténuse. Fx est le côté adjacent, F est l'hypoténuse.

Algèbre : Multipliez les deux côtés par F.

Algèbre : les F s'annulent du côté droit.

Algèbre : changez les côtés gauche et droit.

Le cosinus de 32,7 degrés est de 0,8415.

Multiplier, résultat indiqué en chiffres significatifs.

Résultat final indiqué avec les unités. Notez la valeur positive du résultat final. C'est positif parce qu'il s'agit d'une composante x, et dans le diagramme, elle est dirigée vers la droite. Comme d'habitude avec les nombres, le signe plus est facultatif.

Résoudre pour le composant y, Fy:

Trigonométrie du triangle rectangle : Le sinus d'un angle intérieur aigu d'un triangle rectangle est égal à la longueur du côté opposé à l'angle divisé par la longueur de l'hypoténuse.

Utilisez la longueur des vecteurs de force comme longueurs du côté opposé et de l'hypoténuse. Fy est le côté opposé, F est l'hypoténuse.

Algèbre : Multipliez les deux côtés par F.

Algèbre : les F s'annulent du côté droit.

Algèbre : changez les côtés gauche et droit.

Le sinus de 32,7 degrés est de 0,5402.

Multiplier, résultat indiqué en chiffres significatifs.

Résultat final indiqué avec les unités. Notez la valeur négative du résultat final. Il est négatif car il s'agit d'une composante y, et dans le diagramme, elle est dirigée vers le bas.

Rappelez-vous toujours de vérifier le schéma pour vous assurer que le signe des composants est correct.


2 réponses 2

Vous avez tort de dire que cela ne dépend que de la dimension verticale du vecteur $v_y$. Notez que $v_x$ est un terme caché dans $n$, que vous divisez par pour calculer l'angle.

Calculer les angles entre vecteurs revient à résoudre la formule $vcdot w = |v||w|cos heta,$ où $ heta$ est l'angle entre les vecteurs. Encore une fois, vous devriez lire un peu sur les produits scalaires, car ils apparaissent tout le temps en géométrie.

Vous utilisez le produit scalaire. Si vous avez deux vecteurs $u$, $v$ alors le produit scalaire est $u cdot v = | u || v | cos< heta>,$ où $ heta$ est l'angle entre les vecteurs. Le produit scalaire est également calculé à partir de deux vecteurs comme $u cdot v = x_1x_2+y_1y_2$. Si nous supposons que le vecteur de douze heures (unité) a les coordonnées x = 0, y = 1 votre produit scalaire sera maintenant $u cdot v = 0 cdot x + 1cdot y$. Remplacez ceci dans l'équation ci-dessus et résolvez pour $ heta$ et vous obtiendrez $ heta = arccos>>$


Voici un croquis de la sphère et d'une partie du cylindre de longueur infinie :

Il suggère de diviser le volume d'intersection en trois volumes :

  • la partie cylindrique entièrement fermée $V_m$ au milieu et
  • les deux calottes sphériques, une en haut $V_t$, une en bas $V_t$, où par symétrie $V_t = V_b$

Aux cercles de base du capuchon, nous avons à la fois $ x^2 + y^2 + z^2 = 1 x^2 + y^2 = 1/4 $ La soustraction donne $ z^2 = 3/4 iff z = pm sqrt<3>/2 $ Cela donne $ V_m= pi r^2 h = pi (1/2)^2 cdot 2 cdot sqrt<3>/2 = pi sqrt <3>/4 $

Pour le capuchon supérieur, nous empilons les éléments de volume en forme de disque $ dV = A(z) , dz $ où $A(z)$ est l'aire d'un disque à la hauteur $z$ et obtenons egin V_t &= intlimits_/2>^1 A(z) , dz &= intlimits_/2>^1 pi r(z) ^2 , dz &= intlimits_/2>^1 pi (1-z^2) , dz &= pi , left[z - z ^3/3 ight]_/2>^1 &= pi left( 1-1/3 - (sqrt<3>/2 - (sqrt<3>/ 2)^3/3) ight) &= pi left( 2/3 - sqrt<3>/2 + sqrt<3>/8 ight) &= pi left( 2/3 - 3sqrt<3>/8 ight) end Cela donne egin V &= V_t + V_m + V_b &= pi sqrt<3>/4 + 2 pi left( 2/3 - 3 sqrt <3>/ 8 ight) &= pi left( 4/3 - 2 sqrt<3>/4 ight) &= pi left( 4/3 - sqrt<3>/2 ight) end


Contenu

Un algorithme de sélection de caractéristiques peut être vu comme la combinaison d'une technique de recherche pour proposer de nouveaux sous-ensembles de caractéristiques, ainsi qu'une mesure d'évaluation qui note les différents sous-ensembles de caractéristiques. L'algorithme le plus simple consiste à tester chaque sous-ensemble possible de caractéristiques en trouvant celui qui minimise le taux d'erreur. Il s'agit d'une recherche exhaustive de l'espace, et est insoluble du point de vue informatique pour tous les ensembles de caractéristiques, sauf le plus petit. Le choix de la métrique d'évaluation influence fortement l'algorithme, et ce sont ces métriques d'évaluation qui distinguent les trois principales catégories d'algorithmes de sélection de caractéristiques : les wrappers, les filtres et les méthodes embarquées. [9]

  • Les méthodes wrapper utilisent un modèle prédictif pour évaluer les sous-ensembles d'entités. Chaque nouveau sous-ensemble est utilisé pour entraîner un modèle, qui est testé sur un ensemble d'attente. Compter le nombre d'erreurs commises sur cet ensemble d'attente (le taux d'erreur du modèle) donne le score pour ce sous-ensemble. Comme les méthodes wrapper entraînent un nouveau modèle pour chaque sous-ensemble, elles sont très gourmandes en calculs, mais fournissent généralement l'ensemble de fonctionnalités le plus performant pour ce type particulier de modèle ou de problème typique.
  • Les méthodes de filtrage utilisent une mesure proxy au lieu du taux d'erreur pour évaluer un sous-ensemble de caractéristiques. Cette mesure est choisie pour être rapide à calculer, tout en capturant l'utilité de l'ensemble de fonctionnalités. Les mesures courantes incluent les informations mutuelles, [9] les informations mutuelles ponctuelles, [11] le coefficient de corrélation produit-moment de Pearson, les algorithmes basés sur le relief, [12] et la distance inter/intra classe ou les scores des tests de signification pour chaque classe/caractéristique combinaisons. [11][13] Les filtres nécessitent généralement moins de calculs que les wrappers, mais ils produisent un ensemble de fonctionnalités qui n'est pas adapté à un type spécifique de modèle prédictif. [14] Ce manque de réglage signifie qu'un ensemble de fonctionnalités d'un filtre est plus général que l'ensemble d'un wrapper, donnant généralement des performances de prédiction inférieures à celles d'un wrapper. Cependant, l'ensemble de caractéristiques ne contient pas les hypothèses d'un modèle de prédiction et est donc plus utile pour exposer les relations entre les caractéristiques. De nombreux filtres fournissent un classement des fonctionnalités plutôt qu'un sous-ensemble explicite des meilleures fonctionnalités, et le point de coupure dans le classement est choisi via une validation croisée. Les méthodes de filtrage ont également été utilisées comme étape de prétraitement pour les méthodes d'encapsulation, permettant d'utiliser une encapsulation sur des problèmes plus importants. Une autre approche populaire est l'algorithme d'élimination de caractéristiques récursives, [15] couramment utilisé avec les machines à vecteurs de support pour construire à plusieurs reprises un modèle et supprimer des caractéristiques avec de faibles poids.
  • Les méthodes intégrées sont un groupe fourre-tout de techniques qui effectuent une sélection de caractéristiques dans le cadre du processus de construction du modèle. L'exemple de cette approche est la méthode LASSO de construction d'un modèle linéaire, qui pénalise les coefficients de régression d'une pénalité L1, en réduisant nombre d'entre eux à zéro. Toutes les entités qui ont des coefficients de régression non nuls sont « sélectionnées » par l'algorithme LASSO. Les améliorations apportées au LASSO incluent Bolasso qui amorce les échantillons [16]La régularisation par filet élastique, qui combine la pénalité L1 de LASSO avec la pénalité L2 de la régression de crête et FeaLect qui note toutes les caractéristiques sur la base d'une analyse combinatoire des coefficients de régression. [17] L'AEFS étend encore le LASSO au scénario non linéaire avec des auto-encodeurs. [18] Ces approches ont tendance à se situer entre les filtres et les enveloppes en termes de complexité de calcul.

Dans l'analyse de régression traditionnelle, la forme la plus courante de sélection de caractéristiques est la régression pas à pas, qui est une technique d'encapsulation. C'est un algorithme gourmand qui ajoute la meilleure fonctionnalité (ou supprime la pire fonctionnalité) à chaque tour. Le principal problème de contrôle est de décider quand arrêter l'algorithme. En apprentissage automatique, cela se fait généralement par validation croisée. En statistique, certains critères sont optimisés. Cela conduit au problème inhérent de l'imbrication. Des méthodes plus robustes ont été explorées, telles que le réseau linéaire par branche et lié et par morceaux.

La sélection de sous-ensemble évalue l'adéquation d'un sous-ensemble de caractéristiques en tant que groupe. Les algorithmes de sélection de sous-ensembles peuvent être divisés en wrappers, filtres et méthodes intégrées. Les wrappers utilisent un algorithme de recherche pour rechercher dans l'espace des caractéristiques possibles et évaluer chaque sous-ensemble en exécutant un modèle sur le sous-ensemble. Les wrappers peuvent être coûteux en temps de calcul et risquent de trop s'adapter au modèle. Les filtres sont similaires aux wrappers dans l'approche de recherche, mais au lieu d'être évalués par rapport à un modèle, un filtre plus simple est évalué. Les techniques intégrées sont intégrées et spécifiques à un modèle.

De nombreuses approches de recherche populaires utilisent l'escalade gourmande, qui évalue de manière itérative un sous-ensemble candidat de caractéristiques, puis modifie le sous-ensemble et évalue si le nouveau sous-ensemble est une amélioration par rapport à l'ancien. L'évaluation des sous-ensembles nécessite une métrique de notation qui note un sous-ensemble de caractéristiques. La recherche exhaustive est généralement peu pratique, donc à un point d'arrêt défini par l'implémenteur (ou l'opérateur), le sous-ensemble de fonctionnalités avec le score le plus élevé découvert jusqu'à ce point est sélectionné comme sous-ensemble de fonctionnalités satisfaisant. Le critère d'arrêt varie selon l'algorithme. Les critères possibles incluent : un score de sous-ensemble dépasse un seuil, la durée d'exécution maximale autorisée d'un programme a été dépassée, etc.

Des techniques alternatives basées sur la recherche sont basées sur une poursuite de projection ciblée qui trouve des projections de faible dimension des données qui obtiennent un score élevé : les caractéristiques qui ont les projections les plus grandes dans l'espace de dimension inférieure sont ensuite sélectionnées.

Les approches de recherche incluent :

Two popular filter metrics for classification problems are correlation and mutual information, although neither are true metrics or 'distance measures' in the mathematical sense, since they fail to obey the triangle inequality and thus do not compute any actual 'distance' – they should rather be regarded as 'scores'. These scores are computed between a candidate feature (or set of features) and the desired output category. There are, however, true metrics that are a simple function of the mutual information [28] see here.

Other available filter metrics include:

  • Class separability
    • Error probability
    • Inter-class distance
    • Probabilistic distance

    The choice of optimality criteria is difficult as there are multiple objectives in a feature selection task. Many common criteria incorporate a measure of accuracy, penalised by the number of features selected. Examples include Akaike information criterion (AIC) and Mallows's Cp, which have a penalty of 2 for each added feature. AIC is based on information theory, and is effectively derived via the maximum entropy principle. [29] [30]

    Filter feature selection is a specific case of a more general paradigm called structure learning. Feature selection finds the relevant feature set for a specific target variable whereas structure learning finds the relationships between all the variables, usually by expressing these relationships as a graph. The most common structure learning algorithms assume the data is generated by a Bayesian Network, and so the structure is a directed graphical model. The optimal solution to the filter feature selection problem is the Markov blanket of the target node, and in a Bayesian Network, there is a unique Markov Blanket for each node. [32]

    There are different Feature Selection mechanisms around that utilize mutual information for scoring the different features. They usually use all the same algorithm:

    1. Calculate the mutual information as score for between all features ( f i ∈ F in F> ) and the target class ( c )
    2. Select the feature with the largest score (e.g. a r g m a x f i ∈ F ( I ( f i , c ) ) in F>(I(f_,c))> ) and add it to the set of selected features ( S )
    3. Calculate the score which might be derived from the mutual information
    4. Select the feature with the largest score and add it to the set of select features (e.g. a r g m a x f i ∈ F ( I d e r i v e d ( f i , c ) ) in F>(I_(f_,c))> )
    5. Repeat 3. and 4. until a certain number of features is selected (e.g. | S | = l )

    The simplest approach uses the mutual information as the "derived" score. [33]

    However, there are different approaches, that try to reduce the redundancy between features.

    Minimum-redundancy-maximum-relevance (mRMR) feature selection Edit

    Peng et al. [34] proposed a feature selection method that can use either mutual information, correlation, or distance/similarity scores to select features. The aim is to penalise a feature's relevancy by its redundancy in the presence of the other selected features. The relevance of a feature set S for the class c is defined by the average value of all mutual information values between the individual feature Fje and the class c as follows:

    The redundancy of all features in the set S is the average value of all mutual information values between the feature Fje and the feature Fj :

    The mRMR criterion is a combination of two measures given above and is defined as follows:

    Suppose that there are n full-set features. Laisser Xje be the set membership indicator function for feature Fje , so that Xje=1 indicates presence and Xje=0 indicates absence of the feature Fje in the globally optimal feature set. Let c i = I ( f i c ) =I(f_c)> and a i j = I ( f i f j ) =I(f_f_)> . The above may then be written as an optimization problem:

    The mRMR algorithm is an approximation of the theoretically optimal maximum-dependency feature selection algorithm that maximizes the mutual information between the joint distribution of the selected features and the classification variable. As mRMR approximates the combinatorial estimation problem with a series of much smaller problems, each of which only involves two variables, it thus uses pairwise joint probabilities which are more robust. In certain situations the algorithm may underestimate the usefulness of features as it has no way to measure interactions between features which can increase relevancy. This can lead to poor performance [33] when the features are individually useless, but are useful when combined (a pathological case is found when the class is a parity function of the features). Overall the algorithm is more efficient (in terms of the amount of data required) than the theoretically optimal max-dependency selection, yet produces a feature set with little pairwise redundancy.

    mRMR is an instance of a large class of filter methods which trade off between relevancy and redundancy in different ways. [33] [35]

    Quadratic programming feature selection Edit

    mRMR is a typical example of an incremental greedy strategy for feature selection: once a feature has been selected, it cannot be deselected at a later stage. While mRMR could be optimized using floating search to reduce some features, it might also be reformulated as a global quadratic programming optimization problem as follows: [36]

    Conditional mutual information Edit

    Another score derived for the mutual information is based on the conditional relevancy: [37]

    An advantage of SPECCMI is that it can be solved simply via finding the dominant eigenvector of Q , thus is very scalable. SPECCMI also handles second-order feature interaction.

    Joint mutual information Edit

    In a study of different scores Brown et al. [33] recommended the joint mutual information [38] as a good score for feature selection. The score tries to find the feature, that adds the most new information to the already selected features, in order to avoid redundancy. The score is formulated as follows:

    For high-dimensional and small sample data (e.g., dimensionality > 10 5 and the number of samples < 10 3 ), the Hilbert-Schmidt Independence Criterion Lasso (HSIC Lasso) is useful. [39] HSIC Lasso optimization problem is given as

    The HSIC Lasso can be written as

    where ‖ ⋅ ‖ F > is the Frobenius norm. The optimization problem is a Lasso problem, and thus it can be efficiently solved with a state-of-the-art Lasso solver such as the dual augmented Lagrangian method.

    The correlation feature selection (CFS) measure evaluates subsets of features on the basis of the following hypothesis: "Good feature subsets contain features highly correlated with the classification, yet uncorrelated to each other". [40] [41] The following equation gives the merit of a feature subset S consisting of k features:

    Laisser Xje be the set membership indicator function for feature Fje then the above can be rewritten as an optimization problem:

    The combinatorial problems above are, in fact, mixed 0–1 linear programming problems that can be solved by using branch-and-bound algorithms. [42]

    The features from a decision tree or a tree ensemble are shown to be redundant. A recent method called regularized tree [43] can be used for feature subset selection. Regularized trees penalize using a variable similar to the variables selected at previous tree nodes for splitting the current node. Regularized trees only need build one tree model (or one tree ensemble model) and thus are computationally efficient.

    Regularized trees naturally handle numerical and categorical features, interactions and nonlinearities. They are invariant to attribute scales (units) and insensitive to outliers, and thus, require little data preprocessing such as normalization. Regularized random forest (RRF) [44] is one type of regularized trees. The guided RRF is an enhanced RRF which is guided by the importance scores from an ordinary random forest.

    A metaheuristic is a general description of an algorithm dedicated to solve difficult (typically NP-hard problem) optimization problems for which there is no classical solving methods. Generally, a metaheuristic is a stochastic algorithm tending to reach a global optimum. There are many metaheuristics, from a simple local search to a complex global search algorithm.

    Main principles Edit

    The feature selection methods are typically presented in three classes based on how they combine the selection algorithm and the model building.

    Filter method Edit

    Filter type methods select variables regardless of the model. They are based only on general features like the correlation with the variable to predict. Filter methods suppress the least interesting variables. The other variables will be part of a classification or a regression model used to classify or to predict data. These methods are particularly effective in computation time and robust to overfitting. [45]

    Filter methods tend to select redundant variables when they do not consider the relationships between variables. However, more elaborate features try to minimize this problem by removing variables highly correlated to each other, such as the Fast Correlation Based Filter (FCBF) algorithm. [46]

    Wrapper method Edit

    Wrapper methods evaluate subsets of variables which allows, unlike filter approaches, to detect the possible interactions amongst variables. [47] The two main disadvantages of these methods are:

    • The increasing overfitting risk when the number of observations is insufficient.
    • The significant computation time when the number of variables is large.

    Embedded method Edit

    Embedded methods have been recently proposed that try to combine the advantages of both previous methods. A learning algorithm takes advantage of its own variable selection process and performs feature selection and classification simultaneously, such as the FRMT algorithm. [48]

    Application of feature selection metaheuristics Edit

    This is a survey of the application of feature selection metaheuristics lately used in the literature. This survey was realized by J. Hammon in her 2013 thesis. [45]

    Application Algorithm Approach Classifier Evaluation Function Reference
    SNPs Feature Selection using Feature Similarity Filter r 2 Phuong 2005 [47]
    SNPs Genetic algorithm Wrapper Decision Tree Classification accuracy (10-fold) Shah 2004 [49]
    SNPs Hill climbing Filter + Wrapper Naive Bayesian Predicted residual sum of squares Long 2007 [50]
    SNPs Simulated annealing Naive bayesian Classification accuracy (5-fold) Ustunkar 2011 [51]
    Segments parole Ant colony Wrapper Artificial Neural Network MSE Al-ani 2005 [ citation requise ]
    Marketing Simulated annealing Wrapper Regression AIC, r 2 Meiri 2006 [52]
    Economics Simulated annealing, genetic algorithm Wrapper Regression BIC Kapetanios 2007 [53]
    Spectral Mass Genetic algorithm Wrapper Multiple Linear Regression, Partial Least Squares root-mean-square error of prediction Broadhurst et al. 1997 [54]
    Spam Binary PSO + Mutation Wrapper Decision tree weighted cost Zhang 2014 [24]
    Microarray Tabu search + PSO Wrapper Support Vector Machine, K Nearest Neighbors Euclidean Distance Chuang 2009 [55]
    Microarray PSO + Genetic algorithm Wrapper Support Vector Machine Classification accuracy (10-fold) Alba 2007 [56]
    Microarray Genetic algorithm + Iterated Local Search Embedded Support Vector Machine Classification accuracy (10-fold) Duval 2009 [57]
    Microarray Iterated local search Wrapper Regression Posterior Probability Hans 2007 [58]
    Microarray Genetic algorithm Wrapper K Nearest Neighbors Classification accuracy (Leave-one-out cross-validation) Jirapech-Umpai 2005 [59]
    Microarray Hybrid genetic algorithm Wrapper K Nearest Neighbors Classification accuracy (Leave-one-out cross-validation) Oh 2004 [60]
    Microarray Genetic algorithm Wrapper Support Vector Machine Sensitivity and specificity Xuan 2011 [61]
    Microarray Genetic algorithm Wrapper All paired Support Vector Machine Classification accuracy (Leave-one-out cross-validation) Peng 2003 [62]
    Microarray Genetic algorithm Embedded Support Vector Machine Classification accuracy (10-fold) Hernandez 2007 [63]
    Microarray Genetic algorithm Hybrid Support Vector Machine Classification accuracy (Leave-one-out cross-validation) Huerta 2006 [64]
    Microarray Genetic algorithm Support Vector Machine Classification accuracy (10-fold) Muni 2006 [65]
    Microarray Genetic algorithm Wrapper Support Vector Machine EH-DIALL, CLUMP Jourdan 2005 [66]
    Alzheimer's disease Welch's t-test Filter Support vector machine Classification accuracy (10-fold) Zhang 2015 [67]
    Computer vision Infinite Feature Selection Filter Independent Average Precision, ROC AUC Roffo 2015 [68]
    Microarrays Eigenvector Centrality FS Filter Independent Average Precision, Accuracy, ROC AUC Roffo & Melzi 2016 [69]
    XML Symmetrical Tau (ST) Filter Structural Associative Classification Accuracy, Coverage Shaharanee & Hadzic 2014

    Some learning algorithms perform feature selection as part of their overall operation. These include:


    Contents

    A Riemann surface is a 1-dimensional complex manifold, and so its codimension-1 submanifolds have dimension 0. The group of divisors on a compact Riemann surface X is the free abelian group on the points of X.

    Equivalently, a divisor on a compact Riemann surface X is a finite linear combination of points of X with integer coefficients. Le degree of a divisor on X is the sum of its coefficients.

    For any nonzero meromorphic function F on X, one can define the order of vanishing of F at a point p dans X, ordp(F). It is an integer, negative if F has a pole at p. The divisor of a nonzero meromorphic function F on the compact Riemann surface X is defined as

    which is a finite sum. Divisors of the form (F) are also called principal divisors. Since (fg) = (F) + (g), the set of principal divisors is a subgroup of the group of divisors. Two divisors that differ by a principal divisor are called linearly equivalent.

    On a compact Riemann surface, the degree of a principal divisor is zero that is, the number of zeros of a meromorphic function is equal to the number of poles, counted with multiplicity. As a result, the degree is well-defined on linear equivalence classes of divisors.

    Given a divisor on a compact Riemann surface X, it is important to study the complex vector space of meromorphic functions on X with poles at most given by , called H 0 (X, O()) or the space of sections of the line bundle associated to . The degree of says a lot about the dimension of this vector space. For example, if has negative degree, then this vector space is zero (because a meromorphic function cannot have more zeros than poles). Si has positive degree, then the dimension of H 0 (X, O(mD)) grows linearly in m for m sufficiently large. The Riemann-Roch theorem is a more precise statement along these lines. On the other hand, the precise dimension of H 0 (X, O()) for divisors of low degree is subtle, and not completely determined by the degree of . The distinctive features of a compact Riemann surface are reflected in these dimensions.

    One key divisor on a compact Riemann surface is the canonical divisor. To define it, one first defines the divisor of a nonzero meromorphic 1-form along the lines above. Since the space of meromorphic 1-forms is a 1-dimensional vector space over the field of meromorphic functions, any two nonzero meromorphic 1-forms yield linearly equivalent divisors. Any divisor in this linear equivalence class is called the canonical divisor of X, KX. The genus g of X can be read from the canonical divisor: namely, KX has degree 2g − 2. The key trichotomy among compact Riemann surfaces X is whether the canonical divisor has negative degree (so X has genus zero), zero degree (genus one), or positive degree (genus at least 2). For example, this determines whether X has a Kähler metric with positive curvature, zero curvature, or negative curvature. The canonical divisor has negative degree if and only if X is isomorphic to the Riemann sphere CP 1 .

    Laisser X be an integral locally Noetherian scheme. A prime divisor ou alors irreducible divisor on X is an integral closed subscheme Z of codimension 1 in X. A Weil divisor on X is a formal sum over the prime divisors Z of X,

    For example, a divisor on an algebraic curve over a field is a formal sum of finitely many closed points. A divisor on Spec Z is a formal sum of prime numbers with integer coefficients and therefore corresponds to a non-zero fractional ideal in Q. A similar characterization is true for divisors on Spec ⁡ O K , >_,> where K is a number field.

    Si ZX is a prime divisor, then the local ring O X , Z >_> has Krull dimension one. If f ∈ O X , Z >_> is non-zero, then the order of vanishing of F along Z, written ordZ(F) , is the length of O X , Z / ( f ) . >_/(f).> This length is finite, [2] and it is additive with respect to multiplication, that is, ordZ(fg) = ordZ(F) + ordZ(g) . [3] If k(X) is the field of rational functions on X, then any non-zero Fk(X) may be written as a quotient g / h , où g et h are in O X , Z , >_,> and the order of vanishing of F is defined to be ordZ(g) − ordZ(h) . [4] With this definition, the order of vanishing is a function ordZ : k(X) × → Z . Si X is normal, then the local ring O X , Z >_> is a discrete valuation ring, and the function ordZ is the corresponding valuation. For a non-zero rational function F on X, the principal Weil divisor associated to F is defined to be the Weil divisor

    It can be shown that this sum is locally finite and hence that it indeed defines a Weil divisor. The principal Weil divisor associated to F is also notated (F) . Si F is a regular function, then its principal Weil divisor is effective, but in general this is not true. The additivity of the order of vanishing function implies that

    Consequently div is a homomorphism, and in particular its image is a subgroup of the group of all Weil divisors.

    mZ is the coefficient of Z dans . Si is principal, so is the divisor of a rational function g, then there is an isomorphism

    Si is an effective divisor that corresponds to a subscheme of X (for example can be a reduced divisor or a prime divisor), then the ideal sheaf of the subscheme is equal to O ( − D ) . >(-D).> This leads to an often used short exact sequence,

    There is also an inclusion of sheaves

    Le Weil divisor class group Cl(X) is the quotient of Div(X) by the subgroup of all principal Weil divisors. Two divisors are said to be linearly equivalent if their difference is principal, so the divisor class group is the group of divisors modulo linear equivalence. For a variety X of dimension m over a field, the divisor class group is a Chow group namely, Cl(X) is the Chow group CHm−1(X) of (m−1)-dimensional cycles.

    Laisser Z be a closed subset of X. Si Z is irreducible of codimension one, then Cl(XZ) is isomorphic to the quotient group of Cl(X) by the class of Z. Si Z has codimension at least 2 in X, then the restriction Cl(X) → Cl(XZ) is an isomorphism. [6] (These facts are special cases of the localization sequence for Chow groups.)

    Examples Edit

    • Laisser k be a field, and let m be a positive integer. Since the polynomial ring k[X1, . Xm] is a unique factorization domain, the divisor class group of affine space Am over k is equal to zero. [7] Since projective spacePm over k minus a hyperplane H is isomorphic to Am , it follows that the divisor class group of Pm is generated by the class of H. From there, it is straightforward to check that Cl(Pm ) is in fact isomorphic to the integers Z, generated by H. Concretely, this means that every codimension-1 subvariety of Pm is defined by the vanishing of a single homogeneous polynomial.
    • Laisser X be an algebraic curve over a field k. Every closed point p dans X has the form Spec E for some finite extension field E of k, and the degree of p is defined to be the degree of E over k. Extending this by linearity gives the notion of degree for a divisor on X. Si X is a projective curve over k, then the divisor of a nonzero rational function F on X has degree zero. [8] As a result, for a projective curve X, the degree gives a homomorphism deg: Cl(X) → Z.
    • For the projective line P 1 over a field k, the degree gives an isomorphism Cl(P 1 ) ≅ Z. For any smooth projective curve X avec un k-rational point, the degree homomorphism is surjective, and the kernel is isomorphic to the group of k-points on the Jacobian variety of X, which is an abelian variety of dimension equal to the genus of X. It follows, for example, that the divisor class group of a complex elliptic curve is an uncountable abelian group.
    • Generalizing the previous example: for any smooth projective variety X over a field k tel que X a un k-rational point, the divisor class group Cl(X) is an extension of a finitely generated abelian group, the Néron–Severi group, by the group of k-points of a connected group scheme Pic X / k 0 . _^<0>.>[9] For k of characteristic zero, Pic X / k 0 _^<0>> is an abelian variety, the Picard variety of X.
    • For R the ring of integers of a number field, the divisor class group Cl(R) := Cl(Spec R) is also called the ideal class group of R. It is a finite abelian group. Understanding ideal class groups is a central goal of algebraic number theory.
    • Laisser X be the quadric cone of dimension 3, defined by the equation xy = zw in affine 4-space over a field. Then the plane dans X defined by X = z = 0 cannot be defined in X by one equation near the origin, even as a set. It follows that n'est pas Q-Cartier on X that is, no positive multiple of is Cartier. In fact, the divisor class group Cl(X) is isomorphic to the integers Z, generated by the class of . [11]

    The canonical divisor Edit

    Laisser X be a normal variety over a perfect field. The smooth locus U of X is an open subset whose complement has codimension at least 2. Let j: UX be the inclusion map, then the restriction homomorphism:

    is an isomorphism, since XU has codimension at least 2 in X. For example, one can use this isomorphism to define the canonical divisor KX of X: it is the Weil divisor (up to linear equivalence) corresponding to the line bundle of differential forms of top degree on U. Equivalently, the sheaf O ( K X ) >(K_)> on X is the direct image sheaf j ∗ Ω U n , Omega _^,> where m is the dimension of X.

    Exemple: Let X = P m be the projective m-space with the homogeneous coordinates X0, . Xm. Laisser U = <X0 ≠ 0>. Then U is isomorphic to the affine m-space with the coordinates ouije = Xje/X0. Laisser

    where [H] = [Zje], je = 0, . m. (See also the Euler sequence.)

    By the exact sequence above, there is an exact sequence of sheaf cohomology groups:

    A Cartier divisor is said to be principal if it is in the image of the homomorphism H 0 ( X , M X × ) → H 0 ( X , M X × / O X × ) , (X,>_^< imes >) o H^<0>(X,>_^< imes >/>_^< imes >),> that is, if it is the divisor of a rational function on X. Two Cartier divisors are linearly equivalent if their difference is principal. Every line bundle L on X on an integral Noetherian scheme is the class of some Cartier divisor. As a result, the exact sequence above identifies the Picard group of line bundles on an integral Noetherian scheme X with the group of Cartier divisors modulo linear equivalence. This holds more generally for reduced Noetherian schemes, or for quasi-projective schemes over a Noetherian ring, [12] but it can fail in general (even for proper schemes over C), which lessens the interest of Cartier divisors in full generality. [13]

    Assume is an effective Cartier divisor. Then there is a short exact sequence

    This sequence is derived from the short exact sequence relating the structure sheaves of X et and the ideal sheaf of . Parce que is a Cartier divisor, O() is locally free, and hence tensoring that sequence by O() yields another short exact sequence, the one above. Lorsque is smooth, O() is the normal bundle of dans X.

    Comparison of Weil divisors and Cartier divisors Edit

    Si X is normal, a Cartier divisor is determined by the associated Weil divisor, and a Weil divisor is Cartier if and only if it is locally principal.

    A Noetherian scheme X is called factorial if all local rings of X are unique factorization domains. [5] (Some authors say "locally factorial".) In particular, every regular scheme is factorial. [14] On a factorial scheme X, every Weil divisor is locally principal, and so O() is always a line bundle. [7] In general, however, a Weil divisor on a normal scheme need not be locally principal see the examples of quadric cones above.

    Effective Cartier divisors Edit

    Effective Cartier divisors are those which correspond to ideal sheaves. In fact, the theory of effective Cartier divisors can be developed without any reference to sheaves of rational functions or fractional ideal sheaves.

    Laisser X be a scheme. An effective Cartier divisor on X is an ideal sheaf je which is invertible and such that for every point X dans X, the stalk jeX is principal. It is equivalent to require that around each X, there exists an open affine subset U = Spec A tel que U = Spec A / (F) , where F is a non-zero divisor in A. The sum of two effective Cartier divisors corresponds to multiplication of ideal sheaves.

    There is a good theory of families of effective Cartier divisors. Let φ : XS be a morphism. A relative effective Cartier divisor for X over S is an effective Cartier divisor on X which is flat over S. Because of the flatness assumption, for every S ′ → S , there is a pullback of to X × S S ′ , S',> and this pullback is an effective Cartier divisor. In particular, this is true for the fibers of φ.

    Let φ : XY be a morphism of integral locally Noetherian schemes. It is often—but not always—possible to use φ to transfer a divisor from one scheme to the other. Whether this is possible depends on whether the divisor is a Weil or Cartier divisor, whether the divisor is to be moved from X to Y or vice versa, and what additional properties φ might have.

    If φ is flat, then pullback of Weil divisors is defined. In this case, the pullback of Z is φ * Z = φ −1 (Z) . The flatness of φ ensures that the inverse image of Z continues to have codimension one. This can fail for morphisms which are not flat, for example, for a small contraction.

    For an integral Noetherian scheme X, the natural homomorphism from the group of Cartier divisors to that of Weil divisors gives a homomorphism

    known as the first Chern class. [15] The first Chern class is injective if X is normal, and it is an isomorphism if X is factorial (as defined above). In particular, Cartier divisors can be identified with Weil divisors on any regular scheme, and so the first Chern class is an isomorphism for X regular.

    Explicitly, the first Chern class can be defined as follows. For a line bundle L on an integral Noetherian scheme X, let s be a nonzero rational section of L (that is, a section on some nonempty open subset of L), which exists by local triviality of L. Define the Weil divisor (s) on X by analogy with the divisor of a rational function. Then the first Chern class of L can be defined to be the divisor (s). Changing the rational section s changes this divisor by linear equivalence, since (fs) = (F) + (s) for a nonzero rational function F and a nonzero rational section s of L. So the element c1(L) in Cl(X) is well-defined.

    For a complex variety X of dimension m, not necessarily smooth or proper over C, there is a natural homomorphism, the cycle map, from the divisor class group to Borel–Moore homology:

    The latter group is defined using the space X(C) of complex points of X, with its classical (Euclidean) topology. Likewise, the Picard group maps to integral cohomology, by the first Chern class in the topological sense:

    The two homomorphisms are related by a commutative diagram, where the right vertical map is cap product with the fundamental class of X in Borel–Moore homology:

    For X smooth over C, both vertical maps are isomorphisms.

    A Cartier divisor is effective if its local defining functions Fje are regular (not just rational functions). In that case, the Cartier divisor can be identified with a closed subscheme of codimension 1 in X, the subscheme defined locally by Fje = 0. A Cartier divisor is linearly equivalent to an effective divisor if and only if its associated line bundle O() has a nonzero global section s ensuite is linearly equivalent to the zero locus of s.

    Laisser X be a projective variety over a field k. Then multiplying a global section of O() by a nonzero scalar in k does not change its zero locus. As a result, the projective space of lines in the k-vector space of global sections H 0 (X, O()) can be identified with the set of effective divisors linearly equivalent to , called the complete linear system of . A projective linear subspace of this projective space is called a linear system of divisors.

    One reason to study the space of global sections of a line bundle is to understand the possible maps from a given variety to projective space. This is essential for the classification of algebraic varieties. Explicitly, a morphism from a variety X to projective space P m over a field k determines a line bundle L on X, the pullback of the standard line bundle O(1) on P m . Moreover, L comes with m+1 sections whose base locus (the intersection of their zero sets) is empty. Conversely, any line bundle L with m+1 global sections whose common base locus is empty determines a morphism XP m . [16] These observations lead to several notions of positivity for Cartier divisors (or line bundles), such as ample divisors and nef divisors. [17]

    For a divisor on a projective variety X over a field k, the k-vector space H 0 (X, O()) has finite dimension. The Riemann–Roch theorem is a fundamental tool for computing the dimension of this vector space when X is a projective curve. Successive generalizations, the Hirzebruch–Riemann–Roch theorem and the Grothendieck–Riemann–Roch theorem, give some information about the dimension of H 0 (X, O()) for a projective variety X of any dimension over a field.

    Because the canonical divisor is intrinsically associated to a variety, a key role in the classification of varieties is played by the maps to projective space given by KX and its positive multiples. The Kodaira dimension of X is a key birational invariant, measuring the growth of the vector spaces H 0 (X, mKX) (meaning H 0 (X, O(mKX))) as m increases. The Kodaira dimension divides all m-dimensional varieties into m+2 classes, which (very roughly) go from positive curvature to negative curvature.

    Laisser X be a normal variety. A (Weil) Q-divisor is a finite formal linear combination of irreducible codimension-1 subvarieties of X with rational coefficients. (An R-divisor is defined similarly.) A Q-divisor is effective if the coefficients are nonnegative. A Q-divisor est Q-Cartier si mD is a Cartier divisor for some positive integer m. Si X is smooth, then every Q-divisor is Q-Cartier.

    is a Q-divisor, then its round-down is the divisor

    The Lefschetz hyperplane theorem implies that for a smooth complex projective variety X of dimension at least 4 and a smooth ample divisor Y dans X, the restriction Pic(X) → Pic(Y) is an isomorphism. For example, if Y is a smooth complete intersection variety of dimension at least 3 in complex projective space, then the Picard group of Y is isomorphic to Z, generated by the restriction of the line bundle O(1) on projective space.

    Grothendieck generalized Lefschetz's theorem in several directions, involving arbitrary base fields, singular varieties, and results on local rings rather than projective varieties. In particular, if R is a complete intersection local ring which is factorial in codimension at most 3 (for example, if the non-regular locus of R has codimension at least 4), then R is a unique factorization domain (and hence every Weil divisor on Spec(R) is Cartier). [18] The dimension bound here is optimal, as shown by the example of the 3-dimensional quadric cone, above.


    Voir la vidéo: Tracer un angle - Géométrie plane - Maths 6e - Les Bons Profs (Octobre 2021).