数学建模入门-python拟合曲面
前言
找了好久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拟合曲面相关推荐
- 数学建模入门-python实现模糊多属性决策
文章目录 算法简介 调用示例 例题 主函数 代码 结果 具体实现 准备函数 Step1:指标数据的三角形模糊数表达 Step2: 模糊指标矩阵 F 归一化处理 Step3: 构造模糊决策矩阵 Step ...
- 数学建模入门 方法及代码
数学建模入门 数学模型 (1)原型与模型 模型是原型的替代物.(对原型提炼构造.) 模型不是原型,既简单于原型又高于原型. 模型的分类 数学模型是对特定对象,特定目的,根据特有的内在规律,做出一些必要 ...
- 备战数学建模(Python)
备战数学建模(Python) Python之建模规划篇 Python之建模数值逼近篇 Python之建模微分方程篇 由于美国大学生数学建模大赛很快就要开赛了,所以我就打算在这几天内,好好的看看< ...
- 数学建模竞赛用python_2018全国中学生数学建模与Python编程夏令营
全国中学生数学建模与Python编程夏令营招生简章 为什么要学习数学建模? 1)国务院关于新一代人工智能发展<规划>:在中小学阶段设置人工智能相关课程,实施全民智能教育项目,在中小学阶段设 ...
- 一个实例用matlab分别画出拟合和插值,数学建模培训之四--拟合与插值专题(hzd).doc...
您所在位置:网站首页 > 海量文档  > 高等教育 > 微积分 数学建模培训之四--拟合与插值专题(hzd).doc6 ...
- 简述数学建模的过程_数学建模入门知识分享(一):什么是数模
0 一个不是那么标准的Introduction 2019年的美赛结束于1月29日,接近一年多对数学建模的不断学习,终于有了些数模的感触,这个系列就简单从几个方面比较系统的阐述一下数模的基本问题,本人在 ...
- 【MATLAB】数学建模入门方法综述
数学建模入门方法综述
- python数学建模大赛_2018全国中学生数学建模与Python编程冬令营
全国中学生数学建模与Python编程冬令营招生简章 为什么要学习数学建模? 1)国务院关于新一代人工智能发展<规划>:在中小学阶段设置人工智能相关课程,实施全民智能教育项目,在中小学阶段设 ...
- 数学建模入门例题python_Python 数学建模极简入门(一)
我们选择的入门书籍是叶其孝和姜启源翻译的<数学建模>,原著是Frank R. Giordano和William P. Fox编著的<A First Course in Mathema ...
最新文章
- biopython安装_BioPython的安装和使用
- mysql savepoint 丢失_关于MySQL中savepoint语句使用时所出现的错误
- debug assertion failed!报错
- 两个排序数组的中位数
- PaperNotes(18)-VectorNet- Encoding HD Maps and Agent Dynamics from Vectorized Representation
- hikari如何切换数据源_如何使用Spring为HikariCP设置数据源?
- 计算ndvi值需要的数据_ENVI中计算植被覆盖指数
- Theano 中文文档 0.9 - 4. 要求
- 在Python中从头开始模拟退火
- 易语言使用超级模块 全局热键
- 2021 TCR Asia收官 壳牌捷凯领克东望洋收获大满贯
- 【仿真设计】仿真技术在智能制造中的作用;智能制造难点在模型,焦点在仿真;汽车行业CAE研究
- vb.net 获取系统图标_「快捷指令」桌面图标任意摆放
- 淘宝店铺宝贝批量复制工具
- sdk matlab,MATLAB Compiler SDK
- 太和二中计算机考试,太和二中网上阅卷系统|翰林金榜太和二中查分系统 网页版_最火手机站...
- 使用“已知明文攻击”破解加密
- [导入]在水一方的个人网站
- 饥荒linux 中文版下载,饥荒哈姆雷特手机版
- VMware安装Linux时显示没有网络解决方法(100%解决)