博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python数值计算:一 使用Pylab绘图(1)
阅读量:6252 次
发布时间:2019-06-22

本文共 1375 字,大约阅读时间需要 4 分钟。

Pylab的使用

学习使用Python进行科学计算,然而很难找到简单实用,又循序渐进的例子。正好手边有一本,里面的例子非常清晰地解释了Matlab在物理学中的应用。重新使用Python实现这些例子,学习了Python,又学习了科学计算思想,一举两得。

1.1Pylab简介

是和提供的一个模块,提供了类似Matlab的语法,在启动Ipython时可以使用--pylab启动,它相当于导入了如下库:

import numpyimport matplotlibfrom matplotlib import pylab, mlab, pyplotnp = numpyplt = pyplotfrom IPython.display import displayfrom IPython.core.pylabtools import figsize, getfigsfrom pylab import *from numpy import *

1.2简单应用

1.2.1画圆

\(cos^2x+sin^2x = 1\)

n = 10 #生成50个元素的行向量phi = linspace(0, 2*pi) # 此时绘制x,y可以得到一个圆x = cos(phi)y = sin(phi)for i in range(1,n):    for j in range(1,i):        #(绘图 1)        plot(x + 2 * j, y - 2 * j)

结果图

如果将绘图1指令改为:

plot(x + 2*j -i, y - sqrt(3) * i)

可以绘制出交错堆叠。

交错堆叠

1.2.2不定循环(indefinite loop)与超越方程(transcentental equation)

在数学与物理中十分常见,然而并没有确定的解析解法。需要使用数值解或图形解。

在黑体辐射中,峰值波长与温度成反比,比例系数为维恩常数()。根据普朗克公式求维恩常数时,产生如下的超越方程:

\[x+5(e^{-x}-1)=0\]

超越方程的解也应该是下面一条直线和指数函数曲线的交点:

\[y=x , y = 5[1-e^{(-x)}]\]

对于数值计算而言,可以使用求解以上方程。

x0 = 1 #iteration methodxx = []while True:    x = 5 * (1 - exp( - x0))    xx.append(x)    if len(xx) > 1000:        break    if abs(x0 - x) < 0.0001:        break    x0 = xsubplot(211)#绘图部分,首先绘制iteration method求得的解plot(xx,"x-")grid()text(x0, x0, str(x0))subplot(212)#然后绘制图形解法的解nx = arange(0,8,0.01)plot(nx, nx, nx, 5*(1 - exp( -nx)), "--")plot(x0, x0, "o")text(x0, x0, str(x0))grid()show()

超越方程

转载于:https://www.cnblogs.com/abcat/p/3616627.html

你可能感兴趣的文章
没有发布过产品的程序员不知道什么是真正的软件
查看>>
图论 - Travel
查看>>
服务器设计笔记(3)-----消息队列
查看>>
吐槽一下wp toolkit ToggleSwitch控件
查看>>
Ubuntu16.04上Docker的安装及基本用法
查看>>
步步为营 C# 技术漫谈 四、垃圾回收机制(GC)
查看>>
WPF基础之体系结构
查看>>
Linux源码-等待队列注释
查看>>
[转] .htaccess实现www 与没有www之间的重定向
查看>>
c实现统计字符中单词的个数,单词之间用空格分隔开。
查看>>
JavaScript(三) - 精简
查看>>
BZOJ2064:分裂——题解
查看>>
poj 1797 Heavy Transportation(最短路径Dijkdtra)
查看>>
[转] 拉格朗日对偶
查看>>
WPF 在事件中绑定命令
查看>>
《工作DNA》读后感
查看>>
基于WinDbg的内存泄漏分析
查看>>
《小故事》
查看>>
气象预警采集及推送
查看>>
【SSH网上商城项目实战29】使用JsChart技术在后台显示商品销售报表
查看>>