我是靠谱客的博主 有魅力小虾米,最近开发中收集的这篇文章主要介绍用Python画二元高次方程普通的画图技巧二元低次方程二元高次方程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天在做吴恩达机器学习 ex2 时,偶尔用Python画了个二元高次方程。找了好久也没有教程,故写一下大概的思路。

用python画图的主要思想:

  1. x设为一些连续的点,
  2. 通过y = f(x)将其算出来,
  3. 将这些点用matplotlib描出来

普通的画图技巧

如果要画 y1 = x^2 以及
y2 = x^3
可以参考以下代码

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-1,1,0.01)
y1 = np.power(x,2)
y2 = np.power(x,3)
fig,ax = plt.subplots(figsize=(12,8))
ax.scatter(x,y1,c='r')
ax.plot(x,y2,'b')
plt.show()

在这里插入图片描述
为什么两者看起来粗细不同呢?因为实际上y1画的是散点图,y2画的是正常的线形图。也就是说,y1的"线"是通过点拼出来的。

二元低次方程

简单的二元低次方程可以通过数学计算转化,然后用普通方法画出来,比如:
x + 2y = 1 变为 y = (1-x)/2
这样即可画出

二元高次方程

今天碰到的是一个二元高次方程,但其中含有x,y项。这种形式的二元高次方程,可以通过画散点图的方式画出来。
如要画x + y + x2+y2 = 1:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
X = np.arange(-10,10,0.01)
Y = np.arange(-10,10,0.01)
cordinates = [(x, y) for x in X for y in Y]
x_cord, y_cord = zip(*cordinates)
data = pd.DataFrame({"x":x_cord,"y":y_cord})
inner = data.x + data.y + np.power(data.x,2) + np.power(data.y,2) -1
data1 = data[np.abs(inner) < 2*10**-3]
fig,ax = plt.subplots()
ax.scatter(data1.x,data1.y,c='r',s = 20)
plt.show()

在这里插入图片描述

以上代码的主要思想是,把要画的方程当作筛选条件,留下符合要求(方程)的点,将其画为散点图。由于编程精度问题,没有让约束为x + y + x2+y2 -1 = 0,而是x + y + x2+y2 -1 < 0.002
可以明显看出这两个‘园’是由点组成的。

最后

以上就是有魅力小虾米为你收集整理的用Python画二元高次方程普通的画图技巧二元低次方程二元高次方程的全部内容,希望文章能够帮你解决用Python画二元高次方程普通的画图技巧二元低次方程二元高次方程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部