Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

在你这里也贴一下,看看我的方法。

import numpy as np
import matplotlib.pyplot as plt
from numpy.linalg import norm
from matplotlib import style
style.use('ggplot')

fig = plt.figure()
Ax = fig.gca()

epsilon = 0.0001
n = 100000

position = np.zeros((n,2))
velocity = np.zeros((2))
acceleration = np.zeros((2))

position[0,0] = float(input("输入x初始坐标值:"))
position[0,1] = float(input("输入y初始坐标值:"))
velocity[0] = float(input("输入x分量初始速度:"))
velocity[1] = float(input("输入y分量初始速度:"))


r = norm(position[0])
r3 = 1/(r**3)
acceleration = position[0] * -r3
velocity += acceleration * epsilon * 0.5

star = 1

if(norm(velocity) > np.sqrt(2/r)):
    star = 0
else:
    i = 1
    t = 0
    while(i<n):
        position[i] = position[i-1]+velocity*epsilon
        if(position[i-1,1]*position[i,1]< 0):
            t += 1
        if(t==2):
            break
        r = norm(position[i])
        r3 = 1/(r**3)
        acceleration = position[i]*-r3
        velocity += acceleration*epsilon
        if(norm(velocity) > np.sqrt(2/r)):
            star = 0
            break
        i += 1

if(star == 1):
    print('行星的公转周期为:%f' %(i*epsilon))
    plt.plot(position[:i,0], position[:i,1],'b-')
    plt.plot(0,0,"ro")
    plt.show()
else:
    print("start is gone")

沒錯,跟我的想法差不多!我是把x、y座標互乘,計算變號次數,要算四次。而脫離速度,我是以速度的點積及 2/r 來比較,自認可以降低浮點數誤差。我們方法不同,但結果相同!

这个覆盖面太广了!!!根本没法吸收知识啊 好厉害的感觉

  ·  8 years ago (edited)

這的確覆蓋很多東西。我原意是想要將各式學科結合在一起,而不要死板板地限制在一個領域之中。在學校,老師大都侷限於自己專門的領域中授課,各個科目沒什麼交集。這樣感覺不怎麼好,就好比一隻魚被大卸八塊卻不鮮美可口,成了屍塊一般。老實說,學科並非涇渭分明而有個明確的界線,若肯努力去探索,必定可以找到它們的異同處。

台灣最近在鼓吹程式教育,希望整個教育體系能好好納入程式設計。這想法本身不錯,自己也樂觀如是發展,但擔心會流於形式,而失去其中的真諦。

所以我才寫這系列,想作為一個範本供他們參考。這一篇文章本身就是高中領域內的東西來做發揮,行星運行、牛頓力學、向量,沒有超出範圍,如果是好好學習的高中生,應並不難理解當中的理論。這樣一來,在授課的同時便可以結合程式設計,一同學習,不一定要特別開一門資訊課來教導。

不過,我是期望大家都可以學習,好好地體會當中的奧妙啦!只可惜這系列難度有點高,算是一個遺憾。

Great post and very informative. @etzel Have learnt a lot from it.

我對於這個就真的完全沒有概念 @@
不過很歡迎你可以來這裡分享你的所知喔! :)

沒關係,總會有人懂。

我確實很想在這裡分享我所學,有好多東西可以說喔!

可以喔!! 這裡有很多不同專業領域的朋友! :)

屌,很高興又在這平台遇到臺灣人!

  ·  8 years ago (edited)

應該不難遇到吧!呵!

最近有一對退休夫妻也來這裡了,同樣是台灣人,不知你有沒有看到。

其實也沒這麼容易喔
很高興在這裡認識你,歡迎你加入。 :D

他們的帳號是什麼呢?

@tungjungchen@helenliu兩位,女兒邀他們來這。

有看到他們,很有意思的一家人