定位python仿真相关

高斯噪声是指它的概率密度函数服从高斯分布的一类噪声。

高斯分布,也称正态分布,又称常态分布,记为N(μ,σ^2),其中μ,σ^2为分布的参数,分别为高斯分布的期望和方差。当有确定值时,p(x)也就确定了,特别当μ=0,σ^2=1时,X的分布为标准正态分布

NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。

 

numpy.random.randn(row, col)是从标准正态分布中返回一个或多个样本值。 
numpy.random.rand(row, col)的随机样本位于[0, 1)中。 
random.seed(0)作用:使得随机数据可预测,即只要seed的值一样,后续生成的随机数都一样。

画直方图:
 matplotlib.pyplot.hist(  
    x, bins=10, range=None, normed=False,  color=None, label=None) 
x : 这个参数是指定每个bin(箱子)分布的数据,对应x轴
bins : 这个参数指定bin(箱子)的个数,也就是总共有几条条状图
normed : boolean, optional,这个参数指定密度,也就是每个条状图的占比例比,默认为1,y轴值的比例
color : 这个指定条状图的颜色 

 

你可以多次使用figure命令来产生多个图,其中,图片号按顺序增加。

plt.figure(1)  子图只需要创建一次或者序号相同创建
 
#coding:utf-8

import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import numpy as np

def histFigure():
    mu, sigma = 0, 1
    sampleNo = 100000
    np.random.seed(0)
    s = np.random.normal(mu, sigma, sampleNo)

    plt.hist(s, bins=100, normed=True, color="green")
    plt.xlabel("x")
    plt.ylabel("y")
    plt.text(-4, 0.30, r'$\mu=0,\ \sigma=1$')#在x轴-4, y轴0.30开始加入说明
    plt.title("title of relationship of x and y")
    plt.show()

def subFigure():
    x = np.arange(-5.0, 5.0, 0.02)
    y1 = np.sin(x)
    plt.figure(1)
    plt.subplot(211)
    plt.axis([-5, 5, -2, 2])#设置x,y坐标范围
    plt.xlim((-3, 3))#另一种设置坐标区间的方法
    plt.plot(x, y1)

    plt.subplot(212)
    #设置x轴范围
    plt.xlim(-2.5, 2.5)
    #设置y轴范围
    plt.ylim(-1, 1)
    plt.plot(x, y1)
    plt.show()

def mulFigure():
    x = np.arange(0, 5, 0.2)
    y1 = x
    y2 = x**2 #平方
    y3 = x**3

    plt.plot(x, y1, 'r.', label="x")
    plt.plot(x, y2, 'bs', label="x^2")
    plt.plot(x, y3, 'g^', label="x^3")

    plt.legend(loc="upper left")
    plt.show()

def scatterFigure():
    x = np.random.uniform(1, 10, size=(1, 10))
    y = np.random.uniform(1, 10, size=(1, 10))
    print x
    print y
    plt.scatter(x, y, color = 'blue')
    plt.plot(x, y, color = 'green')
    plt.show()
scatterFigure()

 

三角测量是一种基于三角形相似性原理的定位算法,它通过测量目标物体与多个已知位置的参考点之间的距离来定位目标物体的位置。下面是一个基于Python的三角测量定位算法的简单仿真代码。 ```python import math # 已知参考点坐标和距离 refs = [(0, 0, 10), (10, 0, 8), (0, 10, 6)] # 测量距离 distances = [12, 15, 9] # 定义三角测量函数 def trilateration(refs, distances): xa, ya, xb, yb, xc, yc = refs[0][0], refs[0][1], refs[1][0], refs[1][1], refs[2][0], refs[2][1] ra, rb, rc = distances[0], distances[1], distances[2] # 计算三个参考点之间的距离 dAB = math.sqrt((xa - xb) ** 2 + (ya - yb) ** 2) dAC = math.sqrt((xa - xc) ** 2 + (ya - yc) ** 2) dBC = math.sqrt((xb - xc) ** 2 + (yb - yc) ** 2) # 计算三个参考点的坐标差值 ex = (xb - xa) / dAB ey = (yb - ya) / dAB ez = 0 i = ex * (xc - xa) + ey * (yc - ya) j = ey * (xc - xa) - ex * (yc - ya) k = dAC ** 2 - dAB ** 2 - i ** 2 - j ** 2 # 计算目标点坐标 x = xa + ex * ra + i * (j * (ey * ra - ex * rb) - ex * k) / (dAB ** 2 - (j ** 2 + ey ** 2) * ra ** 2) y = ya + ey * ra + j * (i * (ex * ra - ey * rb) - ey * k) / (dAB ** 2 - (j ** 2 + ey ** 2) * ra ** 2) z = math.sqrt(ra ** 2 - x ** 2 - y ** 2) return x, y, z # 计算目标点坐标 x, y, z = trilateration(refs, distances) print("目标点坐标:({:.2f}, {:.2f}, {:.2f})".format(x, y, z)) ``` 在上面的代码中,我们定义了一个 `trilateration` 函数来计算目标点的坐标。该函数的输入参数包括参考点坐标和距离,输出为目标点的坐标。 在函数中,我们首先计算了三个参考点之间的距离以及参考点的坐标差值。然后,我们根据三角形相似性原理,推导出计算目标点坐标的公式,并将其实现在函数中。 最后,我们通过调用 `trilateration` 函数,计算出目标点的坐标,并将其打印输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值