(x^2+9/4*y^2+z^2-1)^3-x^2*z^3-9/80*y^2*z^3==0
2条回答 默认 最新
- threenewbee 2019-10-03 09:16关注
你有三个变量,可以在一定区域内,以某个间隔精度,遍历x y,利用根据方程算出z,这个方程式你可以自己转换下。
然后调用Matplotlib绘三维图
https://blog.csdn.net/jasonzhoujx/article/details/81780774补充一下,数值算法理论上可行,代码如下
import numpy as np import matplotlib.pyplot as plt import math import mpl_toolkits.mplot3d import sympy as sympy def solvez(x, y): z = sympy.symbols('z') result = 0.0 try: result = float(sympy.solve((x**2+9/4*y**2+z**2-1)**3-x**2*z**3-9/80*y**2*z**3, z)[0].evalf()) except TypeError as e: pass return result fig = plt.figure() #定义新的三维坐标轴 ax3 = plt.axes(projection='3d') #定义三维数据 xx = np.arange(-2,2,0.1) yy = np.arange(-2,2,0.1) X, Y = np.meshgrid(xx, yy) Z = np.zeros((len(X), len(Y)), dtype=float) for i in range(0,len(X)): for j in range(0,len(Y)): Z[i][j] = solvez(X[i][j],Y[i][j]) #作图 ax3.plot_surface(X,Y,Z,cmap='rainbow') #ax3.contour(X,Y,Z, zdim='z',offset=-2,cmap='rainbow) #等高线图,要设置offset,为Z的最小值 plt.show()
实际上比较困难,在于没有办法知道解的可行范围,算出来区域之外无解都是复数解
解决 无用评论 打赏 举报
悬赏问题
- ¥50 如何用脚本实现输入法的热键设置
- ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致
- ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
- ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
- ¥15 谁有desed数据集呀
- ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
- ¥15 关于#hadoop#的问题
- ¥15 (标签-Python|关键词-socket)