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()
也可以将后两个方法中的输入数字,可以改成一个列表,在循环体中调用改元素即可。