当前位置: 首页 > news >正文

网站做软件有哪些网站推广在线推广

网站做软件有哪些,网站推广在线推广,做网站 阿里云和百度云哪个好,深圳市中心在哪里最繁华文章目录 数学原理代码实现测试 数学原理 平面方程可写为 A x B y C z D 0 AxByCzD0 AxByCzD0 假设 C C C不为0,则上式可以改写为 z a x b y d zaxbyd zaxbyd 则现有一组点 { p i } \{p_i\} {pi​},则根据 x i , y i x_i,y_i xi​,yi​以及平面…

文章目录

    • 数学原理
    • 代码实现
    • 测试

数学原理

平面方程可写为

A x + B y + C z + D = 0 Ax+By+Cz+D=0 Ax+By+Cz+D=0

假设 C C C不为0,则上式可以改写为

z = a x + b y + d z=ax+by+d z=ax+by+d

则现有一组点 { p i } \{p_i\} {pi},则根据 x i , y i x_i,y_i xi,yi以及平面方程,可以得到其对应的 z ^ i \hat z_i z^i

z ^ i = a x i + b y i + d \hat z_i=ax_i+by_i+d z^i=axi+byi+d

从而平面拟合就转换为了最小二乘问题

arg min ⁡ ∑ ∣ z i − z ^ i ∣ \argmin \sum \vert z_i-\hat z_i\vert argminziz^i

将其转换为矩阵形式,记

A = [ x 1 y 1 1 x 2 y 2 1 ⋮ ⋮ x n y n 1 ] , x = [ a b d ] , b = [ z 1 z 2 ⋮ z n ] A=\begin{bmatrix} x_1&y_1&1\\x_2&y_2&1\\\vdots&\vdots\\x_n&y_n&1 \end{bmatrix}, x=\begin{bmatrix}a\\b\\d\end{bmatrix}, b=\begin{bmatrix}z_1\\z_2\\\vdots\\z_n\end{bmatrix} A= x1x2xny1y2yn111 ,x= abd ,b= z1z2zn

则拟合方程变为

A x = b Ax=b Ax=b

相应地 x x x可写为

x = ( A T A ) − 1 A T b x=(A^TA)^{-1}A^Tb x=(ATA)1ATb

最小二乘法的原理可见:python实现最小二乘法

代码实现

其代码实现如下

import numpy as np
def planefit(points):xs, ys, zs = list(zip(*points))A = np.vstack([xs,ys,np.ones_like(xs)]).Tb = np.reshape(zs, [-1, 1])abd = np.linalg.inv(A.T @ A) @ A.T @ breturn abd.reshape(-1)

其中输入参数points为一组点。第一步将这些点进行坐标拆分,得到一一对应的xs, ys, zs。然后通过这些点,构造矩阵A和向量b,最后输出 ( A T A ) − 1 A T b (A^TA)^{-1}A^Tb (ATA)1ATb

测试

首先做一个初始化平面的函数,其功能是随机生成一组在平面中的点,并且为其添加一些噪声。

# 初始化平面
def initPlane(a, b, d, N, err=0.1):xs,ys = np.random.rand(2, N)zs = a*xs + b*ys + d + np.random.rand(N)*errreturn list(zip(xs, ys, zs))

然后用planefit函数对这些点进行拟合,通过对比二者之间的差异,来证实算法的有效性

import matplotlib.pyplot as pltpts = initPlane(2,3,4,100,1)
a,b,d = planefit(pts)xs, ys = np.indices([100,100])/100
zs = a*xs + b*ys + dax = plt.subplot(projection='3d')
ax.plot_surface(xs, ys, zs, cmap='jet')
ax.scatter(*np.array(pts).T, marker='*')
plt.show()

在这里插入图片描述

随着加入的噪声逐渐变大,拟合误差也越来越大

errs = [0.01, 0.1, 0.2, 0.5, 1, 3, 5]
fits = []
for err in errs:pts = initPlane(2,3,4,100,1)a,b,d = planefit(pts)fits.append([abs(a-2),abs(b-3),abs(d-4)])import pprint
pprint.pprint(fits)

[[0.09377971025135245, 0.023025216275622373, 0.4933931906466551],
[0.044310965250572654, 0.05681830483294226, 0.47952260969370997],
[0.051813469166934745, 0.017914573861143257, 0.47553046120193176],
[0.08578595894551588, 0.0464898508775029, 0.42791269232718054],
[0.011569662177250528, 0.15976404558136714, 0.4886516489062753],
[0.006829071411009302, 0.04832062421804073, 0.5193494695593301],
[0.1651263679674586, 0.0736367910618192, 0.44103226768552073]]


http://www.ds6.com.cn/news/115507.html

相关文章:

  • 注册公司需要多长时间?seo推广公司
  • wordpress数据库分页重庆网站优化排名推广
  • 南宁网站建设哪家windows优化大师怎么样
  • 网站建设策划书范文野狼seo团队
  • 网站推广 经典案例网站建设的六个步骤
  • 怎样做网站推广湖南seo优化哪家好
  • wordpress 上传大图广州百度快速优化排名
  • 欧洲大片在线播放seo学习论坛
  • 佛山网站优化步骤都有什么推广平台
  • wordpress特色图像插件短视频关键词seo优化
  • 农村电商网站建设计划书快速网站排名提升
  • 合肥专业做网站的公司哪家好seo怎么做排名
  • 企业网站哪家做得比较好比百度强大的搜索引擎
  • 如何建立自己网站教程北京网站优化实战
  • 模板网站建设源码优化关键词怎么做
  • 平面设计接单价格优化营商环境心得体会2023
  • 武汉品牌网站建设公司东莞网站推广技巧
  • 过期域名公众号微博seo
  • 宜昌市做网站的公司关键词挖掘工具爱站网
  • 局域网内个人网站建设个人博客登录入口
  • 做互联网的网站西安快速排名优化
  • 做外链选择那些网站百度推广开户电话
  • 怎样建企业网站网站建设技术
  • wordpress页面过期重庆seo排名技术
  • 威海网站建设是什么刷移动关键词优化
  • 加盟类网站建设推广普通话绘画
  • 什么是指定网站的域名沈阳优化推广哪家好
  • 电子商务网站建设实验报告软考十大最靠谱it培训机构
  • 文登市城乡建设局网站今日头条新闻在线看
  • 大发 wordpress深圳品牌seo