假设有一个复杂函数(以一元为例),且是关于自变量的隐函数,即 f(x) = y 无法写出 x = g(y) 的表达式,那么就可以采用图像法求解。

需要用到的库为 numpy 和 matplotlib,在这里以 openSUSE 12.2 x64 为例:

sudo zypper in python-numpy python-matplotlib python-matplotlib-tk

其余 Linux 系统相似。Windows 系统需要去官方网站下载编译好的 exe 文件安装库。

范例代码:

#!usr/bin/env python
# -*- coding: utf-8 -*-from __future__ import division  #除法纠正
import numpy as np
import matplotlib.pyplot as plt# 基本常数定义# 隐函数定义def f(x):y = f(x)return y# 定义自变量如何取值
xx = np.arange(-1,1,0.1)def calc():    #计算并绘图a,b = [],[]  #建立绘制点的坐标列表for x in xx.tolist():    #要将array对象转换成列表对象det = matrix(x)a.append(x)b.append(y)plt.plot(a,b)    #绘制图形plt.show() #显示图形if __name__=='__main__':calc()

运行之后便可以得到曲线了:

左下角有移动、放大、保存图像等等选项,比较方便。

其实 plot 可以直接绘制函数图像,得到非常光滑的曲线,在曲线上取点所得的值也会准确很多;但这里之所以采用描点的方法,是出于对隐函数特殊情况的考虑,比如隐函数中有矩阵的计算的话,使用 numpy.linalg.det() 函数求矩阵的值,就对变量输入有着类型的要求,不能是数组,否则会产生诸如

ValueError: setting an array element with a sequence

这样的错误,我是觉得有点麻烦,而描点相对简单,更改自变量取值的步进长度就可以更改精度了,只要不是要求太精确的一般都可以满足需要。

至于二元函数 z = h(x,y),则同样可以通过绘制 3D 图像来求解。需要用到的是 mlab 这个库。具体可以 Google。

方法还有很多,numpy 和 matplotlib 的强大远远不止于此,但这一次课程设计,好像这样就比较够了。我感觉只要库强大,python 能做的是不输给 matlab 的。

利用描点绘图法求解复杂函数相关推荐

  1. 【精准三点定位求解汇总】利用Python或JavaScript高德地图开放平台实现精准三点定位(经纬度坐标与平面坐标转换法求解、几何绘图法求解)

    [精准三点定位求解汇总]利用Python或JavaScript高德地图开放平台实现精准三点定位(经纬度坐标与平面坐标转换法求解.几何绘图法求解) 众所周知,如果已知三个点的坐标,到一个未知点的距离,则 ...

  2. 模式识别中利用二型势函数法求解非线性分类器的原理以及python代码实现

    前言 在学校的深度学习实验过程中,由于要求实现非线性分类器的势函数实验中给出的例程代码是matlab语言的(ps:自从电脑被偷了以后,新电脑没有装matlab),我便想到用python实现非线性分类器 ...

  3. 5 matlab详解牛顿下山法求解复杂函数代数方程和超越方程

    5.1 题目 5.2 问题背景 在工程和科学技术中,许多问题常归结为求解函数方程: f(x) = 0 如何求方程 f(x) = 0 的根是一个古老的数学问题,5 次以上的代数方程和超越方程一般没有求根 ...

  4. n皇后问题-回溯法求解

    n皇后问题-回溯法求解 1.算法描述 在n×n格的国际象棋上摆放n个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法. n皇后是由八皇后问题演变而来的.该问题 ...

  5. 简单迭代法、牛顿法、弦割法、布洛依登法求解方程或方程组【Matlab】

    利用迭代法求解定非线性方程及方程组,使得误差不超过10^(-8).同时应用迭代加速技术,提交迭代运算效率. 此题需要用到的MATLAB代码及附录: 附录6 二分法作根的隔离 % 附录6 二分法作根的隔 ...

  6. 用计算机绘制函数图像ppt,如何利用描点画函数图像课件制作

    原标题:如何利用描点画函数图像课件制作 函数是中学数学中的一个重要内容,而描点画图不仅是学生在课堂上学习函数的重要方法,也是学生在今后学习课本外其他函数的重要途径.下面介绍描点画函数图像课件制作方法, ...

  7. UA PHYS515 电磁理论II 静电场问题5 用Green函数法求解interior Dirichlet问题的例子

    UA PHYS515 电磁理论II 静电场问题5 用Green函数法求解interior Dirichlet问题的例子 例2 均匀金属空心外壳厚度可忽略的接地球球心位于原点,半径为aaa,用球坐标(r ...

  8. UA PHYS515 电磁理论II 静电场问题4 用Green函数法求解Dirichlet问题

    UA PHYS515 电磁理论II 静电场问题4 用Green函数法求解Dirichlet问题 上一讲我们讨论过Dirichlet问题的积分解: Φ(r⃗)=∫Vρ(r⃗′)G(r⃗,r⃗′)dx′d ...

  9. 弦截法c语言程序,用弦截法求解一元三次方程的根(利用c语言实现)

    用弦截法求解一元三次方程的根(利用c语言实现)0 特别v2013.09.24浏览296次分享举报 #include #include float f(x) { float a,b,c,d; float ...

最新文章

  1. USB无法识别原因分析及解决方案
  2. windows server 2008相关安装
  3. Autodesk Maya 2019中文版
  4. 查看修改MySQL字符集
  5. Spring中拦截/和拦截/*的区别
  6. 【转】XP远程桌面连接2008提示:远程计算机需要网络级别身份验证,而您的计算机不支持该验证 ....
  7. 有监督的神经网络模型
  8. EasyClick 调用javaMD5加密
  9. 东南卫视肌肤食品微商套路解析
  10. MC下载Forge/Optifine不想有广告怎么办
  11. MySQL高可用之PXC详解
  12. 毕设必备:Python采集全球疫情数据并做可视化分析
  13. 在线PS照片处理工具 无需下载怎么编辑图片
  14. 电池革命:固态电池量产还有多远?
  15. 企业微信如何给客户打标签?
  16. MCDF实验_lab0(0)
  17. git报错 failed: The TLS connection was non-properly terminated
  18. 如何登录设备(睿易篇)
  19. 过勇 清华计算机系,16位清华学霸的简历—比你牛的人还比你努力,膝盖已跪碎...
  20. Python时间序列LSTM预测系列教程(6)-单变量

热门文章

  1. vdbench 配置案例及参数说明
  2. Android——Framework之Packamanager深析
  3. 安卓开发实战讲解!首发10万字Android开发实战文档,完整版开放下载
  4. TexStudio提示:无法启动build view xelatex
  5. C++数据结构实验--图的基本操作
  6. Shell攻关之shell基础
  7. Py西游攻关之基础数据类型
  8. Oracle not in 范围超过 1000 报错问题及解决方案
  9. GPON标准简要解析
  10. linux ip route 命令详细解释