人工智能數學基礎(三):微積分初步

? ? ?

? ?微積分作為數學的重要分支,為人工智能的發展提供了堅實的理論基礎。從理解數據的變化趨勢到優化模型參數,微積分的應用貫穿其中。本文將深入探討微積分的核心概念,并結合 Python 編程實例,助力大家輕松掌握這些關鍵知識點。資源綁定附上完整資源供讀者參考學習!

3.1 極限

3.1.1 極限

? ? 極限是微積分的基石,用于描述函數在某一點附近的趨勢。例如,當 x 趨近于某個值 a 時,函數 f(x) 的極限為 L,表示 f(x) 的值可以無限接近 L。常見的求極限方法有代入法、因式分解法、有理化法等。

3.1.2 連續性

? ? 連續性描述函數圖像的連貫性。若函數 f(x) 在點 x=a 處的極限存在且等于 f(a),則稱 f(x) 在 x=a 處連續。連續函數的圖像是一條不間斷的曲線

案例及應用:求函數極限

案例描述 :計算函數 f(x) = (x2 - 1)/(x - 1) 在 x 趨近于 1 時的極限。

import sympy as spx = sp.symbols('x')
f = (x**2 - 1)/(x - 1)# 計算極限
limit_result = sp.limit(f, x, 1)
print("函數 f(x) 在 x 趨近于 1 時的極限為:", limit_result)

3.2 導數與微分

3.2.1 導數

? ?導數衡量函數在某一點的瞬時變化率。幾何上,它表示函數曲線在該點處的切線斜率。例如,若 s(t) 表示物體的位移隨時間的變化,則 s’(t) 表示物體的瞬時速度。

3.2.2 偏導數

? ?對于多元函數,偏導數是函數關于其中一個變量的導數,其余變量視為常數。例如,對于函數 f(x, y),其對 x 的偏導數為 ?f/?x。

3.2.3 梯度和方向導數

? ?梯度是多元函數在某一點的最大變化率方向向量,由各變量的偏導數組成。方向導數表示函數在某一特定方向上的變化率

案例及應用:計算導數和梯度

案例描述 :計算函數 f(x) = x3 - 6x2 + 9x + 2 的導數,并求出其在 x=2 處的導數值;計算函數 f(x, y) = x2 + y2 的梯度。

import sympy as sp
import numpy as np# 一元函數導數
x = sp.symbols('x')
f = x**3 - 6*x**2 + 9*x + 2
f_prime = sp.diff(f, x)
print("函數 f(x) 的導數為:", f_prime)
print("函數 f(x) 在 x=2 處的導數值為:", f_prime.subs(x, 2))# 多元函數梯度
x, y = sp.symbols('x y')
f_multivar = x**2 + y**2
gradient = [sp.diff(f_multivar, var) for var in (x, y)]
print("函數 f(x, y) 的梯度為:", gradient)

3.3 導數在函數性質中的應用

3.3.1 單調性

? ?通過研究函數的導數符號,可以判斷函數的單調性。若導數大于 0,則函數在該區間單調遞增;若導數小于 0,則函數單調遞減。

3.3.2 凹凸性

? ?二階導數的符號用于判斷函數的凹凸性。若二階導數大于 0,函數在該區間是凹的;若二階導數小于 0,則函數是凸的。

3.3.3 極值

? ?極值是函數在某一點的局部最大值或最小值。尋找極值點可通過求導數并解方程 f’(x)=0 來實現。

案例及應用:分析函數的單調性、凹凸性和極值

案例描述 :分析函數 f(x) = x3 - 3x2 + 1 的單調性、凹凸性和極值。

import sympy as sp
import numpy as np
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = sp.symbols('x')
f = x**3 - 3*x**2 + 1# 計算一階導數和二階導數
f_prime = sp.diff(f, x)
f_double_prime = sp.diff(f_prime, x)# 解方程 f’(x)=0 找到臨界點
critical_points = sp.solve(f_prime, x)# 判斷單調性、凹凸性和極值
monotonicity = []
for interval in [(-sp.oo, critical_points[0]), (critical_points[0], critical_points[1]), (critical_points[1], sp.oo)]:test_point = (interval[0] + interval[1])/2 if interval[0] != -sp.oo and interval[1] != sp.oo else (interval[0] + 1 if interval[0] != -sp.oo else interval[1] - 1)if f_prime.subs(x, test_point) > 0:monotonicity.append(f"在區間 {interval} 上單調遞增")else:monotonicity.append(f"在區間 {interval} 上單調遞減")convexity = []
for interval in [(-sp.oo, critical_points[1]), (critical_points[1], sp.oo)]:test_point = (interval[0] + interval[1])/2 if interval[0] != -sp.oo and interval[1] != sp.oo else (interval[0] + 1 if interval[0] != -sp.oo else interval[1] - 1)if f_double_prime.subs(x, test_point) > 0:convexity.append(f"在區間 {interval} 上是凹的")else:convexity.append(f"在區間 {interval} 上是凸的")extrema = []
for point in critical_points:if f_double_prime.subs(x, point) > 0:extrema.append(f"在 x={point} 處有極小值")elif f_double_prime.subs(x, point) < 0:extrema.append(f"在 x={point} 處有極大值")print("單調性:", monotonicity)
print("凹凸性:", convexity)
print("極值:", extrema)# 繪制函數圖像
x_vals = np.linspace(-1, 3, 400)
y_vals = x_vals**3 - 3*x_vals**2 + 1plt.figure(figsize=(8, 6))
plt.plot(x_vals, y_vals, label='f(x) = x**3 - 3x**2 + 1',color='gold')
plt.xlabel('x')
plt.ylabel('f(x)')
plt.title('函數圖像')
plt.legend()
plt.grid(True)
plt.show()

3.4 一元積分學

3.4.1 不定積分

? ?不定積分是求導的逆運算,表示所有原函數的集合。例如,函數 f(x) 的不定積分表示為 ∫f(x)dx = F(x) + C,其中 F’(x)=f(x),C 為積分常數。

3.4.2 微分方程

? ?微分方程是含有未知函數及其導數的方程。例如,dy/dx = ky 是一個一階微分方程,其解為指數函數 y = Ce^{kx}。

3.4.3 定積分

? ? 定積分用于計算曲線與坐標軸之間的面積。例如,函數 f(x) 在區間 [a, b] 上的定積分為 ∫?? f(x)dx。

案例及應用:計算不定積分和定積分

案例描述 :計算函數 f(x) = 2x 的不定積分,并計算其在區間 [1, 3] 上的定積分。

import sympy as spx = sp.symbols('x')
f = 2*x# 計算不定積分
indefinite_integral = sp.integrate(f, x)
print("函數 f(x) 的不定積分為:", indefinite_integral)# 計算定積分
definite_integral = sp.integrate(f, (x, 1, 3))
print("函數 f(x) 在區間 [1, 3] 上的定積分為:", definite_integral)

3.5 多元積分學

3.5.1 二重積分的概念

? ?二重積分是定積分在多元函數中的推廣,用于計算曲頂柱體的體積。例如,函數 f(x, y) 在區域 D 上的二重積分為 ?? D f(x, y)dxdy。

3.5.2 二重積分的計算

? ?計算二重積分通常采用迭代積分的方法,先對一個變量積分,再對另一個變量積分

案例及應用:計算二重積分

案例描述 :計算函數 f(x, y) = x2 + y2 在區域 D(0 ≤ x ≤ 1,0 ≤ y ≤ 1)上的二重積分。

import sympy as spx, y = sp.symbols('x y')
f = x**2 + y**2# 計算二重積分
double_integral = sp.integrate(sp.integrate(f, (x, 0, 1)), (y, 0, 1))
print("函數 f(x, y) 在區域 D 上的二重積分為:", double_integral)

3.6 實驗:梯度下降法

3.6.1 實驗目的

? ?理解梯度下降法的基本原理,掌握其在 Python 中的實現方法,并應用于函數優化問題。

3.6.2 實驗要求

? ?使用梯度下降法優化一個簡單的二次函數,觀察其收斂過程,并繪制收斂曲線。

3.6.3 實驗原理

? ?梯度下降法是一種基于梯度的優化算法。通過計算目標函數的梯度,不斷更新參數,使目標函數值逐步減小,最終收斂到極小值點

3.6.4 實驗步驟

  1. 定義目標函數和計算梯度的函數。

  2. 初始化參數學習率。

  3. 迭代更新參數,直到滿足停止條件

  4. 繪制收斂曲線。

3.6.5 實驗結果

import numpy as np
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 目標函數和梯度函數
def f(x):return x**2 + 2*x + 1def grad_f(x):return 2*x + 2# 初始化參數
x = 5  # 初始點
learning_rate = 0.1
max_iter = 100
tolerance = 1e-6# 梯度下降迭代
history = []
for i in range(max_iter):grad = grad_f(x)x = x - learning_rate * gradhistory.append(f(x))if abs(grad) < tolerance:break# 繪制收斂曲線
plt.figure(figsize=(8, 6))
plt.plot(range(len(history)), history, marker='o',color='r',linestyle='dashed')
plt.xlabel('迭代次數')
plt.ylabel('目標函數值')
plt.title('梯度下降法收斂過程')
plt.grid(True)
plt.show()print("優化后的 x 值為:", x)
print("最小值為:", f(x))

? ? ?以上是人工智能數學基礎中微積分初步的內容和案例分析。希望本文能夠幫助大家更好地理解微積分知識在人工智能中的應用。通過實踐操作,可以進一步鞏固這些知識點,為深入學習人工智能奠定堅實的數學基礎。資源綁定附上完整資源供讀者參考學習!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/79031.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/79031.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/79031.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

區塊鏈密碼學核心

文章目錄 概要1. 基礎密碼學哈希函數&#xff08;Hash Function&#xff09;對稱加密與非對稱加密數字簽名&#xff08;Digital Signature&#xff09;密鑰管理 2. 區塊鏈專用密碼學技術零知識證明&#xff08;Zero-Knowledge Proof, ZKP&#xff09;同態加密&#xff08;Homom…

Java后端開發day39--方法引用

&#xff08;以下內容全部來自上述課程&#xff09; 1.1 含義 把已經有的方法拿過來用&#xff0c;當作函數式接口中抽象方法的方法體。 已經有的方法&#xff1a;可以是Java自己寫的&#xff0c;也可以是第三方的。 示例語句&#xff1a; &#xff1a;&#xff1a;是方法引…

目前市面上知名的數據采集器

程序員愛自己動手打造一切&#xff0c;但這樣離錢就會比較遠。 市面上知名的數據采集工具 數據采集工具&#xff08;也稱為網絡爬蟲或數據抓取工具&#xff09;在市場上有很多選擇&#xff0c;以下是目前比較知名和廣泛使用的工具分類介紹&#xff1a; 一、開源免費工具 Scra…

TP5兼容達夢國產數據庫

1.首先數據庫安裝&#xff0c;部署時需配置大小寫不敏感 2.安裝PHP達夢擴展&#xff0c;一定要是對應版本&#xff08;兼容操作系統&#xff09;的擴展&#xff0c;否則會出現各種報錯。參考官方文檔&#xff1a;https://eco.dameng.com/document/dm/zh-cn/app-dev/php_php_new…

《解鎖圖像“高清密碼”:超分辨率重建之路》

在圖像的世界里&#xff0c;高分辨率意味著更多細節、更清晰的畫面&#xff0c;就像用高清望遠鏡眺望遠方&#xff0c;一切都纖毫畢現。可現實中&#xff0c;我們常被低分辨率圖像困擾&#xff0c;模糊的監控畫面、老舊照片里難以辨認的面容……不過別擔心&#xff0c;圖像超分…

整合 CountVectorizer 和 TfidfVectorizer 繪制詞云圖

本文分別整合 CountVectorizer 和 TfidfVectorizer 繪制詞云圖 ? CountVectorizer CountVectorizer 是 scikit-learn 中用于 文本特征提取 的一個工具&#xff0c;它的主要作用是將一組文本&#xff08;文本集合&#xff09;轉換為詞頻向量&#xff08;Bag-of-Words&#xf…

Linux 用戶管理

用戶管理是 Linux 系統管理中的重要組成部分&#xff0c;它涉及到用戶和用戶組的創建、刪除、修改以及權限分配等操作。以下是關于用戶和用戶組管理的詳細說明&#xff1a; 一、用戶和用戶組的概念 &#xff08;一&#xff09;用戶&#xff08;User&#xff09; 用戶是系統中…

【HTTP/2和HTTP/3的應用現狀:看不見的革命】

HTTP/2和HTTP/3的應用現狀&#xff1a;看不見的革命 實際上&#xff0c;HTTP/2和HTTP/3已經被眾多著名網站廣泛采用&#xff0c;只是這場革命對普通用戶來說是"無形"的。讓我們揭開這個技術變革的真相。 著名網站的HTTP/2和HTTP/3采用情況 #mermaid-svg-MtfrNDo5DG…

青少年編程與數學 02-018 C++數據結構與算法 16課題、貪心算法

青少年編程與數學 02-018 C數據結構與算法 16課題、貪心算法 一、貪心算法的基本概念定義組成部分 二、貪心算法的工作原理三、貪心算法的優點四、貪心算法的缺點五、貪心算法的應用實例&#xff08;一&#xff09;找零問題問題描述&#xff1a;貪心策略&#xff1a;示例代碼&a…

UE5 Set actor Location和 Set World Location 和 Set Relative Location 的區別

在 Unreal Engine 的藍圖里&#xff0c;SetRelativeLocation、SetWorldLocation 和 SetActorLocation 三個節點雖然都能改變物體位置&#xff0c;但作用對象和坐標空間&#xff08;Coordinate Space&#xff09;不同&#xff1a; 1. SetActorLocation 作用對象&#xff1a;整個…

VINS-FUSION:跑通手機錄制數據

文章目錄 &#x1f4da;簡介&#x1f680;手機錄制數據&#x1f680;跑通數據&#x1f527;啟動rviz&#x1f527;啟動配置&#x1f527;播放rosbag&#x1f3af;跑通結果 &#x1f4da;簡介 利用智能手機的 攝像頭IMU 采集數據&#xff0c;并在 VINS-Fusion&#xff08;視覺慣…

Spring AI在大模型領域的趨勢場景題深度解析

Spring AI在大模型領域的趨勢場景題深度解析 在互聯網大廠Java求職者的面試中&#xff0c;經常會被問到關于Spring AI在大模型領域的趨勢場景的相關問題。本文通過一個故事場景來展示這些問題的實際解決方案。 第一輪提問 面試官&#xff1a;馬架構&#xff0c;歡迎來到我們…

MySQL數據庫全面詳解:從基礎到高級應用

一、數據存儲概述 在計算機系統中&#xff0c;數據可以存儲在多種形式中&#xff1a; 變量&#xff1a;程序中最基本的數據存儲單元 元組&#xff1a;不可變的序列類型&#xff0c;常用于函數返回多個值 列表&#xff1a;有序可變集合&#xff0c;可存儲不同類型元素 字典&…

Redux和MobX有什么區別

Redux 和 MobX 都是用于 React 應用的全局狀態管理庫&#xff0c;但它們在設計理念、使用方式和適用場景等方面存在明顯的區別&#xff0c;下面為你詳細分析&#xff1a; 1. 設計理念 Redux&#xff1a;基于 Flux 架構&#xff0c;遵循單向數據流和純函數式編程的理念。狀態是…

WPF實現類似Microsoft Visual Studio2022界面效果及動態生成界面技術

WPF實現類似VS2022界面效果及動態生成界面技術 一、實現類似VS2022界面效果 1. 主窗口布局與主題 <!-- MainWindow.xaml --> <Window x:Class"VsStyleApp.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x…

備份服務器,備份服務器數據有哪些方法可以實現?

服務器承載著企業核心業務數據與關鍵應用&#xff0c;數據丟失或業務中斷可能帶來災難性后果。因此&#xff0c;構建一套科學、可靠的服務器數據備份體系至關重要。當前&#xff0c;服務器數據備份方法可根據技術架構、存儲介質及恢復需求進行多維劃分。根據不同場景、預算和技…

前端基礎——5、CSS border屬性與漸變色(詳解與實戰)

前端基礎——5、CSS border屬性與漸變色詳解 CSS border屬性與漸變色&#xff08;詳解與實戰&#xff09;一、border屬性全面解析1. 基礎三屬性2. 復合寫法3. 高級特性附加.border-style詳解使用示例效果&#xff1a; CSS 漸變終極指南&#xff1a;線性漸變與徑向漸變的深度解析…

企業出海降本:如何將應用從 AWS EC2 快速無縫遷移至DigitalOcean Droplet

企業出海已經成為目前最熱門的趨勢。然而不論你是做跨境電商&#xff0c;還是短劇出海&#xff0c;或處于最熱門的AI 賽道&#xff0c;你都需要使用海外的云主機或GPU云服務。海外一線的云服務平臺盡管覆蓋區域廣泛&#xff0c;但是往往費用成本較高。所以降本始終是企業出海關…

解決Spring Boot多模塊自動配置失效問題

前言 在Spring Boot多模塊項目中&#xff0c;模塊間配置不生效是一個復雜但可解決的問題&#xff0c;尤其涉及自動配置類、依賴沖突、條件注解以及IDE配置。 一、問題背景與場景 1.1 場景描述 假設存在兩個模塊&#xff1a; 模塊A&#xff1a;提供通用配置&#xff08;如跨…

WEBSTORM前端 —— 第2章:CSS —— 第4節:盒子模型

目錄 1.畫盒子 2.Pxcook軟件 3.盒子模型——組成 4.盒子模型 ——邊框線 5.盒子模型——內外邊距 6.盒子模型——尺寸計算 7.清除默認樣式 8.盒子模型——元素溢出 9.外邊距問題 ①合并現象 ②塌陷問題 10.行內元素——內外邊距問題 11.盒子模型——圓角 12.盒子…