z


错误:


 第一次写出来运行得图如上,仔细检查才发现求yt的时候,t的平方忘记写了。



总结

########## Begin ##########
import numpy as np  
import matplotlib.pyplot as plt
n,v0,g=30,50,9.8
def  abc(x):
    q=np.radians(x)
    tmax=(2*v0*np.sin(q))/g
    t=np.linspace(0,tmax,n)
    xt=v0*t*np.cos(q)
    yt=v0*t*np.sin(q)-0.5*g*t**2
    return xt,yt
X=[30,45,60,75]
for x in X:
    xt,yt=abc(x)
    plt.plot(xt,yt,'r-')
plt.grid('on')   
plt.axis([0,260,0,120])
plt.show()
########## End ##########
plt.savefig( 'src/step6/student/pic.png' )
plt.close()

找错总结:

出现1/2,可以考虑0.5代替,不然一不注意运算顺序就会出错,最后结果就会出错。

运算结果出现错误时, 先检查一下式子是否漏泄,错写;式子没有问题,就看一下循环是否出错。


知识总结:


1.使用math库实现Π,e,sin(x)

math.pi

math.e

math.sin(x)

也可以使用numpy:

q=np.linspace(x)

sin(x)=np.sin(q)

cos(x)=np.cos(q)

还可以计算sqrt,log 


2. linspace函数

linspace(i,j,n)表示:

将闭区间[i,j]尽量均分为n-1份

返回n个端点形成的序列

从[i,j]均匀取n个点

n的默认值为50

import numpy as np
A=np.linspace(-1,1,5)
print(a)

使用linspace需要引用numpy库