资讯专栏INFORMATION COLUMN

与爬虫无关,简单的用python进行科学运算

CollinPeng / 2815人阅读

摘要:算积分一重积分例如计算半圆的面积,积分公式输入的函数定义的半圆函数传入函数,积分范围到二重积分,算体积例求上半圆的体积,积分公式对函数的定义定义对的边界函数对的取值范围到,对的取值范围到解非线性方程组

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:windowsfontssimsun.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:windowsfontssimsun.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()

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37671.html

相关文章

  • SegmentFault 技术周刊 Vol.30 - 学习 Python 来做一些神奇好玩的事情吧

    摘要:学习笔记七数学形态学关注的是图像中的形状,它提供了一些方法用于检测形状和改变形状。学习笔记十一尺度不变特征变换,简称是图像局部特征提取的现代方法基于区域图像块的分析。本文的目的是简明扼要地说明的编码机制,并给出一些建议。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 开始之前,我们先来看这样一个提问: pyth...

    lifesimple 评论0 收藏0
  • 爬虫不得不学之 JavaScript 入门篇

    摘要:为数值固定的表示法,用来表示整数和浮点数的。无论你写何种进制,它的存储还是以二进制来存储的,所以这样就弄成了浮点数的存储精确度,浮点数只能精确到位小数。关系运算符关系运算符有和。赋值运算符赋值运算符有六个。 现在的爬虫越来越难了,不再和之前的那样,随便抓个包就可以找到相关的 url ,然后 post 一下或者 get 一下数据就出来了。还有一个可能就是可能你以前用来学习的爬虫网站太简单...

    tracymac7 评论0 收藏0
  • Python从入门到转行

    摘要:学了大半年之后成功转行做前端了。包含大量其他神经网络库中的包装器和抽象,其中最值得注意的是,其中也包含一些机器学习的实用模块。它是轻量级可扩展的神经网络工具包,同时拥有友好的界面,可供机器学习的训练和预测使用。 题记:大二的时候发现人生苦短,所以信了拍神,开始学Python。学了大半年之后成功转行做前端了。来写个教程帮助大家入门Python。 Python零基础入门 零基础入门就得从最...

    ingood 评论0 收藏0
  • 网络爬虫介绍

    摘要:什么是爬虫网络爬虫也叫网络蜘蛛,是一种自动化浏览网络的程序,或者说是一种网络机器人。 什么是爬虫 网络爬虫也叫网络蜘蛛,是一种自动化浏览网络的程序,或者说是一种网络机器人。它们被广泛用于互联网搜索引擎或其他类似网站,以获取或更新这些网站的内容和检索方式。它们可以自动采集所有其能够访问到的页面内容,以供搜索引擎做进一步处理(分检整理下载的页面),而使得用户能更快的检索到他们需要的信息。简...

    sf190404 评论0 收藏0

发表评论

0条评论

CollinPeng

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<