用python实现分段函数_python分段函数如何编写

编程知识 更新时间:2023-04-04 15:58:57

对于学编程的人来说,能将编写的程序封装成函数是一件多么开心的事,Python中也有大量的函数封装,那在Python怎么编写分段式函数呢?下面小编教给大家一些方法。

工具/原料

笔记本电脑(以Win7系统为例);

开发Python的软件(如:PyCharm)。

方法/步骤

1

绘制分段函数:y=4sin(4πt)-sgn(t-0.3)-sgn(0.72-t)

代码:

#!/usr/bin/python

# -*- coding:utf-8 -*-

import numpy as np

import matplotlib.pyplot as plt

#绘制分段函数:y=4sin(4πt)-sgn(t-0.3)-sgn(0.72-t)

def sgn(x):

if x > 0:

return 1

elif x < 0:

return -1

else:

return 0

t = np.arange(0, 1, 0.01)

y = []

for i in t:

y_1 = 4 * np.sin(4 * np.pi * i) - sgn(i - 0.3) - sgn(0.72 - i)

y.append(y_1)

plt.plot(t, y)

plt.xlabel("t")

plt.ylabel("y")

plt.title("Heavsine")

plt.show()

2

使用Matplotlib绘制分段函数:

代码:

#!/usr/bin/python

# -*- coding:utf-8 -*-

import numpy as np

import matplotlib.pyplot as plt

def sgn(value):

if value < 4:

return 20

else:

return 15

plt.figure(figsize=(6, 4))

x = np.linspace(0, 8, 100)

y = np.array([])

for v in x:

y = np.append(y, np.linspace(sgn(v), sgn(v), 1))

l = plt.plot(x, y, 'b', label='type')

plt.legend()

plt.show()

3

绘制三角波形:

#!/usr/bin/python

# -*- coding:utf-8 -*-

import numpy as np

import matplotlib.pyplot as plt

def triangle_wave(x, c, c0, hc):

x = x - int(x) #三角波周期为1 因此只取小数部分进行计算

if x < c0:

return x / c0 * hc

elif x >= c:

return 0.0

else:

return (c-x)/(c-c0)*hc

x = np.linspace(0, 2, 1000)

y = np.array([triangle_wave(t, 0.6, 0.4, 1.0) for t in x])

plt.figure()

plt.plot(x, y)

plt.ylim(-0.2, 1.2) #限制y的范围

plt.show()

END

注意事项

上面实例均是在Python的开发软件PyCharm中编写的,点击运行后是后面的效果,其它的Python运行环境也可以(基于Python3最好);

使用matplotlib模块之前使用pip命令安装一下:pip install matplotlib

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。

举报作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。

展开阅读全部

更多推荐

用python实现分段函数_python分段函数如何编写

本文发布于:2023-04-04 15:58:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/334c625334bc91e96f874910bca9bde9.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:函数   python   _python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 42935文章数
  • 14阅读数
  • 0评论数