zoukankan      html  css  js  c++  java
  • 在引力问题中, 实心圆 是否可以认为是一个 质点

    在引力问题中,  实心圆 是否可以认为是一个 质点    。   实心圆 的 质量均匀   。

     

    具体一点,       实心圆 是否 等价于 位于 圆心 的 质点      。

     

    对于 这一点,   我们考察 实心圆 对 另一个 质点 B 的 引力,   如果  实心圆 对 质点 B 的 引力 等价于  圆心 处 同等 质量 的 质点 对 质点 B 的 引力,  那么 可以把 实心圆 看作是 圆心 处 的 一个 质点   。

    根据 牛顿第三定律,    实心圆 对 质点 B 的 引力 等价于 圆心 处 质点 的 引力 意味着 质点 B 对 实心圆 的 引力 也等价于 对 圆心 处 质点 的 引力   。

     

    设 实心圆 为 A,  圆心 为  O  。

    先从 直观 的 角度 来看,   对于 圆 外 的 任意 一个 质点 B,   由于 圆 的 对称性,  无论 B 位于 圆 的 哪个方向,  只要 和 圆心 O 的 距离 相等,  则 受到 圆 的 引力 都一样 。  所以 对于 圆 外 的 质点,   实心圆 可以 看作 圆心 处 的 一个 质点  。

    对于 圆 内 的 一个 质点 B,    以 圆心 O 为 圆心,  过 B 作一个 圆 P,   圆 P 把 实心圆 A 分割 成 一个 小实心圆 和 一个 环形 。  内部 是 小实心圆,  外部 是 环形  。

    小实心圆 和 环形 都 具有 对称性,  所以 B 在 P 上 的 任意 位置  受到 小实心圆 和 环形 的 引力 都一样,   即 只要 B 到 圆心 O 的 距离 相等,   B 在 任意位置  受到 小实心圆 和 环形 的 引力 都一样 ,  所以,  对于 圆内 的 质点 B,   实心圆 也可以看作是 圆心 处 的 质点    。

     

    但 问题 没有 完,   圆心处 的 质点 的 质量 是否 和 实心圆 的 质量 相等  ?  

     

    对于 圆内 的 情况 ,  即 质点 B 位于 实心圆 A 内部,   可以考虑一个 特例,   当 B 位于 圆心 O 时,  此时, 实心圆 A 对 B 的 引力 为 0,  如果 把 实心圆 A 看成一个 质点, 则 对 B 的 引力 为 无穷大   。    从这里看起来,  质点 B 位于 实心圆 A 内部 时, 不能把 实心圆 A 看成一个 圆心处 相同质量 的 质点   。

     

    对于 圆外 的 情况 ,  即 质点 B 位于 实心圆 A 外部,   可以 先 简单 的 来看,    过 O 、B 作一条 直线 OB,   OB 和 实心圆 A 的 边 相交 于 C 、 D,    如图 :

     

                 图 1

    设  实心圆 A 半径 为 r,   则 OC = OD = r,    设 BD = 2r,   这样 我们 可以来计算一下,  C 点 D 点 对 B 造成 的 引力 是 多大,

    设 实心圆 A 的 质量 为 M,  C 点 D 点 的 质量 为 dM,  质点 B 质量 为 m,      则,

    C 点 对 B 的 引力 Fc = G dM m / (4r)²  =   G dM m / 16 r²     ,

    D 点 对 B 的 引力 Fd = G dM m / 4 r²      ,

    C D 对 B 的 引力 之 和 Fcd =  G dM m / 16 r²  +   G dM m / 4 r²    =    5/16 * G dM m / r²   。

     

    再来看看 如果 把 C 点 和 D 点 的 质量 都放到 圆心 O,   则  O 对 B 的 引力 是 多少   。

    把 C 点 和 D 点 的 质量 都放到 圆心 O ,  O 的 质量 = dM + dM = 2 dM   ,

    O 对 B 的 引力 Fo = G 2 dM m / (3r)²   =   2 G dM m / 9r²   =  2/9 *  G dM m / r²    ,

     

    看起来  Fcd 不等于 Fo,       且 Fcd  >  Fo     。

     

    但是 如果 算上 实心圆 上 所有 的 点 ,   即 整个 实心圆 A 对 B 的 引力 是不是 等于 圆心处 质量 M 的 质点 对 B 的 引力 ,  这个 还不能 确定 。

    这需要 用 数学 来 计算一下    。

     

    设 实心圆 的 密度 为  ρ,  以 圆心 O 为 原点, 建立 直角坐标系,   如图 :

     

        图 2

      

     

    设 B 的 坐标 为 (xb, yb) , 则 实心圆 A 对 B 的 引力 F  可以 通过一个 积分 来 计算 :

     

    F  =  ∫  G dM m / dM 处和 B 的距离的平方

     

    因为  dM = dx * dy * ρ   ,       dM 处和 B 的距离的平方  =  (xb - x)² + (yb - y)²   ,    x, y 是 dM 处 的 坐标  。

     

    于是,      F  =  ∫  G dx dy ρ m / ( (xb - x)² + (yb - y)² )        ,

     

    但是, 因为 力 是 矢量,    每个 dM 对 B 的 引力 的 方向 是 不一样 的,  不能 直接 加起来,     所以 要 把 每个 dM 对 B 的 引力 分成 x方向分量 和 y方向分量, 然后 x分量 之间 可以 相加,  y分量 之间 可以 相加,  也就是说,  要有 2 个 积分,  一个 是 x 方向 的 引力, 一个 是 y 方向 的 引力 。

     

    Fx =  ∫  G dx dy ρ m / ( (xb - x)² + (yb - y)² )  *  (x - xb) / ( (xb - x)² + (yb - y)² ) 开方

    Fy =  ∫  G dx dy ρ m / ( (xb - x)² + (yb - y)² )  *  (y - yb) / ( (xb - x)² + (yb - y)² ) 开方

     

    Fx  是 实心圆 A 对 B 的 引力 F 在 x 方向 的 分量,    Fy  是 实心圆 A 对 B 的 引力 F 在 y 方向 的 分量   。

     

    整理一下,   得 :

     

    Fx =  ∫  G dx dy ρ m  (x - xb)  /  ( (xb - x)² + (yb - y)² ) 3/2次方

    Fy =  ∫  G dx dy ρ m  (y - yb)  /  ( (xb - x)² + (yb - y)² ) 3/2次方

     

    先计算  Fx ,

    先对 dy 积分,  即 先计算 x 处 宽度 为 dx 的 实心圆 上 y 方向 的 一条 “线段” 对 B  产生 的 引力 的 x 分量,    如 图 2,  就是 计算 CD “线段” 对 B 产生 的 引力 的 x 分量   。

    因为是 计算 “ x 处 宽度 为 dx” 的 一条 “线段”,    所以  x 和 dx 都可以 看作 常量,   把  x, dx  提到 积分符号 外面 ,  再加上一个 积分符号,  于是 :

     

    Fx =   ∫  G ρ m dx   (x - xb)   ∫   dy  / ( (xb - x)² + (yb - y)² ) 3/2次方           (1) 式

     

    可以看到,  出现了  2 个 积分符号 ∫  ,   需要  进行 2 次 积分,  先对 dy 积分,  再用 dy 积分 的 结果 对 dx 积分,   这就是 二重积分  。

     

    先 计算    ∫   dy  / ( (xb - x)² + (yb - y)² ) 3/2次方 ,    把 这个 不定积分 记为  fxcd_x ( y )  ,    即

     

    fxcd_x ( y ) =  ∫   dy  / ( (xb - x)² + (yb - y)² ) 3/2次方          ,     x, xb, yb   是 常数 

     

    这个 积分 就 不求 了, 也不知道 积不积的出来,  我们 假装 已经 求出来了,  接着讨论  。     求出 这个 不定积分 以后,  根据 不定积分 可以 来 求 定积分 。  CD “线段” 对 B 的 引力 的 x 分量 就是 fxcd_x( y ) 对应的 定积分 。

    设  CD “线段” 在 x 处 的 宽度 为 单位宽度 时 对 B 的 引力 的 x 分量 是  Fxcd_x ,   则

     

    Fxcd_x = fxcd_x( yc ) - fxcd_x( yd )  ,             yc,  yd  是 C 点 D 点 的 y 坐标             

     

    即  Fxcd_x  是 不定积分  fxcd_x( y )   在 区间  [ yc ,  yd ]   上 对应 的 定积分     。

     

    Fxcd_x * dx   就是 宽度 为 dx 的 CD “线段” 对  B 的 引力 的 x 分量     。

     

    因为 yc = (r² - x²)开方,      yd = - (r² - x²)开方   ,    所以,

     

    Fxcd_x = fxcd_x ( (r² - x²)开方 )  -  fxcd_x ( - (r² - x²)开方 )   ,  

     

    到这里,  可以看到,   (1) 式 中的  ∫   dy  / ( (xb - x)² + (yb - y)² ) 3/2次方   实际上 应该是 定积分 Fxcd_x   ,  把 Fxcd_x 代入 (1) 式, 代替   ∫   dy  / ( (xb - x)² + (yb - y)² ) 3/2次方    ,     于是 :

     

    Fx =   ∫  G ρ m dx   (x - xb)   Fxcd_x

    =      ∫  G ρ m dx   (x - xb)  ( fxcd_x ( (r² - x²)开方 )  -  fxcd_x ( - (r² - x²)开方 ) )          

    =      ∫  G ρ m     (x - xb)    ( fxcd_x ( (r² - x²)开方 )  -  fxcd_x ( - (r² - x²)开方 ) )   dx

     

    即        

     

    Fx  =    ∫  G ρ m    (x - xb)    ( fxcd_x ( (r² - x²)开方 )  -  fxcd_x ( - (r² - x²)开方 ) )   dx            (2) 式

     

    到这里,  已经 把  二重积分  转化为 一重积分,   即 普通积分 。         

    计算出 不定积分 Fx ,  就可以求 在 区间 [ -r ,  r ] 上 对应 的 定积分 Fx ,    定积分 Fx  就是 实心圆 A 对 质点 B 的 引力 F 的 x分量 Fx   。

    这里的 Fx 包含了 2 个 含义,  一个是 不定积分, 一个是 定积分  ,  为了叙述简便, 没有对 不定积分 和 定积分 分别命名   。

     

    同样的方法, 可以求出  Fy    。

     

    二重积分 的 物理意义 是 对   dx * dy  的 积分,   dx * dy  是一个 边长为 dx 的 小正方形(dx = dy)   ,    也可以称为 面积微分,或者 面元   。

    计算 二重积分 的 方法 是 先 计算出 x 处 宽度 为 dx 的 y 方向的 “线段”,  即 先对 dy 积分,  然后 再 把 “线” 积 成 “面”, 即 再对 dx 积分 。  当然 对 dy dx 积分 的 顺序 是 任意 的,  可以 先 对 dx 积分, 再对 dy 积分   。

    同样的道理,   可以有 三重积分,  即 对   “体”  的 积分,      也就是 对   dx * dy * dz  的 积分,  积分方法 和 二重积分 一样,  点 积 成 线,  线 积 成 面,  面 积 成 体   。      对  dx dy dz  积分 的 顺序 也是 任意 的    。  可以先对 dx 积分, 再对 dy 积分, 再对 dz 积分,  也可以 先对 dy 积分, 再对 dx 积分, 再对 dz 积分,  也可以 先对 dy 积分, 再对 dz 积分, 再对 dx 积分 等等   。

    dx * dy * dz    是一个 边长为 dx 的 小正方体 (dx = dy = dz)  ,     也可以称为 体积微分,  或者 体元 。

     

     

    上面 的 积分 就 交给 数学家 吧,  哈哈 。   我们 用 计算机 程序模拟 来 算算 看 。  我写了一个 模拟计算程序 , 下载地址 :   https://github.com/kelin-xycs/CircleG   ,  进入页面后 点击右边 绿色 的  “Clone or download”  按钮 就可以下载了  。    程序 只有一个 Html 文件 CircleG.html ,  用 Html5 + javascript 写的,  用 浏览器 打开 就可以运行 。

     

    程序界面 里 可以设定 计算参数,   默认参数 是 :

    实心圆 A 半径 :  100 米

    实心圆 A 密度 :  1 千克/米²

    质点 B 坐标 x :   200  米       y :   50 米

    质点 B 质量 m :  10 千克

    x 轴 直径 切分为多少个 dx :    1000

    y 轴 直径 切分为多少个 dy :    1000

    万有引力常量 G:    1  牛 * 米平方 / 千克平方

     

    点击  “计算”  按钮,   根据 默认参数 计算 得  的 结果 是 :

    实心圆 A 对 质点 B 的 引力 F = 8.155875305844118 牛 , Fx = -7.912739789512828 牛 , Fy = -1.9765755811348025 牛 。 Fx Fy 是 F 的 x分量 y分量 。 F 是 绝对值, Fx Fy 的 正负号 表示 方向 。

    把 实心圆 A 看成圆心处同样质量的质点 对 质点 B 的 引力 Fo = 7.3882352941176475 牛 。

     

    可以看到,  F 和 Fo  相近,  但也有 明显 的 差距,   所以,   实心圆 和 圆心处同样质量的质点  不等价,  设 质点 O 为 圆心处同样质量的质点,   当 质点 B 在 实心圆 A 外部 时,   质点 O 对 B 的 引力 和 实心圆 A 对 B 的 引力 方向相同,  但  大小不同   。

     

    大家可以 把  “x 轴 直径 切分为多少个 dx ” 、“y 轴 直径 切分为多少个 dy”   修改成  2000 、3000 、 ……  10000 、……      计算看看,  看 结果 怎么样 。

     

    还有一个问题,   怎么进行 误差分析 ?      即 怎么计算  模拟计算 的 结果 和 理论值 之间 的 差, 或者 差 的 范围 ?

    不知道  。

     

    有 2 种 间接 的 方法 :

    1    取一个 特例,    质点 B 位于 x 轴 上,  即 质点 的 y 坐标 为 0 ,   即 yb = 0  ,   比如 x = 200 ,  y = 0  ,   此时 Fy 应该等于 0,  可以 看看 模拟计算 的 Fy 是多少,   比如,  按照 默认参数,  把  质点 B 坐标  y   设置 为 0  ,    计算得 的 结果 是 :

    实心圆 A 对 质点 B 的 引力 F = 8.725744060375812 牛 , Fx = -8.725743812735963 牛 , Fy = 0.002078865993654827 牛 。 Fx Fy 是 F 的 x分量 y分量 。 F 是 绝对值, Fx Fy 的 正负号 表示 方向 。

    把 实心圆 A 看成圆心处同样质量的质点 对 质点 B 的 引力 Fo = 7.85 牛 。

     

    因为 质点 B 位于 x 轴, 所以 Fy 的 理论值 是 0,    所以,  Fy = 0.002078865993654827 牛  表示 此时 Fy 和 理论值 的 差距 是 0.002078865993654827 牛 ,  这个 数据 和 推论 可以 间接 的 评估   “ x 轴 直径 切分为 1000 个 dx , y 轴 直径 切分为 1000 个 dy ”   的 条件下 的 计算精度 , 也可以说是 误差范围, 或者说 误差级别  。

     

    2    取一个 任意 的 计算结果,  比如 取 默认参数 的 计算结果,   由 上文 可知,   F 的 方向 和 Fo 相同,  即 F 的 方向 在 OB 直线 上,  所以   Fy / Fx  的 理论值 等于  OB 的 斜率,   即  质点 B 的 y 坐标 / x 坐标 ,   即  yb / xb    。       

    yb / xb = 50 / 200 = 1 / 4 = 0.25   ,

    模拟计算出 的  Fy / Fx = -1.9765755811348025 牛 / -7.912739789512828 牛 = 0.2497

    0.25 - 0.2497  =   0.0003         ,

    所以,   Fy / Fx  的 模拟计算结果 和 理论值 的 差距 是 0.0003  ,      这个 数据 和 推论 可以 间接 的 评估   “ x 轴 直径 切分为 1000 个 dx , y 轴 直径 切分为 1000 个 dy ”   的 条件下 的 计算精度 , 也可以说是 误差范围, 或者说 误差级别  。

     

    x 轴 直径 切分为多少个 dx   就是 dx 数量,    y 轴 直径 切分为多少个 dy  是  dy 数量  。

    把  dx 数量 和 dy 数量  增大,  进行计算,   根据 上面 2 种 方法 均可发现 计算精度 提高了  。

     

    dx 数量 和 dy 数量 为 1000 ,  表示需要计算  1000 * 1000 = 100 万 个 面元,  计算量 还是 挺大的,  如果 dx数量 dy数量 增大,  可以提高计算精度, 计算量也会更大,   不过 这种类型 的 计算 可以使用 并行计算  。   利用 多核 多CPU 多主机 来 并行计算,   可以 增大 CPU核 CPU 计算机 的 数量 来 进行 大规模 “暴力” 并行计算  。

     

     

     

     

     

     

  • 相关阅读:
    P5049 旅行(数据加强版)(基环树)
    P5024 保卫王国(动态dp/整体dp/倍增dp)
    CF891C Envy(离线/在线+可撤销并查集/并查集/LCT)
    CF1217题解
    CF1215题解
    浅谈bitset
    CF1214题解
    CF1213F Unstable String Sort(差分)
    C++创建和使用动态链接库
    交叉编译openssl1.1.1a
  • 原文地址:https://www.cnblogs.com/KSongKing/p/12013584.html
Copyright © 2011-2022 走看看