Python 函数绘图及函数图像微分与积分


Posted in Python onNovember 20, 2019

前言

在学校太闲,就写了这个程序,可以绘制函数图像,并且可以绘制其导函数图像和不定积分的图像,效果非常不错。

效果图

Python 函数绘图及函数图像微分与积分

说明

1,程序无法绘制复数图像,若函数返回一个复数,将自动取模作为函数值进行绘制。

2,函数的表达式支持Python所有内置函数和math库,time库,random库的函数(要求函数返回的是数字)。

3,@(“g(x)”)和$(“g(x)”)是g(x)的导函数和不定积分的固定格式,其中g(x)是被微函数的表达式或者被积函数的表达式,”g(x)”或者'g(x)'表示它是个表达式而不是数字,若不加引号将无法正常微积分。

4,具体使用方法请看效果图,并理解代码。

代码

# Python 3.x
import turtle
from random import *
from math import *
from time import *

def draw():
  turtle.pencolor(random(), random(), random())
  global n, sf
  n = 0
  sf = 0
  while n > width / (-2 * zoom):
    f = evale(express, n)
    drawf(n, f)
    n -= (1 / zoom)
  n = 0
  sf = 0
  while n < width / (2 * zoom):
    f = evale(express, n)
    drawf(n, f)
    n += (1 / zoom)

def drawf(n, f):
  if n == 0 or isnan(f.real):
    turtle.penup()
  else:
    turtle.pendown()
  if isnan(f.real):
    f = 0
  elif n.imag != 0:
    f = abs(f)
  if hight / -zoom < f.real < hight / zoom:
    turtle.goto(n * zoom, f.real * zoom)

def drawxy():
  turtle.clear()
  turtle.pencolor(0, 0, 0)
  turtle.penup()
  turtle.goto(0, 0)
  turtle.pendown()
  turtle.goto(width / -2, 0)
  turtle.goto(width / 2, 0)
  turtle.goto(0, 0)
  turtle.goto(0, hight / 2)
  turtle.goto(0, hight / -2)

def format(s):
  s = s.replace("^","**")
  s = s.replace("@","differentiate")
  s = s.replace("$","integral")
  return s

def evale(s, n):
  x = n
  try:
    return eval(s)
  except BaseException:
    return nan

def differentiate(s):
  dx = 0.1 / zoom
  f1 = evale(s, n)
  df = evale(s, n + dx) - f1
  return df / dx

def integral(s):
  global sf
  dx = copysign(1 / zoom, n)
  f1 = evale(s, n)
  df = (f1 + evale(s, n + dx)) / 2
  sf = sf + df * dx
  return sf

def rezoom(n):
  global zoom
  zoom = n
  drawxy()
  draw()

zoom = eval(input("zoom = "))
width = 1280
hight = 720

turtle.setup(width, hight)
turtle.hideturtle()
turtle.delay(0)
turtle.pensize(2)
drawxy()

while True:
  express = format(input("f(x) = "))
  draw()

  while True:
    i = input(": ")
    if i == "break":
      break
    else:
      try:
        print(eval(i))
      except BaseException:
        print("Input error.")

注意

这个程序使用Python 3.x,若需要Python 2.x的程序,请自行修改。

以上这篇Python 函数绘图及函数图像微分与积分就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 异常处理总结
Oct 18 Python
对Python3 序列解包详解
Feb 16 Python
Python多进程fork()函数详解
Feb 22 Python
Pythony运维入门之Socket网络编程详解
Apr 15 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
Jul 08 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
Mar 06 Python
用 Django 开发一个 Python Web API的方法步骤
Dec 03 Python
Pandas之缺失数据的实现
Jan 06 Python
python实现简单倒计时功能
Apr 21 Python
详解运行Python的神器Jupyter Notebook
Jun 03 Python
Python中Selenium对Cookie的操作方法
Jul 09 Python
python机器学习创建基于规则聊天机器人过程示例详解
Nov 02 Python
python抓取多种类型的页面方法实例
Nov 20 #Python
Python超越函数积分运算以及绘图实现代码
Nov 20 #Python
python自动化实现登录获取图片验证码功能
Nov 20 #Python
python通过链接抓取网站详解
Nov 20 #Python
python爬虫之遍历单个域名
Nov 20 #Python
python matplotlib 画dataframe的时间序列图实例
Nov 20 #Python
python中Lambda表达式详解
Nov 20 #Python
You might like
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
字母顺序颠倒而单词顺序不变的php代码
2010/08/08 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
2012/08/31 PHP
基于PHP编程注意事项的小结
2013/04/27 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
php判断输入是否是纯数字,英文,汉字的方法
2015/03/05 PHP
php判断对象是派生自哪个类的方法
2015/06/20 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
斜45度寻路实现函数
2009/08/20 Javascript
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
JS+CSS实现一个气泡提示框
2013/08/18 Javascript
Jquery操作Ajax方法小结
2015/11/29 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
2016/07/01 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
微信小程序 支付后台java实现实例
2017/05/09 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
vue filters的使用详解
2018/06/11 Javascript
Vue 表情包输入组件的实现代码
2019/01/21 Javascript
JavaScript面试技巧之数组的一些不low操作
2019/03/22 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
three.js 如何制作魔方
2020/07/31 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
Python实现遍历目录的方法【测试可用】
2017/03/22 Python
Python实现OpenCV的安装与使用示例
2018/03/30 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
Big Green Smile德国网上商店:提供各种天然产品
2018/05/23 全球购物
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
美国最佳选择产品网站:Best Choice Products
2019/05/27 全球购物
草莓网官网:StrawberryNET
2019/08/21 全球购物
Pandora西班牙官方商店:PandoraShop.es
2020/10/05 全球购物
AJAX的优缺点都有什么
2015/08/18 面试题
国培计划培训感言
2014/03/11 职场文书
对祖国的寄语大全
2014/04/11 职场文书