Comment / quand le calcul est-il utilisé en informatique?

Commentaires

  • Nous navons ' une politique stricte pour les questions de liste, mais il y a un Aversion générale . Veuillez également noter cette et cette discussion; vous voudrez peut-être améliorer votre question pour éviter les problèmes qui y sont expliqués. Si vous ne savez pas comment améliorer votre question, nous pouvons peut-être vous aider dans le cadre du chat informatique ?
  • Vous semblez commettre lerreur courante de supposer que le contenu de chaque cours doit être pertinent (pour chaque cheminement de carrière). Parfois, il sagit simplement de vous apprendre à penser de certaines manières.
  • Les commentaires ne sont pas destinés à une discussion approfondie; cette conversation a été déplacée vers le chat .

Réponse

Je peux penser à quelques cours qui auraient besoin de Calcul, directement . Jai utilisé des caractères gras pour les disciplines généralement obligatoires pour un diplôme en informatique et des italiques pour les disciplines généralement facultatives.

  • Infographie / Traitement dimage, et ici vous aurez également besoin de géométrie analytique et dalgèbre linéaire, fortement ! Si vous suivez cette voie, vous voudrez peut-être également étudier une géométrie différentielle (qui a un calcul multivarié comme prérequis minimum). Mais vous aurez besoin de Calculus ici même pour des choses très basiques: essayez de rechercher « Transformée de Fourier » ou « Ondelettes », par exemple – ce sont deux outils très fondamentaux pour les personnes travaillant avec des images.
  • Optimisation , principalement non linéaire, où le calcul multivarié est le langage fondamental utilisé pour tout développer. Mais même loptimisation linéaire bénéficie du calcul (le la dérivée de la fonction objectif est absolument importante)
  • Probabilité / Statistiques . Celles-ci ne peuvent être sérieusement étudiées sans Calcul multivarié.
  • Machine Learning , qui fait un usage intensif des statistiques (et par conséquent, du calcul multivarié)
  • Data Science et sujets connexes, qui utilisent également beaucoup de statistiques;
  • Robotique , où vous devrez modéliser les mouvements physiques dun robot, vous aurez donc besoin de connaître les dérivées partielles et les gradients.
  • Mathématiques discrètes et combinatoires ( oui! , vous aurez peut-être besoin de Calculus pour le comptage discret!) – si vous prenez suffisamment au sérieux la génération de fonctions, vous devrez savoir comment intégrer et dériver certaines formules. Et cela est utile pour lanalyse des algorithmes (voir le livre de Sedgewick et Flajolet, «Analysis of Algorithms»). De même, la série de Taylor et le calcul peuvent être utiles pour résoudre certains types de relations de récurrence, qui sont utilisées dans lanalyse des algorithmes.
  • Analyse des algorithmes , où vous utilisez la notion de limite dès le début (voir notation Landau, « little $ o $  » – it « s défini en utilisant une limite)

Il peut y en avoir dautres – cest juste à côté de moi.

Et, en plus de cela, on en profite indirectement dun cours de calcul en apprenant à raisonner et à expliquer des arguments avec rigueur technique. Ceci est plus précieux que les étudiants pensez généralement.

Enfin, vous aurez besoin de Calculus pour, eh bien, interagir avec des personnes dautres Sciences et Ingénierie Exactes. Et il nest pas rare quun informaticien ait besoin non seulement de parler, mais aussi travailler avec un physicien ou un ingénieur.

Commentaires

  • Vous avez peut-être eu une expérience différente, mais jai trouvé le calcul assez inutile pour apprendre à raisonner et à expliquer rigoureusement les arguments. Il était enseigné par correspondance par cœur et par motifs, un peu comme lalgèbre et la géométrie du lycée.Dun autre côté, cétait la condition préalable à plusieurs cours de mathématiques supérieurs que enseignaient ces compétences, donc je suppose que ce nétait pas ' totalement inutile.
  • Je peux tout à fait rapporter au tout dernier point (avantages indirects). Travaillant sur la théorie des langages de programmation, jai rarement utilisé directement le calcul. Lapplication la plus directe a peut-être été dans les modèles de calcul probabilistes (par exemple Plotkin & domaines de puissance probabilistes de Jones). Pourtant, mon cours de calcul consistait principalement à prouver des choses, et cétait très, très précieux. Un ou deux cours de calcul sont à mon humble avis nécessaires dans chaque programme CS sérieux, ainsi que dautres mathématiques (mathématiques discrètes, logique, algèbre linéaire, analyse numérique, … et éventuellement catégories, topologie, algèbre, …).
  • Voici ' un exemple de la façon dont javais besoin de calcul en infographie: les fonctions dinterpolation lisses seront essentiellement toutes de la forme f(0) = 0 , f(1) = 1, f'(0) = f'(1) = 0, et vous pouvez ajouter toutes les autres contraintes qui vous intéressent, par exemple f'(0.5) = 1. Il y a peu de temps, je lai utilisé pour dériver différents polynômes dinterpolation pour le lissage des images.
  • La robotique peut probablement être étendue à tout type de modélisation physique (qui, je suppose, couvre également le CG, en termes déclairage, alors laissez ' appellent cela la modélisation de la physique cinétique). Cela inclut laccélération / la vitesse, les rebonds / ressorts / déformation, les contrôleurs PID, lacoustique, la gravitation …
  • Je ' je vais le faire indirectement pointer de cette façon: mieux que tout autre cours quils suivent auparavant, Calculus enseigne aux élèves quils peuvent ' t simplement compter le nombre de problèmes et estimer la quantité de travail qui va être impliquée.

Réponse

Cest quelque peu obscur, mais le calcul apparaît dans les types de données algébriques. Pour tout type donné, le type de ses contextes à un trou est le dérivé de ce type. Voir cet excellent exposé pour un aperçu de lensemble du sujet. Cest une terminologie très technique, alors expliquons-nous.

Types de données algébriques

Vous avez peut-être rencontré des tuples appelés types de produits (si non, cest parce quils sont le produit cartésien de deux types). Nous allons prendre cela à la lettre et utiliser la notation:

$$ a * b $$

Pour représenter un tuple, où $ a $ et $ b $ sont les deux types. Ensuite, vous avez peut-être rencontré types de somme ce sont des types qui peuvent être dun type ou dun autre (appelés unions , variantes , ou comme Soit type (un peu) en Haskell). Nous allons également prendre celui-ci à la lettre et utiliser la notation:

$$ a + b $$

Ceux-ci sont nommés tels quels car si un type $ a $ a $ N_a $ valeurs et un type $ b $ a des valeurs $ N_b $ , puis le type $ a + b $ a des valeurs $ N_a + N_b $ .

Ces types ressemblent à des expressions algébriques normales et nous pouvons, en fait, les manipuler comme tels (jusquà un certain point).

Un exemple

Dans les langages fonctionnels, une définition courante dune liste (donnée ici en Haskell) est la suivante:

data List a = Empty | Cons a List 

Ceci dit quune liste est soit vide, soit un tuple dune valeur et une autre liste. En transformant cela en notation algébrique, nous obtenons:

$$ L (a) = 1 + a * L (a) $$

$ 1 $ représente un type avec une valeur (cest-à-dire le type dunité). En insérant à plusieurs reprises, nous pouvons évaluer ceci pour obtenir une définition pour $ L (a) $ :

$$ L (a) = 1 + a * L (a) $$ $$ L (a) = 1 + a * (1 + a * L ( a)) $$ $$ L (a) = 1 + a + a ^ 2 * (1 + a * L (a)) $$ $$ L (a) = 1 + a + a ^ 2 + a ^ 3 * (1 + a * L (a)) $$ $$ L (a) = 1 + a + a ^ 2 + a ^ 3 + a ^ 4 + a ^ 5 … $$

(où $ x ^ n $ est signifié dans le sens de multiplication répétée.)

Cette définition dit alors quune liste est soit une unité, soit un tuple de un élément, ou un tuple de deux éléments, ou de trois etc, qui est la définition dune liste!

Contextes à un trou

Maintenant aux contextes à un trou: un contexte à un trou est ce que vous obtenez lorsque vous «retirez une valeur» dun type de produit. Donnons un exemple:

Pour un simple 2-tuple qui est homogène, $ a ^ 2 $ , si nous prenons une valeur , nous obtenons juste un 1-tuple, $ a $ .Mais il existe deux contextes à un trou différents de ce type: à savoir les première et seconde valeurs du tuple. Donc, comme il sagit de lun de ces deux, nous pourrions écrire que cest $ a + a $ , ce qui est, bien sûr, $ 2 un $ . Cest là que la différenciation entre en jeu. Confirmons cela avec un autre exemple:

Prendre une valeur sur un 3-tuple donne un 2-tuple, mais il existe trois variantes différentes:

$$ (a, a, \ _) $$ $$ (a, \ _, a) $$ $$ (\ _, a, a) $$

En fonction de lemplacement du trou. Cela nous donne $ 3a ^ 2 $ qui est en effet le dérivé de $ a ^ 3 $ . Il y en a une preuve en général ici .

Pour notre dernier exemple, utilisons une liste:

Si nous prenons notre expression originale pour une liste:

$$ L (a) = 1 + a * L (a) $$

Nous pouvons réorganiser pour obtenir:

$$ L (a) = \ frac {1} {1 – a} $$

(En surface ce peut sembler absurde, mais si vous prenez la série taylor de ce résultat, vous obtenez la définition que nous avons dérivée précédemment.)

Maintenant, si nous différencions cela, nous g et un résultat intéressant:

$$ \ frac {\ partial L (a)} {\ partial a} = (L (a)) ^ 2 $$

Ainsi, une liste est devenue une paire de listes. Cela a en fait du sens: les deux listes produites correspondent aux éléments au-dessus et au-dessous du trou dans la liste dorigine!

Commentaires

  • Cétait merveilleusement perspicace. Merci.

Réponse

Méthodes numériques. Il existe des problèmes de calcul encombrants qui sont propres à des applications spécifiques, et ils ont besoin de solutions plus rapidement quun humain ne peut pratiquement résoudre sans programme. Quelquun doit concevoir un algorithme qui calculera la solution. N « est-ce pas la seule chose qui sépare les programmeurs des scientifiques?

Commentaires

  • Compte tenu du " list " nature de cette question, chaque réponse doit tenter de donner une image complète. Voulez-vous vraiment affirmer que les méthodes numériques sont la seule instance?
  • Les commentaires ne sont pas destinés à une discussion approfondie; cette conversation a été déplacée vers le chat .

Réponse

Automation – Similaire à la robotique, lautomatisation peut nécessiter de quantifier beaucoup de comportements humains.

Calculs – Trouver des solutions aux preuves nécessite souvent des calculs.

Visualisations – Lutilisation dalgorithmes avancés nécessite des calculs tels que cos, sinus, pi et e. Surtout quand vous calculez vecteurs, champs de collision et maillage.

Analyse de la logistique et des risques – Déterminer si une tâche est possible, le risque encouru et le taux de réussite possible.

Sécurité – La plupart des mesures de sécurité peuvent être effectuées sans calcul; cependant, beaucoup de gens qui veulent des explications la préfèrent dans les expressions mathématiques.

AI – Les bases de lIA peut être utilisé sans calcul; cependant, calculer le comportement avancé, lintelligence de lessaim / les esprits de la ruche et la prise de décision basée sur des valeurs complexes.

Calculs médicaux – La visualisation de la plupart des données de santé nécessite des calculs tels quune lecture délectrocardiogramme.

Science & Ingénierie – Lorsque vous travaillez avec presque toutes les autres disciplines scientifiques, il faut des calculs: aérospatiale, astrologie, biologie, chimie ou ingénierie.

De nombreuses personnes en programmation peuvent mener toute leur carrière en utilisant le calcul; cependant, il peut savérer inestimable si vous êtes prêt à faire le travail. Pour moi, il a été plus efficace en matière dautomatisation, de logistique et de visualisation. méthode supérieure tous ensemble.

Commentaires

  • Comment sont cos, sinus, $ \ pi $ et $ \ mathrm {e} $ calcul?
  • Eh bien, $ \ exp (x) $ peut être défini comme étant la solution unique de $ f (x) = f ' (x) $ avec $ f ( 0) = 1 $, et de même sin, cos peut être défini comme la paire unique de fonctions satisfaisant $ f ' (x) = g (x) $, $ g ' (x) = -f (x) $ avec des conditions aux limites appropriées (je pense que $ f (0) = 0 $ et $ g (0) = 1 $ devraient fonctionner).
  • @DavidRicherby: Exemple: comment implémentez ces fonctions sur, par exemple, un microcontrôleur sans FPU? Si vous connaissez un peu de calcul, vous connaissez immédiatement une bonne réponse: les séries de puissance.

Réponse

Le fait est quil y a très peu de chances que vous utilisiez jamais le calcul. Cependant, pratiquement toutes les autres disciplines scientifiques utilisent le calcul et vous travaillez sur un diplôme en sciences. Il y a certaines attentes quant à la signification dun diplôme universitaire en sciences et lune de ces choses est que vous connaissez le calcul. Même si vous ne l utiliserez jamais.

Ce nest pas grave si vous faites de mauvais calculs, mais assurez-vous de faire des efforts en mathématiques discrètes. Il y a beaucoup de problèmes de programmation dans le monde réel où les mathématiques discrètes entrent en jeu et lignorance de ses principes peut vous embarrasser devant dautres codeurs.

Commentaires

  • Votre premier paragraphe est complètement faux et frôle la théorie du complot. Il y a suffisamment de domaines de linformatique où le calcul est utile (voir les autres réponses pour des listes interminables dentre eux). Bien sûr, il est ' possible d’éviter toutes ces zones, mais il est ' très trompeur d’affirmer que l’abandon du calcul n’aura aucun impact au-delà notes.
  • Selon votre programme détudes, vous pouvez obtenir un diplôme sans jamais utiliser de calcul, et je pense vraiment que les majors CS nont ' pas besoin dautant comme nous obtenons. Mais si vous y faites mal, vous vous excluez de certains des domaines les plus intéressants de linformatique. Il y a ' beaucoup de temps pour devenir développeur Web une fois que vous avez obtenu votre diplôme; pendant vos études, pourquoi ne pas essayer de vous pousser un peu?
  • @tsleyson Si vous voulez devenir développeur Web, économisez le temps et largent nécessaires pour obtenir un diplôme de CS.
  • @ScottB Vous semblez confondre informatique et programmation.
  • @ScottB Qui ' dit CS = math + programmation? Je moppose moi-même à cette vision limitée depuis des lustres. Mais vous lavez aussi à lenvers: les mathématiques font partie intégrante de la CS, tout comme la physique. Nous en avons besoin , même si nous ne ' pas le pratiquer . (Cela dit, ce nest pas le lieu de cette discussion. Veuillez vous joindre à nous dans Chat en informatique si vous souhaitez continuer.)

Réponse

De nombreuses personnes ont déjà fourni des applications dans CS. Mais parfois, vous trouverez « Calculus » quand vous vous y attendez le moins:

Les dérivés dexpressions régulières réexaminés

Si vous savez automates ce pdf pourrait valoir la peine dêtre lu.

Commentaires

  • Je ne ' voir aucun calcul différentiel là; je vois le mot " dérivé ", mais je ne ' rien voir ressemblant au calcul différentiel traditionnel.
  • Il ' est appelé " dérivé formel ", et il est lié au calcul, dune certaine manière. Vous verrez également cela fait avec les fonctions de génération, certaines formules liées aux structures discrètes et dautres domaines où vous ne ' t ont en fait une " fonction lisse ".
  • @Jay: Limportant nest pas ' t le nom. Comment comprend-il ng calculus help with it?
  • Cela est expliqué dans cette page Wikipédia . La dérivée formelle est une opération sur des éléments de structure analgébrique contenant des polynômes, et elle est formellement " tout à fait semblable à " la règle habituelle de différenciation les polynômes, cependant – différemment de ce quun élève voit dans le calcul – les polynômes ne sont pas sur des réels; ils peuvent être des polynômes sur un " anneau " arbitraire (une autre structure algébrique). Et il y a des applications pratiques du dérivé formel – jen ai vu au moins une (analyse cryptographique algébrique – ne peut ' se souvenir des détails).

Réponse

Quelques exemples plus spécifiques:

  • Le calcul est utilisé pour dériver le règle delta , qui permet à certains types de réseaux de neurones « dapprendre ».
  • Le calcul peut être utilisé pour calculer la transformée de Fourier dune fonction oscillante, très importante dans analyse du signal.
  • Le calcul est utilisé tout le temps en infographie, qui est un domaine très actif car les gens découvrent continuellement de nouvelles techniques. Pour un exemple fondamental, consultez léquation de rendu de Kajiya
  • Le calcul est important dans le domaine de la géométrie informatique, étudiez la modélisation de courbes et de surfaces.

Réponse

À ces autres excellentes réponses, jajoute ce point: rigueur dans les tests .

Lors de la création de cas de test pour certaines applications, jai dû utiliser le calcul pour prédire les temps de fonctionnement attendus, les tailles de mémoire, et choisissez les paramètres optimaux lors du réglage des structures de données. Cela inclut la compréhension de lerreur darrondi attendue, etc.

Bien que les statistiques soient mentionnées dans dautres réponses, je voudrais mentionner spécifiquement Algorithmes de Monte-carlo , comme les algorithmes doptimisation et certains algorithmes de diffusion frugale basés sur des principes mathématiques qui incluent le calcul.

Les secteurs spécifiques où jai travaillé et où le calcul était nécessaire incluent:

  • Finance (création dune plateforme de trading)

  • Assurance (intégration numérique des polices dassurance dans des scénarios hypothétiques pour calculer les pertes de polices attendues)

  • Logistique (optimisation de la consolidation des itinéraires de transport)

  • Traitement du signal

Réponse

Calcul – la partie intégrale – est utilisée directement dans CS comme base de réflexion sur la sommation. Si vous travaillez sur une partie de la section Mathématiques concrètes de Knuth sur la sommation, vous reconnaîtrez rapidement les conventions communes au calcul: comprendre certains des cas continus vous donne des outils pour considérer le discret.

De nombreuses utilisations de votre étude CS impliquent des systèmes de programmation qui surveillent le changement ou, dans certains cas, tentent de prédire lavenir. Les mathématiques autour de ces systèmes sont enracinées dans des équations différentielles et de lalgèbre linéaire, et les équations différentielles sont … calcul. Strang qui préconise de passer plus rapidement dans la partie des équations différentielles, mais cest toujours un sous-ensemble du calcul. Lorsque le changement dépend du changement dans nimporte quel système, il commence à être instable (et stable) de manière à la fois non intuitive et très bien compris. Pour comprendre pourquoi votre système linéaire sensible se comporte de manière non linéaire, soit vous avez besoin des outils de calcul, soit vous devez les réinventer pour votre espace de problème.

Et enfin, CS souvent nécessite de lire et de comprendre le travail des autres, et le calcul est la première exposition à beaucoup de vocabulaire, de conventions et dhistoire partagés.

Commentaires

  • " De nombreuses utilisations de votre étude CS impliquent des systèmes de programmation qui surveillent le changement, ou dans certains cas, essayez de prédire lavenir " – Je ne pense ' que cela est représentatif des cours détudes de la CSM.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *