需要给出方程的初始条件,假设方程具有初速度 c ,且无形状的改变。则初始条件可以表示为 ,即时间为0时刻时位置为 x 处点的速度。因此,方程可以表示为:
利用时间导数的正向差分格式和空间导数的反向差分格式,对该方程进行了空间和时间的离散。考虑离散化空间坐标x点我们索引从i= 0 至N,以Δt为离散时间间隔的大小。
由导数的定义可知,:
方程离散后:
其中n和n+1是时间上连续的两个步骤,而i和i-1是离散的x坐标的两个相邻点。如果有给定的初始条件,那么这个离散化过程中唯一未知的就是 。即:
需要给出计算域,对于一位空间来说就是x的坐标范围,定义 .定义nx变量作为密度值,dx为计算网格点的距离。nt为时间步长,dt则为每步计算时间。
给出 的初始条件
[ 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
图像如下:
#! /usr/bin/python
# -*- coding: gb2312 -*-
import sys
import nltk
from nltk.corpus import brown
class stdoutToStr:
def __init__(self):
self.s = ''
def write(self, buf):
self.s += buf
_out = sys.stdout
out = stdoutToStr()
sys.stdout = out
days = ['Monday','Tuesday','Wednesday','Yhursday','Friday','Saturday','Sunday']
cfd =nltk.ConditionalFreqDist(
(genre,word)
for genre in ['news','romance']
for word in brown.words(categories=genre)
)
stdout=cfd.tabulate(samples=days)
sys.stdout = _out
a= out.s
for i in a.split('\n'):
b= i.split(' ')
while '' in b:
b.remove('')
if a.index(i)==0:
b.insert(0,' ')
for j in b:
print j.center(10," "),
print '\n'
此问题 1.要输出重定向 到cfd.tabulate(samples=days) 这个输出到变量
使变量a得到
''' Monday Tuesday Wednesday Yhursday Friday Saturday Sunday
news 54 43 22 0 41 33 51
romance 2 3 3 0 3 4 5 '''
2. 输出对齐 print j.center(10," "),
格式不满意 可以用以下参考做调整
word="version3.0"
print word.center(20) #居中输出,总共20个字符,word左右两侧各输出5个空格
print word.center(20,"*") #居中输出,总共20个字符,word左右两侧各输出5个"*"号
print word.ljust(0) #左对齐输出
print word.rjust(20) #右对齐输出,总共20个字符,word占10个字符,因此左侧填充一个空格再输出word
print "0s"%word #类似于word.rjust(30
3.附上程序截图
LaTeX、Paraview、Adobe illustrator、Tecplot、ggplot2等都是比高级一点的画图软件
1、LaTeX,它是一种基于TEX的排版系统。利用它能在短时间内生成很多具有书籍质量的印刷品,尤其是生成复杂表格和数学公式。因此它非常适用于生成高印刷质量的科技和数学类文档。
Tikz是LaTex原生支持的图包来,可以画论文中的插图。用TikZ画可以做到完美,特别是与LaTeX文档的整体交互,比用一般绘图软件好得多。二维图、三维图、流程图、示意图都能实现。同样的,缺点也是难度较高,入门需花时间。
2、Paraview除了可以画最基本的曲线曲面图等,也提供和CAD、CFD软件的接口,可以用于其它分析软件的后处理工作。
Paraview支持多种数据格式和显示方式,目前包括网格绘制,面绘制,体绘制等方法。可视化包含:数据读取,数据过滤和数据渲染三个基本的步骤。Paraview提供开源可编程。缺点是难度较高,入门需花时间。
3、Adobe illustrator是一种应用于出版、多媒体和在线图像的工业标准矢量插画的软件。
作为一款非常好的图片处理工具,Adobe Illustrator广泛应用于印刷出版、海报书籍排版、专业插画、多媒体图像处理和互联网页面的制作等,也可以为线稿提供较高的精度和控制,适合生产任何小型设计到大型的复杂项目。
4、Tecplot从简单的二维曲线曲面图,到复杂的三维动态图都可以实现。它的特色在于可快捷的将大量数据资料转化为容易理解的图片,例如等高线、向量图、网格图、剖面图、流线图等等。
它提供和CAD、CFD软件的接口,可以用于其它分析软件(如有限元、计算流体动力学等)的后处理工作。
5、ggplot2是R语言的一个包,最擅长统计数据可视化。ggplot2按图层作图,其核心理念是将绘图与数据分离。缺点是ggplot2功能没有Python或者Matlab全面,不过人家就是在统计方面做的最好最专业,其它的功能忽略掉好像也无所谓。