日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python解zuobiaoxi方程_Python还能解决数学相关问题?大学生:以后就靠他了,事半功倍...

發(fā)布時(shí)間:2023/12/9 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python解zuobiaoxi方程_Python还能解决数学相关问题?大学生:以后就靠他了,事半功倍... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問(wèn)題背景

高等數(shù)學(xué)應(yīng)用非常廣,基本上涉及到函數(shù)的地方都要用到微積分,還有在幾何方面也是如此,計(jì)算機(jī)的應(yīng)用讓我們能簡(jiǎn)單快速處理各種高等數(shù)學(xué)中的計(jì)算,比如極限、導(dǎo)數(shù)、積分、微分方程等的計(jì)算。

實(shí)驗(yàn)?zāi)康?/strong>

使用 Python 通過(guò)計(jì)算與作圖,加強(qiáng)對(duì)極限、導(dǎo)數(shù)、積分等概念的理解,并掌握它們計(jì)算方法,以及求微分方程和方程組解析解的方法。

實(shí)驗(yàn)原理與數(shù)學(xué)模型

  • 函數(shù)極限的求解討論以及兩個(gè)重要極限的驗(yàn)證。
  • 導(dǎo)數(shù)概念和導(dǎo)數(shù)的幾何意義,以及計(jì)算多元函數(shù)偏導(dǎo)數(shù)和全微分的方法。
  • 一元函數(shù)積分學(xué)和多元函數(shù)積分學(xué)。
  • 微分方程和方程組在有無(wú)初始條件的分析。
  • 實(shí)驗(yàn)所用軟件

    • Python 3.7
    • NumPy 1.16.4
    • SymPy 1.4
    • Matplotlib 3.1.1

    主要內(nèi)容

  • 函數(shù)極限的求解和兩個(gè)重要極限的探究;
  • 導(dǎo)數(shù)、高階導(dǎo)數(shù)以及隱函數(shù)、參數(shù)方程定義函數(shù)導(dǎo)數(shù)的求解,多元函數(shù)偏導(dǎo)數(shù)和全微分的求解;
  • 計(jì)算定積分和不定積分以及重積分的方法;
  • 求解微分方程以及方程組解析解的方法。
  • 實(shí)驗(yàn)過(guò)程

    1. 函數(shù)極限的求解和兩個(gè)重要極限

    在這個(gè)實(shí)驗(yàn)中我們通過(guò)對(duì)簡(jiǎn)單的函數(shù)進(jìn)行單側(cè)極限的求解,并且分析兩個(gè)重要極限。

    例 1:考慮函數(shù)

    解:編寫(xiě)Python代碼如下:

    import matplotlib.pyplot as plt

    import numpy as np

    import sympy as sp

    # 求函數(shù) y=arctan(1/x) 的左右極限

    x = sp.Symbol('x')

    fr = sp.atan(1 / x)

    xl = sp.limit(fr, x, 0, dir='-')

    xr = sp.limit(fr, x, 0, dir='+')

    print('%s 左極限是:%s' % (fr, xl))

    print('%s 右極限是:%s' % (fr, xr))

    # 繪制函數(shù) y=arctan(1/x) 的圖像

    x = np.arange(-6, 6, 0.01)

    y = np.arctan(1 / x)

    plt.title('y=arctan(1/x)')

    plt.plot(x, y)

    plt.show()

    運(yùn)行代碼輸出結(jié)果和繪制圖像:

    atan(1/x) 左極限是:-pi/2

    atan(1/x) 右極限是:pi/2

    根據(jù)計(jì)算結(jié)果和繪制的圖像分析求得出題中函數(shù)的左右極限分別為 -pi/2 和 pi/2 。

    例 2:兩個(gè)重要極限的驗(yàn)證。

    解:編寫(xiě)Python代碼如下:

    import matplotlib.pyplot as plt

    import numpy as np

    import sympy as sp

    # 分析兩個(gè)重要極限

    x = sp.Symbol('x')

    f1 = sp.sin(x) / x

    f2 = (1 + 1 / x) ** x

    x1 = sp.limit(f1, x, 0)

    x2 = sp.limit(f2, x, 'oo')

    print('%s 第一重要極限的值:%s' % (f1, x1))

    print('%s 第二重要極限的值:%s' % (f2, x2))

    # 繪制函數(shù)圖像分析兩個(gè)重要極限

    x1 = np.arange(-3, 3, 0.01)

    x2 = np.arange(0.01, 100, 0.1)

    y1 = np.sin(x1) / x1

    y2 = (1 + 1 / x2) ** x2

    plt.figure(figsize=(12, 5))

    plt.subplot(121)

    plt.title('y=sin(x)/x')

    plt.plot(x1, y1)

    plt.subplot(122)

    plt.title('y=(1+1/x)**x')

    plt.plot(x2, y2)

    plt.show()

    運(yùn)行代碼輸出結(jié)果和繪制圖像:

    sin(x)/x 第一重要極限的值:1

    (1 + 1/x)**x 第二重要極限的值:E

    根據(jù)上圖變化趨勢(shì)理解函數(shù)極限和程序得出的答案,驗(yàn)證兩個(gè)重要極限。

    2. 導(dǎo)數(shù)與微分的研究

    在這個(gè)實(shí)驗(yàn)中,我們探究導(dǎo)數(shù)概念及其幾何意義,高階導(dǎo)數(shù),隱函數(shù)導(dǎo)數(shù),參數(shù)方程定義的函數(shù)導(dǎo)數(shù),以及求解多元函數(shù)偏導(dǎo)數(shù)和全微分。

    例 1:求 f(x)=2x^3+3x^2-12x+7 的導(dǎo)函數(shù),并作出該函數(shù)圖形和在 x=-1 處的切線。

    解:編寫(xiě)Python代碼如下:

    import matplotlib.pyplot as plt

    import numpy as np

    import sympy as sp

    # 導(dǎo)數(shù)與微分

    x = sp.Symbol('x')

    f = 2 * x ** 3 + 3 * x ** 2 - 12 * x + 7

    d = sp.diff(f)

    print('%s 的導(dǎo)函數(shù)為:%s' % (f, d))

    y_d = d.evalf(subs={x: -1})

    y_h = f.evalf(subs={x: -1})

    print('將x=-1代入導(dǎo)函數(shù)求解為:%d' % y_d)

    print('將x=-1代入原函數(shù)求解為:%d' % y_h)

    f_d = y_d * (x + 1) + y_h

    print('得出切線方程為:%s' % f_d)

    # 繪制函數(shù)圖和切線圖

    x = np.arange(-4, 3, 0.01)

    y1 = 2 * x ** 3 + 3 * x ** 2 - 12 * x + 7

    y2 = 8 - 12 * x

    plt.title('函數(shù)y=2*x**3+3*x**2-12*x+7以及當(dāng)x=-1時(shí)的切線')

    plt.rcParams['font.sans-serif'] = ['SimHei']

    plt.rcParams['axes.unicode_minus'] = False

    plt.plot(x, y1, x, y2)

    plt.show()

    運(yùn)行代碼輸出結(jié)果和繪制圖像:

    2*x**3 + 3*x**2 - 12*x + 7 的導(dǎo)函數(shù)為:6*x**2 + 6*x - 12

    將x=-1代入導(dǎo)函數(shù)求解為:-12

    將x=-1代入原函數(shù)求解為:20

    得出切線方程為:8.0 - 12.0*x

    最后執(zhí)行便在同一個(gè)坐標(biāo)系內(nèi)作出了函數(shù) f(x) 的圖形和它在 x=-1 處的切線(直線為切線)。

    注:此兩行代碼是為了解決在繪圖中顯示中文亂碼的問(wèn)題。

    plt.rcParams['font.sans-serif'] = ['SimHei']

    plt.rcParams['axes.unicode_minus'] = False

    例 2:求函數(shù) y=x^{10}+2(x-10)^9 的1階到11階導(dǎo)數(shù)。

    解:編寫(xiě)Python代碼如下:

    import sympy as sp

    x = sp.Symbol('x')

    y = x ** 10 + 2 * (x - 10) ** 9

    for n in range(1, 12):

    y = d = sp.diff(y)

    print('第%2d階導(dǎo)數(shù)為:%s' % (n, d))

    輸出即為題中要求所得函數(shù)高階導(dǎo)數(shù)。

    例 3:求由方程 2x^2-2xy+y^2+x+2y+1=0 確定的隱函數(shù)的導(dǎo)數(shù)。

    解:編寫(xiě)Python代碼如下:

    import sympy as sp

    x, y = sp.symbols('x y')

    z = 2 * x ** 2 - 2 * x * y + y ** 2 + x + 2 * y + 1

    d = -sp.diff(z, x) / sp.diff(z, y)

    print('原方程導(dǎo)數(shù)為:%s' % d)

    運(yùn)行代碼輸出結(jié)果:

    原方程導(dǎo)數(shù)為:(-4*x + 2*y - 1)/(-2*x + 2*y + 2)

    該實(shí)驗(yàn)根據(jù)隱函數(shù)求導(dǎo)公式 dy/dx=-Fx/Fy 求得,然后再根據(jù)一般求導(dǎo)公式即可求出結(jié)果。

    例 4:求由參數(shù)方程 x=e^tcos(t), y=e^tsin(t) 確定的函數(shù)的導(dǎo)數(shù)。

    解:編寫(xiě)Python代碼如下:

    import sympy as sp

    t = sp.Symbol('t')

    x = sp.exp(t) * sp.cos(t)

    y = sp.exp(t) * sp.sin(t)

    d = sp.diff(y, t) / sp.diff(x, t)

    print('原參數(shù)方程導(dǎo)數(shù)結(jié)果為:%s' % d)

    d = sp.simplify(d)

    print('原參數(shù)方程導(dǎo)數(shù)化簡(jiǎn)為:%s' % d)

    運(yùn)行代碼輸出結(jié)果:

    原參數(shù)方程導(dǎo)數(shù)結(jié)果為:(exp(t)*sin(t) + exp(t)*cos(t))/(-exp(t)*sin(t) + exp(t)*cos(t))

    原參數(shù)方程導(dǎo)數(shù)化簡(jiǎn)為:tan(t + pi/4)

    根據(jù)參數(shù)方程求導(dǎo)法則最后求得由參數(shù)方程確定函數(shù)的導(dǎo)數(shù)。

    例 5:設(shè) z=sin(xy)+cos^2(xy) ,求偏導(dǎo)數(shù)(省略數(shù)學(xué)公式,點(diǎn)擊閱讀原文查看)。

    解:編寫(xiě)Python代碼如下:

    import sympy as sp

    x, y = sp.symbols('x y')

    z = sp.sin(x * y) + (sp.cos(x * y)) ** 2

    d1 = sp.diff(z, x)

    d2 = sp.diff(z, y)

    d3 = sp.diff(z, x, 2)

    d4 = sp.diff(sp.diff(z, x), y)

    print('第一偏導(dǎo)數(shù)為:%s' % d1)

    print('第二偏導(dǎo)數(shù)為:%s' % d2)

    print('第三偏導(dǎo)數(shù)為:%s' % d3)

    print('第四偏導(dǎo)數(shù)為:%s' % d4)

    運(yùn)行代碼輸出結(jié)果:

    第一偏導(dǎo)數(shù)為:-2*y*sin(x*y)*cos(x*y) + y*cos(x*y)

    第二偏導(dǎo)數(shù)為:-2*x*sin(x*y)*cos(x*y) + x*cos(x*y)

    第三偏導(dǎo)數(shù)為:y**2*(2*sin(x*y)**2 - sin(x*y) - 2*cos(x*y)**2)

    第四偏導(dǎo)數(shù)為:2*x*y*sin(x*y)**2 - x*y*sin(x*y) - 2*x*y*cos(x*y)**2 - 2*sin(x*y)*cos(x*y) + cos(x*y)

    以上為多元函數(shù)偏導(dǎo)數(shù)的結(jié)果。

    3. 定積分與不定積分以及重積分的研究

    在這個(gè)實(shí)驗(yàn)中,我們研究定積分與不定積分的計(jì)算,以及多重積分的計(jì)算,深入理解曲線積分、曲面積分的概念個(gè)計(jì)算方法。

    例 1:計(jì)算 int{sqrt{4-x^2}dx} 和 int_1^2{sqrt{4-x^2}}

    解:編寫(xiě)Python代碼如下:

    import sympy as sp

    x = sp.Symbol('x')

    y = sp.sqrt(4 - x ** 2)

    i1 = sp.integrate(y, x)

    i2 = sp.integrate(y, (x, 1, 2))

    print('不定積分的結(jié)果為:%s' % i1)

    print('定積分的結(jié)果為:%s' % i2)

    運(yùn)行代碼輸出結(jié)果:

    不定積分的結(jié)果為:x*sqrt(4 - x**2)/2 + 2*asin(x/2)

    定積分的結(jié)果為:-sqrt(3)/2 + 2*pi/3

    使用 Python 求解不定積分時(shí),會(huì)省略積分的常數(shù)。

    例 2:計(jì)算三重積分 iiint{(x^2+y^2+z)dxdydz} ,其中由曲面 z=sqrt{2-x^2-y^2} 與 z=sqrt{x^2+y^2} 圍成。

    解:編寫(xiě)Python代碼作出區(qū)域曲面圖形,如下:

    import matplotlib.pyplot as plt

    import numpy as np

    from mpl_toolkits.mplot3d import Axes3D

    x = np.arange(-1, 1, 0.05)

    y = np.arange(-1, 1, 0.05)

    x, y = np.meshgrid(x, y)

    z1 = np.sqrt(x ** 2 + y ** 2)

    z2 = np.sqrt(2 - x ** 2 - y ** 2)

    ax = Axes3D(plt.figure())

    plt.rcParams['font.sans-serif'] = ['SimHei']

    plt.rcParams['axes.unicode_minus'] = False

    ax.set_title('三重積分曲面')

    ax.plot_surface(x, y, z1)

    ax.plot_surface(x, y, z2)

    plt.show()

    將方程轉(zhuǎn)換為柱坐標(biāo)計(jì)算,然后確定積分限,編寫(xiě)Python代碼:

    import sympy as sp

    r, s, z = sp.symbols('r s z')

    f = (r ** 2 + z) * r

    i = sp.integrate(sp.integrate(sp.integrate(f, (z, r, sp.sqrt(2 - r ** 2))), (r, 0, 1)), (s, 0, 2 * sp.pi))

    print('三重積分計(jì)算結(jié)果為:%s' % i)

    運(yùn)行代碼輸出結(jié)果:

    三重積分計(jì)算結(jié)果為:2*pi*(-5/12 + 8*sqrt(2)/15)

    4. 求微分方程的解析解

    在這個(gè)實(shí)驗(yàn)中,我們用通過(guò) Python 來(lái)求解微分方程的通解,在初始條件下的特解,以及微分方程組在初始條件下的特解。

    例 1:求微分方程 y'+2xy=xe^{-x^2}

    解:編寫(xiě)Python代碼如下:

    import sympy as sp

    x = sp.Symbol('x')

    f = sp.Function('f')

    y = f(x)

    d = sp.Eq(y.diff(x) + 2 * x * y, x * sp.exp(-x ** 2))

    diff = sp.dsolve(d, y)

    print('微分方程的通解為:%s' % diff)

    運(yùn)行代碼輸出結(jié)果:

    微分方程的通解為:Eq(f(x), (C1 + x**2/2)*exp(-x**2))

    例 2:求微分方程 xy'+y-e^{-x}=0 在初始條件 y(x=1)=2e 下的特解。

    解:編寫(xiě)Python代碼如下:

    import sympy as sp

    x = sp.Symbol('x')

    f = sp.Function('f')

    y = f(x)

    d = sp.Eq(x * y.diff(x) + y - sp.exp(-x), 0)

    diff = sp.dsolve(d, y, ics={f(1): 2 * sp.exp(1)})

    print('微分方程的特解為:%s' % diff)

    運(yùn)行代碼輸出結(jié)果:

    微分方程的特解為:Eq(f(x), ((1 + 2*exp(2))*exp(-1) - exp(-x))/x)ga

    總結(jié)

    以上是生活随笔為你收集整理的python解zuobiaoxi方程_Python还能解决数学相关问题?大学生:以后就靠他了,事半功倍...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。