Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб. 6 КП МатАн

.docx
Скачиваний:
5
Добавлен:
30.08.2024
Размер:
2.62 Mб
Скачать

ЛР6

import numpy as np import sympy as sp from numpy import * from sympy import * import matplotlib.pyplot as plt

Упражнение 1

Упражнение 2

def field(f, g, a, b, n): dx=(b-a)/n fy=[0]*(n+1) gy=[0]*(n+1) k=0 rx=[0]*(n+1) for i in arange(a, b+dx, dx): fy[k]=f.subs(x,i) gy[k]=g.subs(x,i) rx[k]=i k+=1 for i in range(1,n+1): plt.plot([rx[i-1],rx[i]],[fy[i-1],fy[i]],'-',color='indigo') plt.plot([rx[i-1],rx[i]],[gy[i-1],gy[i]],'-',color='teal') k=0 for i in arange(a, b+dx, dx): plt.plot([i,i],[fy[k],gy[k]],'-',color='coral') k+=1 plt.grid() plt.show() x=Symbol('x') f=x**2-1 g=x**2+1 a=-5 b=5 n=50 field(f, g, a, b, n)

Пример 1

import matplotlib.pyplot as plt import numpy as np fig = plt.figure() ax = fig.add_subplot(projection = '3d') xs = np.linspace(-1, 1, 50) ys = np.linspace(-1, 1, 50) X, Y = np.meshgrid(xs, ys) Z = 4*np.sin(2*np.pi*X)*np.cos(1.5*Y)*(1-X**2)*Y*(1-Y) ax.plot_wireframe(X, Y, Z, rstride = 2, cstride = 2)

<mpl_toolkits.mplot3d.art3d.Line3DCollection at 0x75ff5d8>

Пример 2

import matplotlib.pyplot as plt from matplotlib import cm import numpy as np fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) # построение поверхности surf = ax.plot_surface(X, Y, Z, cmap=cm.YlGnBu_r, linewidth=0) # цветовой индикатор fig.colorbar(surf, shrink=0.5, aspect=5) plt.show()

Упражнение 3

fig = plt.figure() ax = fig.add_subplot(projection = '3d') xs = np.linspace(0.1, 2) ys = np.linspace(0.1, 2) X, Y = np.meshgrid(xs, ys) Z = 1/X+1/Y ax.plot_wireframe(X, Y, Z, rstride = 2, cstride = 2)

<mpl_toolkits.mplot3d.art3d.Line3DCollection at 0x6374c08>

fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) # построение поверхности surf = ax.plot_surface(X, Y, Z, cmap=cm.cool, linewidth=0) # цветовой индикатор fig.colorbar(surf, shrink=0.5, aspect=5) plt.show()

Пример 3

import matplotlib.pyplot as plt from matplotlib import cm fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) ax.contour(X, Y, Z, cmap=cm.YlGnBu_r) # Plot contour curves plt.show()

Пример 4

cs = plt.contourf(Z) plt.colorbar(cs, shrink=0.9, aspect=5)

<matplotlib.colorbar.Colorbar at 0x574abb0>

cs = plt.contour(Z)

Упражнение 4

import matplotlib.pyplot as plt from matplotlib import cm fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) ax.contour(X, Y, Z, cmap=cm.cool) # Plot contour curves plt.show()

cs = plt.contourf(Z) plt.colorbar(cs, shrink=0.9, aspect=5)

<matplotlib.colorbar.Colorbar at 0x5aee918>

cs = plt.contour(Z) plt.colorbar(cs, shrink=0.9, aspect=5)

<matplotlib.colorbar.Colorbar at 0x7d498f0>

Упражнение 5

xs = np.linspace(0.1, 2, num=20) print(xs) ys = np.linspace(0.1, 2, num=20) X, Y = np.meshgrid(xs, ys) Z = 1/X+1/Y cs = plt.contour(Z) plt.grid() plt.show()

[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2. ]

xs = np.linspace(0.1, 2, num=20) print(xs) ys = np.linspace(0.1, 2, num=20) X, Y = np.meshgrid(xs, ys) Z = 1/X+1/Y levels = np.arange(0.5, 3.5, 0.1) cs = plt.contour(X, Y, Z, levels=levels) plt.clabel(cs) plt.grid() plt.show()

[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2. ]

Пример 5

import matplotlib.pyplot as plt fig1 = plt.figure() ax1 = fig1.add_subplot(231,projection='3d') ax2 = fig1.add_subplot(232,projection='3d') ax3 = fig1.add_subplot(233,projection='3d') ax4 = fig1.add_subplot(234,projection='3d') ax5 = fig1.add_subplot(235,projection='3d') ax6 = fig1.add_subplot(236,projection='3d') # построим поверхность на трех верхних графиках ax1.plot_surface(X, Y, Z, edgecolor='royalblue', lw=0.5, rstride=8, cstride=8, alpha=0.01) ax2.plot_surface(X, Y, Z, edgecolor='royalblue', lw=0.5, rstride=8, cstride=8, alpha=0.01) ax3.plot_surface(X, Y, Z, edgecolor='royalblue', lw=0.5, rstride=8, cstride=8, alpha=0.01) # Построение линий уровня в разных проекциях вместе с самой поверхностью ax1.contour(X, Y, Z, zdir='z', offset=-1, cmap='coolwarm') ax2.contour(X, Y, Z, zdir='x', offset=-1, cmap='coolwarm') ax3.contour(X, Y, Z, zdir='y', offset=1, cmap='coolwarm') # Построение линий уровня в разных проекциях отдельно от поверхностей ax4.contour(X, Y, Z, zdir='z', offset=-1, cmap='coolwarm') ax5.contour(X, Y, Z, zdir='x', offset=-1, cmap='coolwarm') ax6.contour(X, Y, Z, zdir='y', offset=1, cmap='coolwarm') plt.show()

Упражнение 6

import matplotlib.pyplot as plt fig1 = plt.figure() ax1 = fig1.add_subplot(231,projection='3d') ax2 = fig1.add_subplot(232,projection='3d') ax3 = fig1.add_subplot(233,projection='3d') ax4 = fig1.add_subplot(234,projection='3d') ax5 = fig1.add_subplot(235,projection='3d') ax6 = fig1.add_subplot(236,projection='3d') # построим поверхность на трех верхних графиках ax1.plot_surface(X, Y, Z, edgecolor='royalblue', lw=0.5, rstride=8, cstride=8, alpha=0.01) ax2.plot_surface(X, Y, Z, edgecolor='royalblue', lw=0.5, rstride=8, cstride=8, alpha=0.01) ax3.plot_surface(X, Y, Z, edgecolor='royalblue', lw=0.5, rstride=8, cstride=8, alpha=0.01) # Построение линий уровня в разных проекциях вместе с самой поверхностью ax1.contour(X, Y, Z, zdir='z', offset=-1, cmap='coolwarm') ax2.contour(X, Y, Z, zdir='x', offset=-1, cmap='coolwarm') ax3.contour(X, Y, Z, zdir='y', offset=1, cmap='coolwarm') # Построение линий уровня в разных проекциях отдельно от поверхностей ax4.contour(X, Y, Z, zdir='z', offset=-1, cmap='coolwarm') ax5.contour(X, Y, Z, zdir='x', offset=-1, cmap='coolwarm') ax6.contour(X, Y, Z, zdir='y', offset=1, cmap='coolwarm') plt.show()

Пример 6

import numpy as np t = np.linspace(-6,6,50) x = np.cos(t) y = np.sin(t) z = t fig1 = plt.figure() 6 ax = fig1.add_subplot(111, projection='3d') ax.plot(x,y,z)

[<mpl_toolkits.mplot3d.art3d.Line3D at 0x6b4da88>]

Упражнение 7

import numpy as np t = np.linspace(-4*np.pi,4*np.pi,50) x = 2*np.cos(t) y = e**(-abs(t-2)) z = 2*t fig1 = plt.figure() ax = fig1.add_subplot(111, projection='3d') ax.plot(x,y,z,'--r')

[<mpl_toolkits.mplot3d.art3d.Line3D at 0x8b0f710>]

Пример 7

u = np.linspace(-2*np.pi, 2*np.pi, 50) v = np.linspace(-2*np.pi, 2*np.pi, 50) U,V = np.meshgrid(u,v) XX = U * np.cos(V) YY = U * np.sin(V) ZZ = U fig1 = plt.figure() ax = fig1.add_subplot(111, projection='3d') surf2 = ax.plot_surface(XX,YY,ZZ,cmap=cm.YlGnBu_r ) fig1.colorbar(surf2, shrink=0.8, aspect=5)

<matplotlib.colorbar.Colorbar at 0x6356a68>

Пример 8

from sympy import symbols, sin, cos from sympy.plotting import plot3d 8 x, y = symbols('x y') plot3d(cos(x)*sin(y), (x, -3, 3), (y, -3, 3))

<sympy.plotting.plot.Plot at 0x8bb4418>

Упражнение 8

u = np.linspace(0, 2*np.pi, 50) v = np.linspace(0, 2*np.pi, 50) U,V = np.meshgrid(u,v) XX = np.cos(U) YY = np.sin(V) ZZ = np.cos(U) * np.sin(V) fig1 = plt.figure() ax = fig1.add_subplot(111, projection='3d') surf2 = ax.plot_wireframe(XX,YY,ZZ) #fig1.colorbar(surf2, shrink=0.8, aspect=5) #ax.plot_wireframe(X, Y, Z, rstride = 2, cstride = 2)

Упражнение С1

def field(f, g, a, b, n): dx=(b-a)/n fy=[0]*(n+1) gy=[0]*(n+1) k=0 rx=[0]*(n+1) for i in arange(a, b+dx, dx): fy[k]=f.subs(x,i) gy[k]=g.subs(x,i) rx[k]=i k+=1 for i in range(1,n+1): plt.plot([rx[i-1],rx[i]],[abs(fy[i-1]),abs(fy[i])],'-',color='indigo') plt.plot([rx[i-1],rx[i]],[abs(gy[i-1]),abs(gy[i])],'-',color='teal') k=0 for i in arange(a, b+dx, dx): plt.plot([i,i],[abs(fy[k]),abs(gy[k])],'-',color='coral') k+=1 plt.grid() plt.show() x=Symbol('x') f=x-x g=(1-x**2)**(1/2) a=-1 b=1 n=50 field(f, g, a, b, n)

x=Symbol('x') f=sqrt((4-x**2)) g=sqrt((1-x**2)) a=-1.58 b=1.58 n=50 field(f, g, a, b, n)

Упражнение С2

fig = plt.figure() ax = fig.add_subplot(projection = '3d') xs = np.linspace(-2*np.pi, 2*np.pi) ys = np.linspace(-2*np.pi, 2*np.pi) X, Y = np.meshgrid(xs, ys) Z = np.cos(X*Y) ax.plot_wireframe(X, Y, Z, rstride = 2, cstride = 2)

<mpl_toolkits.mplot3d.art3d.Line3DCollection at 0xc1188d0>

fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) # построение поверхности surf = ax.plot_surface(X, Y, Z, cmap=cm.cool, linewidth=0) # цветовой индикатор fig.colorbar(surf, shrink=0.5, aspect=5) plt.show()

fig = plt.figure() ax = fig.add_subplot(projection = '3d') xs = np.linspace(-2*np.pi, 2*np.pi) ys = np.linspace(-2*np.pi, 2*np.pi) X, Y = np.meshgrid(xs, ys) Z = 1/(np.sin(X)*np.sin(Y)) ax.plot_wireframe(X, Y, Z, rstride = 2, cstride = 2)

<mpl_toolkits.mplot3d.art3d.Line3DCollection at 0xb1932b0>

fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) # построение поверхности surf = ax.plot_surface(X, Y, Z, cmap=cm.cool, linewidth=0) # цветовой индикатор fig.colorbar(surf, shrink=0.5, aspect=5) plt.show()

Упражнение С3

import matplotlib.pyplot as plt from matplotlib import cm fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) ax.contour(X, Y, Z, cmap=cm.cool) # Plot contour curves plt.show()

cs = plt.contour(Z) plt.colorbar(cs, shrink=0.9, aspect=5)

<matplotlib.colorbar.Colorbar at 0xc74ebd8>

import matplotlib.pyplot as plt from matplotlib import cm fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) ax.contour(X, Y, Z, cmap=cm.cool) # Plot contour curves plt.show()

cs = plt.contour(Z) plt.colorbar(cs, shrink=0.9, aspect=5)

<matplotlib.colorbar.Colorbar at 0xb2a9d68>

Упражнение С4

cs = plt.contourf(Z) plt.colorbar(cs, shrink=0.9, aspect=5)

<matplotlib.colorbar.Colorbar at 0xcc96358>

cs = plt.contourf(Z) plt.colorbar(cs, shrink=0.9, aspect=5)

<matplotlib.colorbar.Colorbar at 0xbc6bc90>