微積分を必要とするいくつかのコースを考えることができます。 直接 。私は、コンピュータサイエンスの学位の通常義務的な分野には太字を使用し、通常はオプションの分野には斜体を使用しました。
- コンピュータグラフィックス /画像処理。ここでは、解析幾何学と線形代数も必要になります。重く!この道を進む場合は、微分幾何学(最小前提条件として多変量微積分を含む)を研究することもできます。ただし、ここでは非常に基本的なことでも微積分が必要です。たとえば、「フーリエ変換」や「ウェーブレット」を検索してみてください。これらは、画像を扱う人々にとって非常に基本的な2つのツールです。
- 最適化、ほとんどが非線形で、多変量微積分がすべてを開発するために使用される基本言語です。ただし、線形最適化でさえ微積分の恩恵を受けます(目的関数の導関数は絶対に重要です)
- 確率/統計。これらなしでは真剣に研究することはできません。多変量微積分。
- 機械学習。統計(したがって多変量微積分)を多用します。
- データサイエンスと
- Robotics では、ロボットの物理的な動きをモデル化する必要があるため、部分的な導関数と勾配を知る必要があります。
- 離散数学と組み合わせ論( はい! 、離散カウントには微積分が必要な場合があります!)-関数の生成に真剣に取り組む場合は、特定の式を統合して導出する方法を知る必要があります。そして、それはアルゴリズムの分析に役立ちます(SedgewickとFlajoletによる本「AnalysisofAlgorithms」を参照)。同様に、テイラー級数と微積分は、アルゴリズム分析で使用される特定の種類の繰り返し関係を解くのに役立ちます。
- アルゴリズムの分析、最初から制限の概念を使用します(Landau表記、 “little $ o $ “を参照してください-it “s制限を使用して定義)
他にもあるかもしれません-これは私の頭のすぐ上にあります。
そして、それに加えて、1つの利点 間接的に 微積分コースから、技術的に厳密に議論を推論して説明する方法を学びます。これは学生よりも価値があります。通常は考えます。
最後に、他の正確な科学や工学の人々と対話するには、微積分が必要です。コンピュータ科学者が話すだけでなく、話す必要があることも珍しくありません。物理学者またはエンジニアと協力してください。
コメント
- あなたは別の経験をしたかもしれませんが、私は微積分が議論を厳密に推論して説明する方法を学ぶのにかなり役に立たないことに気づきました。それは、高校の代数や幾何学とほとんど同じように、暗記とパターンマッチングによって教えられました。一方、これらのスキルを教えたのは、いくつかの高等数学のクラスの前提条件だったので、'まったく役に立たなかったと思います。
- 最後のポイント(間接的なメリット)に完全に関連することができます。プログラミング言語理論に取り組んでいるので、微積分を直接使用することはめったにありませんでした。おそらく最も直接的なアプリケーションは、確率的計算モデル(Plotkin & Jones確率的パワードメインなど)でした。それでも、私の微積分コースは主に物事を証明することであり、これは非常に非常に価値がありました。 1つまたは2つの微積分コースは、いくつかの数学(離散数学、論理、線形代数、数値解析、…および場合によってはカテゴリ、トポロジー、代数など)に沿って、すべての深刻なCSプログラムでIMHOに必要です。
- ここ'は、コンピューターグラフィックスで微積分が必要な例です。スムーズな補間関数は、基本的にすべて
f(0) = 0
の形式になります。 、f(1) = 1
、f'(0) = f'(1) = 0
、およびf'(0.5) = 1
。少し前に、これを使用して、画像を平滑化するためのいくつかの異なる補間多項式を導出しました。
- ロボット工学は、おそらくあらゆる種類の物理モデリングに拡張できます(照明に関しては、CGもカバーしていると思います。 'は、これを動的物理モデリングと呼んでいます)。これには、加速/速度、バウンス/スプリング/デフォーメーション、PIDコントローラー、音響、重力が含まれます…
-
- 'この方法で間接的にポイントを支持します:より良い微積分は、これまでに受けたどのクラスよりも、'単に問題の数を数え、どのくらいの作業が必要になるかを見積もることができないことを生徒に教えています。
これはややあいまいですが、微積分は代数的データ型になります。任意のタイプについて、その1ホールコンテキストのタイプはそのタイプの派生物です。主題全体の概要については、このすばらしい講演をご覧ください。これは非常に技術的な用語なので、説明しましょう。
代数的データ型
製品型と呼ばれるタプルに出くわしたことがあるかもしれません(そうではありません。これは、2つのタイプのデカルト製品 であるためです)。これを文字通りに解釈し、次の表記を使用します。
$$ a * b $$
タプル。 $ a $ と $ b $ はどちらもタイプです。次に、遭遇した可能性があります。 合計タイプこれらは、1つのタイプ、または別のタイプ(共用体、バリアント、またはいずれかとして知られている)のいずれかであるタイプです。 / em>タイプ(ちょっと)in Haskell)。これも文字通りに解釈して、次の表記を使用します:
$$ a + b $$
タイプ $ a $ に $がある場合、これらはそのままの名前が付けられます。 N_a $ 値とタイプ $ b $ には $ N_b $ 値があり、タイプ $ a + b $ には $ N_a + N_b $ の値があります。
これらのタイプ通常の代数表現のように見え、実際、それらを(ある程度まで)そのように操作することができます。
例
関数型言語では、リストの一般的な定義(ここではHaskellで与えられます)は次のとおりです。
data List a = Empty | Cons a List
これは、リストが空であるか、値と別のリストのタプルのいずれかであることを示します。これを代数表記に変換すると、次のようになります。
$$ L(a)= 1 + a * L(a)$$
$ 1 $ は、1つの値を持つタイプ(別名、ユニットタイプ)を表します。繰り返し挿入することで、これを評価して $ 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 … $$
(ここで $ x ^ n $ は、乗算を繰り返すという意味です。)
この定義は、リストが単位またはのタプルであることを示しています。 1つのアイテム、2つのアイテムのタプル、または3つのアイテムなど。これは、リストの定義です。
1ホールのコンテキスト
次に進みます。ワンホールコンテキストへ:ワンホールコンテキストは、製品タイプから「価値を引き出す」ときに得られるものです。例を挙げましょう:
同種の単純な2タプルの場合、値を取り出すと、 $ a ^ 2 $ になります。 、1タプルの $ a $ を取得します。ただし、このタイプには2つの異なる1ホールコンテキストがあります。つまり、タプルの最初の値と2番目の値です。したがって、これらのいずれかであるため、 $ a + a $ と書くことができます。これは、もちろん $ 2です。 a $ 。ここで差別化が重要になります。別の例でこれを確認しましょう:
3タプルから値を取得すると、2タプルになりますが、3つの異なるバリエーションがあります:
$$(a、a、\ _)$$ $$(a、\ _、a)$$ $$(\ _、a、a)$$
穴を開けた場所によって異なります。これにより、が得られます。 $ 3a ^ 2 $ は、確かに $ a ^ 3 $ の派生物です。一般的にこれの証拠がありますここ。
最後の例として、リストを使用しましょう:
リストの元の式を使用する場合:
$$ L(a)= 1 + a * L(a)$$
次のように並べ替えることができます:
$$ L(a)= \ frac {1} {1-a} $$
(表面的にはこれナンセンスに思えるかもしれませんが、この結果のテイラーシリーズを使用すると、以前に導出した定義が得られます。)
これを区別すると、g et興味深い結果:
$$ \ frac {\ partial L(a)} {\ partial a} =(L(a))^ 2 $$
したがって、1つのリストが1組のリストになります。これは実際には理にかなっています。作成された2つのリストは、元のリストの穴の上下の要素に対応しています。
コメント
自動化-ロボット工学、自動化と同様人間の行動の多くを定量化する必要がある場合があります。
計算-証明の解決策を見つけるには微積分が必要になることがよくあります。
視覚化-高度なアルゴリズムを利用するには、cos、sine、pi、eなどの計算が必要です。特にあなたが計算するときベクトル、衝突フィールド、メッシュを作成します。
ロジスティクスとリスク分析-タスクが可能性、関連するリスク、および成功率の可能性。
セキュリティ-ほとんどのセキュリティを実行できます微積分なし;ただし、説明が必要な多くの人は数式でそれを好みます。
AI -AIの基本微積分なしで利用できます。ただし、高度な動作、群れの知性/ハイブマインド、および複雑な値に基づく意思決定の計算。
医学計算-ほとんどの健康データを視覚化するには、EKG読み取りなどの計算が必要です。
科学&エンジニアリング-他のほぼすべての科学分野で作業する場合、微積分が必要です:航空宇宙、占星術、生物学、化学、工学。
プログラミングの多くの人は、なしでキャリア全体を進めることができます。微積分を使用する;ただし、作業を行う意思がある場合は非常に貴重です。私にとっては、自動化、ロジスティクス、および視覚化で最も効果的です。特定のパターンを特定することで、パターンを無視したり、パターンを模倣したり、開発したりできます。優れた方法をすべてまとめました。
コメント