与爬虫无关,简单的用python进行科学运算
admin
2023-07-31 01:44:56
0

1.算积分

1.1一重积分
例:如计算半圆的面积,积分公式:

# -*- coding:utf-8 -*-
from scipy import integrate#输入scipy的integrate函数
def fun(x):
    return (1-x*x)**0.5#定义的半圆函数
p,err=integrate.quad(fun,-1,1)#传入函数,积分范围-1到1
print p

1.2二重积分,算体积
例:求上半圆的体积,积分公式:

# -*- coding:utf-8 -*-
from scipy import integrate
def fun(x,y):
    return (1-x*x-y*y)**0.5#对函数的定义
def fun2(x):
    return (1-x*x)**0.5#定义y对x的边界函数
m,err=integrate.dblquad(fun, -1, 1,
                    lambda x:-fun2(x),
                    lambda x:+fun2(x))#对x的取值范围-1到1,对y的取值范围-f(x)到f(x)

print m

2.解非线性方程组

例:求解非线性方程组

# -*- coding:utf-8 -*-
from scipy.optimize import fsolve
from math import sin
def func(x):
    x0,x1,x2=x.tolist()#定义变量是个浮点数
    return[
          5*x1+3,
          4*x0*x0-2*sin(x1*x2),
          x1*x2-1.5
          ]#定义公式
r=fsolve(func,[1,1,1])#1,1,1,指的是传入可能的解,通常1,1,1
print r

3.python绘图


快速绘图:

# -*- coding:utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r\"c:\\windows\\fonts\\simsun.ttc\", size=14)#设置中文字体
x=np.linspace(0,10,100)#生成数列
y=np.sin(x)
z=np.cos(x)
plt.figure(figsize=(7,5))#框的尺寸大小
plt.plot(x,y,label=\'$sin(x)$\')#
plt.plot(x,z,\"r--\",label=\"$cos(x)$\")#r蓝色,虚线
plt.xlabel(u\"时间(s)\",fontproperties=font)#横坐标标签
plt.ylabel(u\"y值\",fontproperties=font)
plt.title(u\"数学\",fontproperties=font)#标题
plt.ylim(-1.2,1.2)#取值范围
plt.legend()#图示
plt.show()

结果显示:


3.1 多轴绘图,各种坐标系的绘制

# -*- coding:utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np

w=np.linspace(0.1,1000, 1000)
p=np.abs(1/(1+0.1j*w))



plt.subplot(221)#m表示是图排成m行,n表示图排成n列,p表示图所在的位置
plt.plot(w,p,linewidth=2)#linewidth线宽=2
plt.ylim(0,1.5)

plt.subplot(222)#m表示是图排成m行,n表示图排成n列,p表示图所在的位置
plt.semilogx(w,p,linewidth=2)#semilogx: x轴为对数刻度,y轴为线性刻度
plt.ylim(0,1.5)

plt.subplot(223)#m表示是图排成m行,n表示图排成n列,p表示图所在的位置
plt.semilogy(w,p,linewidth=2)#y轴为对数坐标系
plt.ylim(0,1.5)

plt.subplot(224)#m表示是图排成m行,n表示图排成n列,p表示图所在的位置
plt.loglog(w,p,linewidth=2)#双对数坐标系
plt.ylim(0,1.5)

plt.show()

结果显示:


3.2绘制条形图

# -*- coding:utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np


from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r\"c:\\windows\\fonts\\simsun.ttc\", size=14)

def autolabel(rects):
    for rect in rects:
        height = rect.get_height()
        plt.text(rect.get_x()+rect.get_width()/2., 1.03*height, \'%s\' % float(height))


x=np.array([1,2,3,4,5])
y=np.array([2,3,4,5,5])

plt.figure()
#bar绘制条形图
rect=plt.bar(x,y,width=0.35,align=\"center\",label=\"people\",yerr=0.000001)
plt.xlabel(u\"年龄\",fontproperties=font)
plt.ylabel(\"num\")
plt.legend()

autolabel(rect)#显示y的数值


plt.show()

结果显示:

3.3绘制散点图

# -*- coding:utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

x=np.random.random(100)#在0到1生成100个随机数
y=np.random.random(100)
plt.figure(figsize=(8,4))
plt.scatter(x, y, c=\"black\")
plt.show()

3.4绘制3D图形

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

th=np.linspace(-4*np.pi, 4*np.pi, 100)
z=np.linspace(-2,2,100)
r=z*2+1
x=r*np.sin(th)
y=r*np.cos(th)

fig=plt.figure()
ax=fig.add_subplot(111,projection=\'3d\')
ax.plot(x,y,z)
plt.show()

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...