前言

找了好久python拟合曲面的方法,没找到,就借鉴 https://blog.csdn.net/Haipai1998/article/details/85345823 这篇博客,对方法进行封装更便于使用。

代码

处理符号问题

def fun(x): round(x, 2)if x >= 0:return '+'+str(x)else:return str(x)

求解系数


def get_res(X, Y, Z, n):# 求方程系数sigma_x = 0for i in X: sigma_x += isigma_y = 0for i in Y: sigma_y += isigma_z = 0for i in Z: sigma_z += isigma_x2 = 0for i in X: sigma_x2 += i * isigma_y2 = 0for i in Y: sigma_y2 += i * isigma_x3 = 0for i in X: sigma_x3 += i * i * isigma_y3 = 0for i in Y: sigma_y3 += i * i * isigma_x4 = 0for i in X: sigma_x4 += i * i * i * isigma_y4 = 0for i in Y: sigma_y4 += i * i * i * isigma_x_y = 0for i in range(n):sigma_x_y += X[i] * Y[i]# print(sigma_xy)sigma_x_y2 = 0for i in range(n): sigma_x_y2 += X[i] * Y[i] * Y[i]sigma_x_y3 = 0for i in range(n): sigma_x_y3 += X[i] * Y[i] * Y[i] * Y[i]sigma_x2_y = 0for i in range(n): sigma_x2_y += X[i] * X[i] * Y[i]sigma_x2_y2 = 0for i in range(n): sigma_x2_y2 += X[i] * X[i] * Y[i] * Y[i]sigma_x3_y = 0for i in range(n): sigma_x3_y += X[i] * X[i] * X[i] * Y[i]sigma_z_x2 = 0for i in range(n): sigma_z_x2 += Z[i] * X[i] * X[i]sigma_z_y2 = 0for i in range(n): sigma_z_y2 += Z[i] * Y[i] * Y[i]sigma_z_x_y = 0for i in range(n): sigma_z_x_y += Z[i] * X[i] * Y[i]sigma_z_x = 0for i in range(n): sigma_z_x += Z[i] * X[i]sigma_z_y = 0for i in range(n): sigma_z_y += Z[i] * Y[i]# print("-----------------------")# 给出对应方程的矩阵形式a = np.array([[sigma_x4, sigma_x3_y, sigma_x2_y2, sigma_x3, sigma_x2_y, sigma_x2],[sigma_x3_y, sigma_x2_y2, sigma_x_y3, sigma_x2_y, sigma_x_y2, sigma_x_y],[sigma_x2_y2, sigma_x_y3, sigma_y4, sigma_x_y2, sigma_y3, sigma_y2],[sigma_x3, sigma_x2_y, sigma_x_y2, sigma_x2, sigma_x_y, sigma_x],[sigma_x2_y, sigma_x_y2, sigma_y3, sigma_x_y, sigma_y2, sigma_y],[sigma_x2, sigma_x_y, sigma_y2, sigma_x, sigma_y, n]])b = np.array([sigma_z_x2, sigma_z_x_y, sigma_z_y2, sigma_z_x, sigma_z_y, sigma_z])# 高斯消元解线性方程res = np.linalg.solve(a, b)return res
def matching_3D(X, Y, Z):n = len(X)res = get_res(X, Y, Z, n)# 输出方程形式print("z=%.6s*x^2%.6s*xy%.6s*y^2%.6s*x%.6s*y%.6s" % (fun(res[0]), fun(res[1]), fun(res[2]), fun(res[3]), fun(res[4]), fun(res[5])))# 画曲面图和离散点fig = plt.figure()  # 建立一个空间ax = fig.add_subplot(111, projection='3d')  # 3D坐标n = 256u = np.linspace(-20, 20, n)  # 创建一个等差数列x, y = np.meshgrid(u, u)  # 转化成矩阵# 给出方程z = res[0] * x * x + res[1] * x * y + res[2] * y * y + res[3] * x + res[4] * y + res[5]# 画出曲面ax.plot_surface(x, y, z, rstride=3, cstride=3, cmap=cm.jet)# 画出点ax.scatter(X, Y, Z, c='r')plt.show()

调用演示

这样以后用起来就方便了

数学建模入门-python拟合曲面相关推荐

  1. 数学建模入门-python实现模糊多属性决策

    文章目录 算法简介 调用示例 例题 主函数 代码 结果 具体实现 准备函数 Step1:指标数据的三角形模糊数表达 Step2: 模糊指标矩阵 F 归一化处理 Step3: 构造模糊决策矩阵 Step ...

  2. 数学建模入门 方法及代码

    数学建模入门 数学模型 (1)原型与模型 模型是原型的替代物.(对原型提炼构造.) 模型不是原型,既简单于原型又高于原型. 模型的分类 数学模型是对特定对象,特定目的,根据特有的内在规律,做出一些必要 ...

  3. 备战数学建模(Python)

    备战数学建模(Python) Python之建模规划篇 Python之建模数值逼近篇 Python之建模微分方程篇 由于美国大学生数学建模大赛很快就要开赛了,所以我就打算在这几天内,好好的看看< ...

  4. 数学建模竞赛用python_2018全国中学生数学建模与Python编程夏令营

    全国中学生数学建模与Python编程夏令营招生简章 为什么要学习数学建模? 1)国务院关于新一代人工智能发展<规划>:在中小学阶段设置人工智能相关课程,实施全民智能教育项目,在中小学阶段设 ...

  5. 一个实例用matlab分别画出拟合和插值,数学建模培训之四--拟合与插值专题(hzd).doc...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp高等教育&nbsp>&nbsp微积分 数学建模培训之四--拟合与插值专题(hzd).doc6 ...

  6. 简述数学建模的过程_数学建模入门知识分享(一):什么是数模

    0 一个不是那么标准的Introduction 2019年的美赛结束于1月29日,接近一年多对数学建模的不断学习,终于有了些数模的感触,这个系列就简单从几个方面比较系统的阐述一下数模的基本问题,本人在 ...

  7. 【MATLAB】数学建模入门方法综述

    数学建模入门方法综述

  8. python数学建模大赛_2018全国中学生数学建模与Python编程冬令营

    全国中学生数学建模与Python编程冬令营招生简章 为什么要学习数学建模? 1)国务院关于新一代人工智能发展<规划>:在中小学阶段设置人工智能相关课程,实施全民智能教育项目,在中小学阶段设 ...

  9. 数学建模入门例题python_Python 数学建模极简入门(一)

    我们选择的入门书籍是叶其孝和姜启源翻译的<数学建模>,原著是Frank R. Giordano和William P. Fox编著的<A First Course in Mathema ...

最新文章

  1. biopython安装_BioPython的安装和使用
  2. mysql savepoint 丢失_关于MySQL中savepoint语句使用时所出现的错误
  3. debug assertion failed!报错
  4. 两个排序数组的中位数
  5. PaperNotes(18)-VectorNet- Encoding HD Maps and Agent Dynamics from Vectorized Representation
  6. hikari如何切换数据源_如何使用Spring为HikariCP设置数据源?
  7. 计算ndvi值需要的数据_ENVI中计算植被覆盖指数
  8. Theano 中文文档 0.9 - 4. 要求
  9. 在Python中从头开始模拟退火
  10. 易语言使用超级模块 全局热键
  11. 2021 TCR Asia收官 壳牌捷凯领克东望洋收获大满贯
  12. 【仿真设计】仿真技术在智能制造中的作用;智能制造难点在模型,焦点在仿真;汽车行业CAE研究
  13. vb.net 获取系统图标_「快捷指令」桌面图标任意摆放
  14. 淘宝店铺宝贝批量复制工具
  15. sdk matlab,MATLAB Compiler SDK
  16. 太和二中计算机考试,太和二中网上阅卷系统|翰林金榜太和二中查分系统 网页版_最火手机站...
  17. 使用“已知明文攻击”破解加密
  18. [导入]在水一方的个人网站
  19. 饥荒linux 中文版下载,饥荒哈姆雷特手机版
  20. VMware安装Linux时显示没有网络解决方法(100%解决)

热门文章

  1. 【windows版】TensorRT安装教程
  2. xna开发_Xbox360 XNA游戏开发-Hanselman对话模拟器
  3. 自由完美GhostXP_SP3标准装机版2013.10
  4. 计算机基础a试题,计算机基础试题A
  5. 使用轻量级工具emoji-java处理emoji表情字符
  6. 只看不敲,神也学不好C---------嵌入式经典书籍经验分享
  7. IEEE1588精密时钟(PTP网络时钟服务器)在数字化变电站时钟同步方面的应用
  8. 计算机设备耗材管理,计算机耗材管理办法
  9. 一个程序员给产品经理的话
  10. MongoDB 基本操作语句及实例