由于一些物理计算的需要,我要用电脑将一个一次函数和一个三角函数(cotan)的图像和交点画出来。
本例程使用到的库:
numpy 强大的科学计算库
matlibplot python绘图库
random 随机数产生库
由于计算机只能计算离散的点,所以我们不太可能直接求得精确地交点值,所以只能求一个大致的值,我选择两个函数值相差值小于等于0.01的时候就认为是交点。
但是即使是这样,还是会在一个小范围内得到不止一个点,所以我们还需要进行数据清洗工作
由于我们只是表示出了cotan的两个区间,所以要在每个区间取一个点。
import numpy as np
import matplotlib.pyplot as plt
from random import randint
def get_ctg(i):
i = np.pi/2 * i
return np.cos(i)/np.sin(i)
x = np.linspace(0, 4, 100000) #0到10 的 10000个点
x_l = [] #记录最终的xy值
y_l = []
n = 1
y1 = []
x1 = []
y2 = []
x2 = []
def get_y1():
for x_i in x:
y1.append(n * x_i)
x1.append(x_i)
def get_y2():
for x_i in x:
if(np.sin(x_i) != 0):
y = get_ctg(x_i)
y2.append(y)
x2.append(x_i)
#获得两个函数的大致交点
def get_point():
for x_i in x2: #直接过滤掉等于0的点
y = n*x_i - get_ctg(x_i)