利用描点绘图法求解复杂函数
假设有一个复杂函数(以一元为例),且是关于自变量的隐函数,即 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 的。
利用描点绘图法求解复杂函数相关推荐
- 【精准三点定位求解汇总】利用Python或JavaScript高德地图开放平台实现精准三点定位(经纬度坐标与平面坐标转换法求解、几何绘图法求解)
[精准三点定位求解汇总]利用Python或JavaScript高德地图开放平台实现精准三点定位(经纬度坐标与平面坐标转换法求解.几何绘图法求解) 众所周知,如果已知三个点的坐标,到一个未知点的距离,则 ...
- 模式识别中利用二型势函数法求解非线性分类器的原理以及python代码实现
前言 在学校的深度学习实验过程中,由于要求实现非线性分类器的势函数实验中给出的例程代码是matlab语言的(ps:自从电脑被偷了以后,新电脑没有装matlab),我便想到用python实现非线性分类器 ...
- 5 matlab详解牛顿下山法求解复杂函数代数方程和超越方程
5.1 题目 5.2 问题背景 在工程和科学技术中,许多问题常归结为求解函数方程: f(x) = 0 如何求方程 f(x) = 0 的根是一个古老的数学问题,5 次以上的代数方程和超越方程一般没有求根 ...
- n皇后问题-回溯法求解
n皇后问题-回溯法求解 1.算法描述 在n×n格的国际象棋上摆放n个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法. n皇后是由八皇后问题演变而来的.该问题 ...
- 简单迭代法、牛顿法、弦割法、布洛依登法求解方程或方程组【Matlab】
利用迭代法求解定非线性方程及方程组,使得误差不超过10^(-8).同时应用迭代加速技术,提交迭代运算效率. 此题需要用到的MATLAB代码及附录: 附录6 二分法作根的隔离 % 附录6 二分法作根的隔 ...
- 用计算机绘制函数图像ppt,如何利用描点画函数图像课件制作
原标题:如何利用描点画函数图像课件制作 函数是中学数学中的一个重要内容,而描点画图不仅是学生在课堂上学习函数的重要方法,也是学生在今后学习课本外其他函数的重要途径.下面介绍描点画函数图像课件制作方法, ...
- UA PHYS515 电磁理论II 静电场问题5 用Green函数法求解interior Dirichlet问题的例子
UA PHYS515 电磁理论II 静电场问题5 用Green函数法求解interior Dirichlet问题的例子 例2 均匀金属空心外壳厚度可忽略的接地球球心位于原点,半径为aaa,用球坐标(r ...
- UA PHYS515 电磁理论II 静电场问题4 用Green函数法求解Dirichlet问题
UA PHYS515 电磁理论II 静电场问题4 用Green函数法求解Dirichlet问题 上一讲我们讨论过Dirichlet问题的积分解: Φ(r⃗)=∫Vρ(r⃗′)G(r⃗,r⃗′)dx′d ...
- 弦截法c语言程序,用弦截法求解一元三次方程的根(利用c语言实现)
用弦截法求解一元三次方程的根(利用c语言实现)0 特别v2013.09.24浏览296次分享举报 #include #include float f(x) { float a,b,c,d; float ...
最新文章
- USB无法识别原因分析及解决方案
- windows server 2008相关安装
- Autodesk Maya 2019中文版
- 查看修改MySQL字符集
- Spring中拦截/和拦截/*的区别
- 【转】XP远程桌面连接2008提示:远程计算机需要网络级别身份验证,而您的计算机不支持该验证 ....
- 有监督的神经网络模型
- EasyClick 调用javaMD5加密
- 东南卫视肌肤食品微商套路解析
- MC下载Forge/Optifine不想有广告怎么办
- MySQL高可用之PXC详解
- 毕设必备:Python采集全球疫情数据并做可视化分析
- 在线PS照片处理工具 无需下载怎么编辑图片
- 电池革命:固态电池量产还有多远?
- 企业微信如何给客户打标签?
- MCDF实验_lab0(0)
- git报错 failed: The TLS connection was non-properly terminated
- 如何登录设备(睿易篇)
- 过勇 清华计算机系,16位清华学霸的简历—比你牛的人还比你努力,膝盖已跪碎...
- Python时间序列LSTM预测系列教程(6)-单变量