加载环境 (所有命令可以在jupyter notebook中直接运行)
1 | %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),其中箭头表示力的方向,长度表示力的大小
1 | # 二维网格坐标 |
- 可视化 质点的轨迹方程,很显然,质点按照正弦函数的轨迹运行
1 | t=linspace(0,2*pi,100) |
- 问题即为在上述的力场下面,质点会沿着正弦曲线运动$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)$的图像,所作的功即为曲线下面所围成的面积
1 | f=t+sin(t)+t*sin(t)*cos(t) |
- 可以使用python的 sympy 的符号计算,算出来原函数
1 | #%load_ext sympyprinting |
1 | import sympy |
积分得到的函数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 )}$$
1 | Fd=sympy.diff(F) |
重新计算导数,看看是否和原来的被积分函数一致
$$t \sin{\left (t \right )} \cos{\left (t \right )} + t + \sin{\left (t \right )}$$
1 | print('所需要的功为F(2*pi)-F(0)=%.3fN'%(F.subs(t,2*pi)-F.subs(t,0))) |
所需要的功为F(2*pi)-F(0)=18.168N
思考,如何计算该系统的末态动能?假定初始状态为静止 ?