加载环境 (所有命令可以在jupyter notebook中直接运行)
%pylab inline
Populating the interactive namespace from numpy and matplotlib
- 问题描述: 假定质点的质量为1kg,在$\vec{F}(x,y)$的作用下沿着曲线S运行,其中
$$\vec{F}(x,y)=(x+y)\vec{i}+xy\vec{j}$$
曲线方程S为:
$$x=t, y=sin(t) $$
其中t$\in$[0,2$\pi$],计算该段时间内力所作的功
- 线积分问题:
若$\vec{F}(x,y)=P(x,y)\vec{i}+Q(x,y)\vec{j}$,且曲线参数方程为:
$$
x=x(t),
y=y(t),
$$
其中t$\in[t_0,t_1]$,
则$$
\int{\vec{F}d\vec{r}}=\int{(P(x,y)\vec{i}+Q(x,y)\vec{j})(dx\vec{i}+dy\vec{j})}
$$
$$
=\int{(P(x,y)dx+Q(x,y)dy)}
$$
$$
=\int{(P(x(t),y(t))x^{‘}(t)+Q(x(t),y(t))y^{‘}(t))dt}
$$
即
$$
work : W=\int_{t_0}^{t_1}{(P(x(t),y(t))x^{‘}(t)+Q(x(t),y(t))y^{‘}(t))dt}
$$
- 可视化 F(x,y),其中箭头表示力的方向,长度表示力的大小
# 二维网格坐标
x=linspace(0,10,10)
y=linspace(0,10,10)
X,Y=meshgrid(x,y)
# U,V 定义方向
U = X + Y
V = X *Y
# C 定义颜色
C = sqrt((X + Y)**2+(X*Y)**2)
quiver(X, Y, U, V, C)
xlabel('F x component/N')
ylabel('F y component/N')
- 可视化 质点的轨迹方程,很显然,质点按照正弦函数的轨迹运行
t=linspace(0,2*pi,100)
s=sin(t)
plot(t,s,'-o',alpha=0.5)
xlabel('time(s)')
ylabel('distance(m)')
- 问题即为在上述的力场下面,质点会沿着正弦曲线运动$2\pi$ 秒所作的功
按照上面的理论分析,所做的功即为:
$$
\int_{0}^{2\pi}{\vec{F}d\vec{r}}=\int_{0}^{2\pi}{(t+sin(t)+tsin(t)cos(t))dt}
$$
可以画出 被积分函数$f(t)=t+sin(t)+tsin(t)cos(t)$的图像,所作的功即为曲线下面所围成的面积
f=t+sin(t)+t*sin(t)*cos(t)
fill_between(t,f,y2=0)
plot(t,f,'r-.o')
- 可以使用python的 sympy 的符号计算,算出来原函数
#%load_ext sympyprinting
from sympy.interactive import printing
printing.init_printing(use_latex = True)
import sympy
from sympy import I, pi, oo,sin,cos
import numpy as np
# 初始化函数
t = sympy.Symbol('t')
f = t+sin(t)+t*sin(t)*cos(t)
# 函数的积分
F = sympy.integrate(f)
print('积分得到的函数F(t)为')
F
积分得到的函数F(t)为
$$\frac{t^{2}}{2} + \frac{t}{4} \sin^{2}{\left (t \right )} - \frac{t}{4} \cos^{2}{\left (t \right )} + \frac{1}{4} \sin{\left (t \right )} \cos{\left (t \right )} - \cos{\left (t \right )}$$
Fd=sympy.diff(F)
print('重新计算导数,看看是否和原来的被积分函数一致')
Fd
重新计算导数,看看是否和原来的被积分函数一致
$$t \sin{\left (t \right )} \cos{\left (t \right )} + t + \sin{\left (t \right )}$$
print('所需要的功为F(2*pi)-F(0)=%.3fN'%(F.subs(t,2*pi)-F.subs(t,0)))
所需要的功为F(2*pi)-F(0)=18.168N
思考,如何计算该系统的末态动能?假定初始状态为静止 ?