欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > Python数值计算(1)

Python数值计算(1)

2024/10/24 12:21:53 来源:https://blog.csdn.net/cdinten/article/details/140700979  浏览:    关键词:Python数值计算(1)

准备总结一下通过Python进行数值计算的环境和一些常见的数值计算工作,包括了线性方程组的求解,单变量方程的数值解,以及多项式插值、逼近理论,微分方程数值求解,数值积分矩阵分解等,所有的数学知识将通过Python工具进行编程计算,一方面作为自己学习数值分析和Python编程的训练和随笔笔记,我坚信只有读懂前人的成功才能够写好文章,也将这个系列作为一个编程实践和大家分享交流,整个系列一切以自己的兴趣为出发,没有太多高深的知识点,但是客观的讲,并不太适合刚入门的读者,需要结合一定的数学知识才能完全看懂,当然如果是大佬的话也没必要深入纠结了。

本次先说一下数值计算的基本语法和库。

1.基本运算

Python中提供基本运算符,常见的加减乘除,唯一需要注意的是除法,整数除法和浮点数除法不一样。

一般除法/,无论参与运算的数是整数还是浮点数,能不能被整除,其结果一定是浮点类型的:

print(type(4/2),type(5/2)) # <class 'float'> <class 'float'>

对于整数除法使用//(两个/),在参与运算的两个数均为整数时,结果也为整数:

print(type(4//2),type(5//2)) # <class 'int'> <class 'int'>

这个时候是类似C语言中两个整数的除法的。

不过,Python中还是会把事情弄得稍微有点复杂,what if……对浮点数使用整除呢?测试一下:

x=5.6//2
print(x,type(x)) # 2.0 <class 'float'>
y=9.5//2.4
print(y,type(y)) # 3.0 <class 'float'>

看来,在这种情况下,可以保证结果为“整数”(注意还是浮点类型)。

求模运算使用% ,对于整数和浮点数都可以使用,其效果是a%b=a-(a//b)*b,但是浮点数由于IEEE 754的表示方式,所以会出现误差:

x=5.6%2
print(x,type(x)) # 1.5999999999999996 <class 'float'>
y=9.5%2.4
print(y,type(y)) # 2.3000000000000003 <class 'float'>

幂函数使用两个乘号(**),例如2**3=8,当然了,也可以支持底和幂都是浮点数的计算,但是,**计算的结果类型,可能是整型,也可能是浮点型:

print(1.2**3.4) # 1.858729691979481
p=2**3
print(p,type(p)) #8 <class 'int'>

2.数学函数

模块math基本上可以理解为和C语言标准math.h提供相同的功能,使用该模块需要import math,其中主要包括了以下的一些常量和函数。

自然对数底数e和圆周率pi,这两个值太常见了:

import math
print(math.e) # 2.718281828459045
print(math.pi) # 3.141592653589793

幂函数和对数函数包括pow,exp和log,log10,使用方式如下:

pow(a,b)=a^{b},exp(x)=e^x, log(x)=lnx,log10(x)=lg(x)

print(math.pow(2,3)) # 8.0,注意这里是一个float类型
print(math.exp(3)) # 20.085536923187668
print(math.log(math.e)) # 1.0
print(math.log10(2)) # 0.3010299956639812

另外就是各种三角函数和反三角函数了,和C语言中使用的方式大同小异,这里就不展开细说了。

3.numpy库

NumPy是一个Python的开源的数值计算扩展,支持多种维度数组与矩阵运算,此外也针对数组运算提供很多数学函数库,可以很方便的计算矩阵的乘法、求逆运算等,具体的使用将在后面逐步介绍。官方网站为:NumPy -

4.Matplotlib绘图库

Matplotlib 是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形,官方网站为:https://matplotlib.org/

仅需要几行代码,便可以生成绘图、直方图、功率谱、条形图、错误图、散点图等,例如绘制一个二次曲线的图形:

import matplotlib.pyplot as plt
import numpy as np
import mathdef f(x):return x**2-2*x-3x=np.arange(-4,4,0.01)
f_hdl=np.vectorize(f)
y=f_hdl(x)
plt.plot(x,y)
plt.grid()
plt.show()

绘制效果如下:

更多的使用方式将在后面逐步学习和介绍。

OK,以上是通过Python进行数值计算的基本语法和工具,后面在相应的使用中逐渐展开学习。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com