Python实现y=a*x**4+b*x**3+c*x**2+d*x+e方程的绘制

y=ax4+bx3+cx2+dx+提取公因式可得到
y=x(x(x(ax+b)+c)+d)+e

1、普通方法:

import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-10,10,50)
a = eval(input("输入a"))
b = eval(input("输入b"))
c = eval(input("输入c"))
d = eval(input("输入d"))
e = eval(input("输入e"))
y=a*x**4+b*x**3+c*x**2+d*x+e
plt.plot(x,y)
plt.xlabel('x')
plt.ylabel('y=x')
plt.show()

这种方法适合简短方程的书写,不适合比较长的方程。

2、使用for循环:

import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-10,10,50)
a = eval(input("输入a"))
y = a

for i in range(4):
       num = eval(input("输入数字"))  //除了a以外,依次输入b c d e
       y = x*y+num
plt.plot(x,y)
plt.xlabel('x')
plt.ylabel('y=x')
plt.show()

3、使用递归

import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-10,10,50)
i = eval(input("输入几次幂"))
a = eval(input("输入a"))

def expression(i):
       if i == 0:
              return a
       else:
              b = eval(input("输入数字"))  //除了a以外,依次输入b c d e
              return expression(i-1)*x+b

y = expression(i)
plt.plot(x,y)
plt.xlabel('x')
plt.ylabel('y=x')
plt.show()

也可以将后两个方法中的输入数字,可以改成一个列表,在循环体中调用改元素即可。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。