栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

第四单元 用python学习微积分(三十)极坐标和极坐标下的面积(下)--- 第四单元复习

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第四单元 用python学习微积分(三十)极坐标和极坐标下的面积(下)--- 第四单元复习

本文内容来自于学习麻省理工学院公开课:单变量微积分-第四次考试复习-网易公开课

Bullseye:第四单元 用python学习微积分(二十九)参数曲线(二)和极坐标和极坐标下的面积

为何彗星拥有如此独特的轨道,是一个拉长的椭圆形?_太阳系_离心力_运行

开普勒三大定律?_百度知道

目录

一、极坐标下的面积(polar coordinate)

1、基本公式

(1)从图形中心画等角度间隔射线。

(2)中心,射线与图形的边缘组成一个个的类扇形图形,有些图形比扇形少一块,有些则多一块,剩下的和扇形重合。

(3)我们知道当这个间隔角度趋近于0时,所切分的图形面积趋近扇形的面积,并可以通过扇形面积公式计算其面积。 ​编辑

(4)总面积

2、例1 ​编辑

3、例2 画图

4、例3 ​编辑

(1)画图

(2)把​编辑切换回直角坐标系

5、开普勒第二定律

6、例4 复习习题


一、极坐标下的面积(polar coordinate)

1、基本公式
import numpy as np 
from sympy import *
import matplotlib.pyplot as plt 
figure, ax= plt.subplots( 1 ) 
ax.set_aspect( 1 ) 

def DrawXY(tFrom,tTo,steps,exprX,exprY, color,label,plt, arrow =False):
    xarr = []
    yarr = []
    tarr = np.linspace(tFrom ,tTo, steps) 
    for tval in tarr:
        xval = exprX.subs(t,tval)
        xarr.append(xval)
        yval = exprY.subs(t,tval)
        yarr.append(yval)
    y_nparr = np.array(yarr) 
    x_nparr = np.array(xarr) 
    length = len (xarr)
    
    plt.plot(x_nparr, y_nparr, c=color, label=label)  
    if(arrow and steps > 2):
        plt.arrow(float(x_nparr[0]),float( y_nparr[0]),float( x_nparr[2]-x_nparr[0]),float( y_nparr[2]-y_nparr[0]), width=.02, color = color) 



a = 1
t = symbols('t')
exprX = a*cos(t)
exprY = a*sin(t)
DrawXY( 0,2*np.pi,50,exprX,exprY,color='c', label='circle radius=1',plt = plt, arrow = True)

exprX = a*cos(t)
exprY = a*sin(t)
DrawXY( 0,np.pi/4,50,exprX,exprY,color='r', label='pie in the circle theta = pi/4',plt = plt)
plt.plot([0,a*cos(0)],[0, a*sin(0)], c='r')  
plt.plot([0,a*cos(np.pi/4)],[0, a*sin(np.pi/4)], c='r')  

print('area of circle = r**2*pi is ' , a**2*pi)
print('area of pie which theta is pi/4 = r**2*pi* ((pi/4) / (2*pi)) is ' ,  a**2*pi* ((pi/4) / (2*pi)))

plt.legend(loc='upper left')
plt.show()

​

添加图片注释,不超过 140 字(可选)

⚪的半径 = a;

面积(A) =

扇形面积 =

复杂图形的面积

​

(1)从图形中心画等角度间隔射线。

(2)中心,射线与图形的边缘组成一个个的类扇形图形,有些图形比扇形少一块,有些则多一块,剩下的和扇形重合。

​

(3)我们知道当这个间隔角度趋近于0时,所切分的图形面积趋近扇形的面积,并可以通过扇形面积公式计算其面积。

(4)总面积

....... ( )

2、例1

由上章例5可知上式 同

figure, ax= plt.subplots( 1 ) 
ax.set_aspect( 1 ) 
a = 2
t = symbols('t')
r = 2*a*cos(t)
exprX = r*cos(t)
exprY = r*sin(t)
DrawXY( -np.pi/2,np.pi/2,50,exprX,exprY,color='c', label='r = 2*a*cos(t)',plt = plt,arrow=True)

plt.text(x=2*a,#文本x轴坐标 
         y=0, #文本y轴坐标
         s='(2a,0)', #文本内容
         rotation=0,#文字旋转
         ha='left',#x=2.2是文字的左端位置,可选'center', 'right', 'left'
         va='baseline',#y=8是文字的低端位置,可选'center', 'top', 'bottom', 'baseline', 'center_baseline'
         fontdict=dict(fontsize=12, color='black',
                       family='monospace',#字体,可选'serif', 'sans-serif', 'cursive', 'fantasy', 'monospace'
                       weight='bold',#磅值,可选'light', 'normal', 'medium', 'semibold', 'bold', 'heavy', 'black'
                      
                      )#字体属性设置
        )
plt.legend(loc='upper left')
plt.show()

​

添加图片注释,不超过 140 字(可选)

,

由,

由

注意:当 取值在 时,取值为负与角度相反,取值还是在上图那个⚪上

把上面代码下面这一行改改,可以看到结果画出了同样的⚪。

DrawXY( np.pi/2,3*np.pi/2,50,exprX,exprY,color='c', label='r = 2*a*cos(t)',plt = plt,arrow=True)

3、例2 画图

figure, ax= plt.subplots( 1 ) 
ax.set_aspect( 1 ) 
t = symbols('t')
r = sin(2*t)
exprX = r*cos(t)
exprY = r*sin(t)
DrawXY( 0,np.pi/2,100,exprX,exprY,color='c', label='4-leaf rose 0-pi/2',plt = plt,arrow = true)
DrawXY( np.pi/2,np.pi,100,exprX,exprY,color='g', label='pi/2-pi',plt = plt,arrow =true)
DrawXY( np.pi,3*np.pi/2,100,exprX,exprY,color='black', label='pi-3/2pi',plt = plt,arrow = true)
DrawXY( 3*np.pi/2,2*np.pi,100,exprX,exprY,color='r', label='3/2pi-2pi',plt = plt,arrow = true)

plt.legend(loc='upper left')
plt.show()

​

添加图片注释,不超过 140 字(可选)

...

4、例3

(1)画图

figure, ax= plt.subplots( 1 ) 
ax.set_aspect( 1 ) 
t = symbols('t')
r = 1/(1+2*cos(t))
exprX = r*cos(t)
exprY = r*sin(t)

tval = -pi/2 - 0.5
print ('theta=',tval, 'r = ', r.subs(t,tval), ', x = ',r.subs(t,tval)*cos(tval),', y=', r.subs(t,tval)*sin(tval))
tval = -pi/2
print ('theta=',tval, 'r = ', r.subs(t,tval), ', x = ',r.subs(t,tval)*cos(tval),', y=', r.subs(t,tval)*sin(tval))
tval = 0
print ('theta=',tval, 'r = ', r.subs(t,tval), ', x = ',r.subs(t,tval)*cos(tval),', y=', r.subs(t,tval)*sin(tval))
tval = pi/2
print ('theta=',tval, 'r = ', r.subs(t,tval), ', x = ',r.subs(t,tval)*cos(tval),', y=', r.subs(t,tval)*sin(tval))
tval = pi/2 + 0.5
print ('theta=',tval, 'r = ', r.subs(t,tval), ', x = ',r.subs(t,tval)*cos(tval),', y=', r.subs(t,tval)*sin(tval))

DrawXY( -np.pi/2,np.pi/2,100,exprX,exprY,color='c', label='r = 1/(1+2*cos(t))',plt = plt,arrow = true)

plt.scatter([0], [0], color="red", label='sun')

plt.legend(loc='upper left')
plt.show()

​

(2)把切换回直角坐标系

(这个是双曲线 'hyperbola' 的形式, 老师说这个其实是彗星的轨道)

def DrawXY1(xFrom,xTo,steps,expr,color,label,plt, arrow =False):
    yarr = []
    xarr = np.linspace(xFrom ,xTo, steps) 
    for xval in xarr:
        #print(expr.subs(x,xval), xval)
        yval = expr.subs(x,xval)
        yarr.append(yval)
    y_nparr = np.array(yarr) 
    x_nparr = np.array(xarr) 
    length = len (xarr)
    
    plt.plot(x_nparr, y_nparr, c=color, label=label)  
    if(arrow and steps > 2):
        plt.arrow(float(x_nparr[0]),float( y_nparr[0]),float( x_nparr[2]-x_nparr[0]),float( y_nparr[2]-y_nparr[0]), width=.02, color = color) 
        

figure, ax= plt.subplots( 1 ) 
ax.set_aspect( 1 ) 
x = symbols('x')
expr = (1-4*x+3*x**2)**0.5
DrawXY1(-1,0.3333,100,expr,color='b',label='+/-(1-4*x+3*x**2)**0.5',plt=plt,arrow=true) 
expr = -(1-4*x+3*x**2)**0.5
DrawXY1(-1,0.3333,100,expr,color='b',label='',plt=plt,arrow=true) 


expr = (1-4*x+3*x**2)**0.5
DrawXY1(1,2.3,100,expr,color='b',label='',plt=plt,arrow=true) 
expr = -(1-4*x+3*x**2)**0.5
DrawXY1(1,2.3,100,expr,color='b',label='',plt=plt,arrow=true) 

plt.scatter([0], [0], color="red", label='sun')

plt.legend(loc='upper left')
plt.show()

​双曲线:

老师语 , r = 0 是双曲线 (彗星的轨道) 的焦点, 它其实就是太阳的位置!当你想要让重力中心在图形中心的话,这是正确的表达方式。

老师语 ,这个轨道会变成行星或小行星的轨道,形状则是椭圆。r = 0 的情况是一致的,是这个轨道的焦点。

(向心力是太阳的引力,离心力是由彗星绕太阳公转形成的切向速度产生的,当彗星的离心力大于向心力时,在经过近日点之后它的轨道就会变成抛物线或双曲线.....)

figure, ax= plt.subplots( 1 ) 
ax.set_aspect( 1 ) 
t = symbols('t')
r = 1/(1+0.5*cos(t))
exprX = r*cos(t)
exprY = r*sin(t)

tval = -pi/2 - 0.5
print ('theta=',tval, 'r = ', r.subs(t,tval), ', x = ',r.subs(t,tval)*cos(tval),', y=', r.subs(t,tval)*sin(tval))
tval = -pi/2
print ('theta=',tval, 'r = ', r.subs(t,tval), ', x = ',r.subs(t,tval)*cos(tval),', y=', r.subs(t,tval)*sin(tval))
tval = 0
print ('theta=',tval, 'r = ', r.subs(t,tval), ', x = ',r.subs(t,tval)*cos(tval),', y=', r.subs(t,tval)*sin(tval))
tval = pi/2
print ('theta=',tval, 'r = ', r.subs(t,tval), ', x = ',r.subs(t,tval)*cos(tval),', y=', r.subs(t,tval)*sin(tval))
tval = pi/2 + 0.5
print ('theta=',tval, 'r = ', r.subs(t,tval), ', x = ',r.subs(t,tval)*cos(tval),', y=', r.subs(t,tval)*sin(tval))

DrawXY( 0,2*np.pi,100,exprX,exprY,color='c', label='r = 1/(1+2*cos(t))',plt = plt,arrow = true)

plt.scatter([0], [0], color="red", label='sun')

plt.legend(loc='upper left')
plt.show()

​

5、开普勒第二定律

:行星和太阳相连的直线扫过的面积的变换率是恒定的,它取决于中心的质量,也就是取决于太阳。当彗星绕着太阳转的时候,它的速度是不断在变化的,变化的规律即是这个式子。

由上面基本公式推导得到的扇形面积公式:

有

由上式得到 ( 角动量守恒 )

6、例4 复习习题

设:

由公式:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/951798.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号