解决python中的幂函数、指数函数问题
最近在调代码,碰到幂函数、指数函数,总是提示
ValueError: math domain error
ValueError: negative number cannot be raised to a fractional power
这些异常、错误,
发现里边有很多细节问题:
python中,想要表示a的b次方时,有两种方法:
1,math.pow()这个内置函数
2,**运算符
这两种方法效果是一样的,但是当
b为分数,a为负数:当幂运算符的底数为负数、幂为分数时,Python会抛出ValueError: negative number cannot be raised to a fractional power异常,
这时有两种方法可以解决此问题:
1,底数a正负均可不影响你的算法的话,加一个绝对值就行了即abs(a);
2,如果底数a必须是正、或必须是负的话,需要采用复数进行运算。因此凡是遇到幂为分数的项,都将底数用complex()转换为复数。
以上这篇解决python中的幂函数、指数函数问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
时间: 2019-11-24
exp()方法返回指数x: ex. 语法 以下是exp()方法的语法: import math math.exp( x ) 注意:此函数是无法直接访问的,所以我们需要导入math模块,然后需要用math的静态对象来调用这个函数. 参数 x -- 这是一个数值表达式 返回值 此方法返回指数x: ex. 例子 下面的例子显示了exp()方法的使用. #!/usr/bin/python import math # This will import math module print "math.exp
1.一次二次多项式拟合 一次二次比较简单,直接使用numpy中的函数即可,polyfit(x, y, degree). 2.指数幂数拟合curve_fit 使用scipy.optimize 中的curve_fit,幂数拟合例子如下: from scipy.optimize import curve_fit import matplotlib.pyplot as plt import numpy as np def func(x, a, b, c): return a * np.exp(-b *
这里用Python逼近函数y = exp(x);同样使用泰勒函数去逼近: exp(x) = 1 + x + (x)^2/(2!) + .. + (x)^n/(n!) + ... #!/usr/bin/python # -*- coding:utf-8 -*- import numpy as np import math import matplotlib as mpl import matplotlib.pyplot as plt def calc_e_small(x): n = 10 f =
如下所示: 两个函数:Basemap.drawparallels ##纬度 Basemap.drawmeridians ##经度 from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as plt import numpy as np # setup Lambert Conformal basemap. m = Basemap(width=12000000,height=9000000,projection='lcc'
1.进入工作目录文件夹D:\Python\jupyterWorkplace 如何截取鼠标右键的选项栏: qq截图的拓展,在登陆qq的前提下同时按住ctrl+alt+shift, 然后选择右键菜单(或者下拉菜单)也可以哦! 这个时候松开shift ,ctrl+alt上的两个手指不要松开, 同时用另外一个手指按住A即可 2.键盘Shift+鼠标右键->在此处打开命令窗口-> 在弹出的命令窗口中输入:Jupyter Notebook 进入shell: 3.浏览器会自动打开一个页面,new里面选择Py
输入半径,计算圆的周长.面积.球体体积,并画出这个圆.拖动条.输入框和图像控件的数据保持一致! Fedora下测试通过 复制代码 代码如下: #https://github.com/RobberPhex/GTK-Example-CalcAreafrom gi.repository import Gtk, Gdk, GdkPixbuffrom PIL import Image, ImageDrawfrom io import BytesIOfrom math import pi class Mod
本文实例为大家分享了python使用插值法画出平滑曲线的具体代码,供大家参考,具体内容如下 实现所需的库 numpy.scipy.matplotlib 实现所需的方法 插值 nearest:最邻近插值法 zero:阶梯插值 slinear:线性插值 quadratic.cubic:2.3阶B样条曲线插值 拟合和插值的区别 简单来说,插值就是根据原有数据进行填充,最后生成的曲线一定过原有点. 拟合是通过原有数据,调整曲线系数,使得曲线与已知点集的差别(最小二乘)最小,最后生成的曲线不一定经过原有点
1.正态分布简介 正态分布(normal distribtution)又叫做高斯分布(Gaussian distribution),是一个非常重要也非常常见的连续概率分布.正态分布大家也都非常熟悉,下面做一些简单的介绍. 假设随机变量XX服从一个位置参数为μμ.尺度参数为σσ的正态分布,则可以记为: 而概率密度函数为 2.在python中画正态分布直方图 先直接上代码 import numpy as np import matplotlib.mlab as mlab import matplot
我就废话不多说了,直接上代码吧! #2.14 from turtle import * from time import sleep def go_to(x, y): up() goto(x, y) down() def head(x,y,r): go_to(x,y) speed(1) circle(r) leg(x,y) def leg(x,y): right(90) forward(180) right(30) forward(100) left(120) go_to(x,y-180) fo
以load_breast_cancer数据集为例,模型细节不重要,重点是画AUC的代码. 直接上代码: from sklearn.datasets import load_breast_cancer from sklearn import metrics from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split import pylab as p
之前看到过很多头条,说哪国某人坚持了多少年自学使用excel画画,效果十分惊艳. 对于他们的耐心我十分敬佩. 但是作为一个程序员,自然也得挑战一下自己. 这种需求,我们十分钟就可以完成! 基本思路 实现这个需求的基本思路是读取这张图片每一个像素的色彩值,然后给excel里的每一个单元格填充上颜色.所以主要用到的是PIL.openpyxl这两个库. PIL使用 PIL是Python里面做图像处理的时候十分常用的一个库,功能也是十分的强大,这里只需要用到PIL里一小部分的功能. from PIL i
获取数据集,并画图代码如下: import numpy as np from sklearn.datasets import make_moons import matplotlib.pyplot as plt # 手动生成一个随机的平面点分布,并画出来 np.random.seed(0) X, y = make_moons(200, noise=0.20) plt.scatter(X[:,0], X[:,1], s=40, c=y, cmap=plt.cm.Spectral) plt.show