搜档网
当前位置:搜档网 › 用MATLAB近似计算pi的报告

用MATLAB近似计算pi的报告

用MATLAB近似计算pi的报告
用MATLAB近似计算pi的报告

2012—2013学年第1学期

合肥学院卓越工程师班

实验报告

课程名称:工程应用数学B

实验名称:π的近似值计算

实验类别:综合性

专业班级: 11级自动化卓越计划班

实验时间: 2012.10.12 组别:第八组

指导教师:王贵霞

一. 小组成员(具体分工)

姓名学号具体分工

陆士明 1105011021 主要程序的编写

关俊宏 1105011042 案例分析与解决方案周健 1 1105011034 对实验结果分析及汇总二. 实验目的

通过计算π的近似值,熟悉matlab中关于级数的运算。

三. 实验内容

1:用级数来求π的近似值;

2:在c语言中求出π的近似值;

四. 实验步骤(具体实施过程)

方案一:用级数来求π的近似值

利用基于arctan x的级数来算π的近似数:

π=16

1

arctan

5

—4

1

arctan

239

=16

()()

21

00

111

4

2121239

k k

k

k k

k k

∞∞

+

==

--

-

++

∑∑

方案二:用级数求π的近似值利用高斯公式:

π=48

1

arctan

18

+32

1

arctan

57

—20

1

arctan

239

计算π的近似值。

方案三:在c语言中求出π的近似值

在visual c++中输入程序,利用拉马努金公式:

1π=

22

9801

()

()44

4!110326390

396

!n

n

n n

n

=

+

∑ 计算π的近似值。通过输入不同的n的值得到不同精确

度的π的值。

五.实验程序(经调试后正确的源程序)

方案一:利用基于arctan x的级数来算 的近似数

>> clear;

>> digits(160);

>> syms x

>> x=sym(0);

>> for k=1:15

k

x=x+sym(-1)^sym((k)-sym(1))/(sym(2)*sym(k)-sym(1))*(sym(16)/sym(5)^(sym(2)*sym(k)-sym(1))-sym(4 )/sym(239)^(sym(2)*sym(k)-sym(1)));

vpa(x,40)

vpa(vpa(pi,60)-x,5)

end

方案二:利用高斯公式

clear;

digits(160);

syms x

x=sym(0);

for k=1:20

k

x=x+sym(-1)^(sym(k)-sym(1))/(sym(2)*sym(k)-sym(1))*(sym(48)/sym(18)^(sym(2)*sym(k)-sym(1))+sym( 32)/sym(57)^(sym(2)*sym(k)-sym(1))-sym(20)/sym(239)^(sym(2)*sym(k)-sym(1)));

vpa(x,40)

vpa(vpa(pi,60)-x,5)

End

方案三:在visual C++ 中利用拉马努金公式

#include

#include

double fun(int n)

{

double s1,s2=1.0,s3=1.0,s4,s;

s1=(2*sqrt(2))/9801;

int i;

for(i=1;i<=n;i++)

{

s2=s2*i;

}

int j;

for(j=1;j<=4*n;j++)

{

s3=s3*j;

}

s4=(1103+26390*n)/pow(396,4*n);

s=s1*s3/pow(s2,4)*s4;

return s;

}

double main()

{

int n;

double s;

printf("请输入所要计算前多少项的和:n\n");

scanf("n=%d",&n);

s=fun(n);

printf("%lf\n",1.0/s);

}

六.实验结果(列举2-3个)

从方案一中可以知道:

当输入不同的k值时可以得到不同精度的π值。k =1

ans =3.183263598326359832635983263598326359833 ans =-0.041671

k =2

ans =3.14059702932606031430453110657922889815 ans =0.00099562

k =3

ans =3.141621029325034425046832517116408069706 ans =-0.000028376

k =4

ans =3.141591772182177295018212291112329795027 ans =8.8141e-7

k =5

ans =3.14159268240439951724025983607357586049 ans =-2.8815e-8

k =6

ans =3.141592652615308608149350747666502755367 ans =9.7448e-10

k =7

ans =3.141592653623554761995504593820311845927 ans =-3.3762e-11

k =8

ans =3.141592653588602228662171260486978513156

ans =1.191e-12

k =9

ans =3.141592653589835847485700672251684395509

ans =-4.2609e-14

k =10

ans =3.141592653589791696917279619620105448141

ans =1.5415e-15

k =11

ans =3.141592653589793294747374857715343543379

ans =-5.6285e-17

k =12

ans =3.141592653589793236391840944671865282509

ans =2.0708e-18

k =13

ans =3.141592653589793238539324592671865282509

ans =-7.6681e-20

k =14

ans =3.141592653589793238459788161264457875102

ans =2.8552e-21

k =15

ans =3.14159265358979323846275020767549235786

ans =-1.0682e-22

从结果看取15项部分和就可以精确到第21位小数。

七.总结(围绕心得体会、创新之处、改进方案等方面)

心得体会:对于π的值我们早已知晓,但是对于这个数值如何得到却不清楚。通过这次学习,我们知道原来计算π的值有如此多的方法,并且知道了级数在一些计算中的作用。通过本次实验,我们知道了运用arctan x、高斯公式和拉马努金公式计算π的近似值,不仅知道了matlab中关于级数的运算,也对以往C++的知识做了一下复习,一举两得啊!

创新之处:对于π的近似计算,本来就有很多方法,本次实验我们也运用了三种计算π近似值的方法。

八.教师评语

教师签名:

年月日

基于matlab的计算器制作

基于MATLAB的计算器制作从入门到高级 项目一、建立GUI框架 1,双击MATLAB图标(本实例使用的是MATLAB R2014),打开软件 2,打开GUI操作界面。有两种方式: a、在命令行窗口输入guide,然后点击回车。 b、先点击新建图标,在选择‘图形用户界面’。 得到如下窗口: 左上方有两个按钮:‘新建GUI’,‘打开现有GUI’。 对于‘新建GUI’:下方的选择框内有你可以选择建立的GUI类型,对于初学者一般选择第一个。下方是用来设置 保存文件位置的。

对于‘打开现有GUI’:初学者可能会在网上下载一些GUI源程序,使用‘打开现有GUI’,再浏览到文件所在位置便可。 3、构建GUI框架: 在选择新建GUI并且确定后,会弹出如下窗口: 在窗口的左边会有很多选项,可以一个个拖动编辑框内; 是不是发现这些选项发挥的作用刚好就是我们平常打开一个网页或者一个软件进行操作时的选择按钮。比较常见的有:按钮、单选按钮、拖动条、弹出式菜单等。看到这里细心地朋友就会发现,MATLAB GUI似乎可以开发出大型

软件哦,只要你有足够的想象力,当你从一个小白进阶到 一个高手之后,你可以做到的。 本次计算器制作只需要用到静态文本(或者是动态文本)用来做显示器,按钮(用来操作)。也可以添加一个面板 用来修饰。 在拖出的选项上双击,会得出该选项的属性栏,比如说 双击一个按钮选项,你会得到: 这个属性框比较复杂,没有必要一个个说清楚(有兴趣的 可以自己研究,其实理解起来也挺简单的) 本次计算器制作,我们只需要知道以下几个:

◆a、BackgroundColor取值为颜色的预定义字符或RGB 数值;缺省(就是默认的意思)值为浅灰色; ◆b、ForegroundColor取值为颜色的预定义字符或RGB 数值,该属性定义控件对象标题字符的颜色;缺省值为黑色; ◆c、String取值为字符串矩阵或块数组,定义控件对 象标题或选项内容; ◆d、FontName取值为控件标题等字体的字库名; ◆e、FontSize取值为数值,控制字体大小; ◆f、Tag取值为字符串,定义了控件的标识值,在任何 程序中都可以通过这个标识值控制该控件对象; ◆g、Style取值可以是pushbutton(缺省值), radiobutton, checkbox, edit, text, slider, frame, popupmenu 或listbox; 项目二、简单加法器的制作 1、框架准备

基于matlab的计算器编程附代码

1.需求分析 本次的实验要求是设计一个计算器,主要功能如下: (1)实现基本数学运算(加减乘除等),而且要能进行混合运算 (2)实现部分函数功能,如求平方根、求倒数等 (3)能实现小数运算 界面与标准计算器界面类似 根据要求以及以前的学习情况,决定使用matlab进行编程。Matlab强大的计算功能以及便捷的GUI设计,可以较为简便的实现所要求的功能。按照要求,数据输入和输出支持小数点,支持四则混合运算,决定使用如下几个数据进行分析:(1+3)*5 Sqrt(4) 1/2 Sin4 用以检验是否可以进行加减乘除四则运算、平方根、倒数、正弦的运算。 2.程序设计 M atlab的程序设计较为简便,用GUI设计出一个计算器的模型,然后系统会自动生成一个框架,在框架中,写入每一个按键对应的程序就可以实现功能。 3.调式分析 编程的过程中遇到的问题不是很多,基本就是找要实现各个功能的子程序,通过上网和去图书馆,加上自己的编写,终于实现了实验要求的功能。但是有一点很重要,matlab不支持中文,所以从路径到文件名必须是全英文的,不然就无法识别。此外,给每个按键命名也是很重要的,不然在生成的程序框架里面,就无法识别各个按键的作用,编写程序的时候也就无法做到一一对应。 4.使用说明 程序的使用比较简单,由于是可视化界面,直接打开matlab,然后建立一个GUI 工程,再打开生成的fig文件,就是一个计算器的界面,直接按照市面上卖的计算器的

方法,按键使用即可。 5.测试结果 计算结果为20 4sqrt=2 Sin4结果为 1/2=0.5 经过计算,这些结果均与实际结果相吻合,计算器的功能实现的较为完好。 6.心得体会 本次试验由于不限制语言,于是计算功能强大,操作简便的matlab变成了首选,matlab的GUI设计,操作是较为简单的,首先建立一个GUI工程,然后用可视化界面,

PI值计算方法1

计算圆周率的一些公式 -|waruqi 发表于 2005-12-8 9:24:00 Machin公式 这个公式由英国天文学教授John Machin于1706年发现。他利用这个公式计算到了100位的圆周率。Machin公式每计算一项可以得到1.4位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上编程实现。 还有很多类似于Machin公式的反正切公式: pi/4=arctg(1/2)+arctg(1/5)+ arctg(1/8) 1844.达塞利 = arctg(1/2)+ arctg(1/3) =2 arctg(1/3)+ arctg(1/7) =12 arctg(1/18)+8 arctg(1/57)-5 arctg(1/239) 在所有这些公式中,Machin公式似乎是最快的了。虽然如此,如果要计算更多的位数,比如几千万位,Machin公式就力不从心了。下面介绍的算法,在PC机上计算大约一天时间,就可以得到圆周率的过亿位的精度。这些算法用程序实现起来比较复杂。因为计算过程中涉及两个大数的乘除运算,要用FFT(Fast Four ier Transform)算法。FFT可以将两个大数的乘除运算时间由O(n2)缩短为O(nl og(n))。 (FFT算法不在此文讲诉)

Ramanujan公式 1914年,印度数学家Srinivasa Ramanujan在他的论文里发表了一系列共1 4条圆周率的计算公式,这是其中之一。这个公式每计算一项可以得到8位的十进制精度。1985年Gosper用这个公式计算到了圆周率的17,500,000位。 1989年,David & Gregory Chudnovsky兄弟将Ramanujan公式改良成为: 这个公式被称为Chudnovsky公式,每计算一项可以得到15位的十进制精度。1994年Chudnovsky兄弟利用这个公式计算到了4,044,000,000位。Chudnovsky 公式的另一个更方便于计算机编程的形式是: AGM(Arithmetic-Geometric Mean)算法 Gauss-Legendre公式: 初值: 重复计算:

matlab实现数值计算功能源程序(个人整理)

matlab数值计算功能 1,基础运算 (1)多项式的创建与表达 将多项式(x-6)(x-3)(x-8)表示为系数形式 a=[6 3 8] % 写成根矢量 pa=poly(a)% 求出系数矢量 ppa=poly2sym(pa,'x') % 表示成符号形式 ezplot(ppa,[-50,50]) 求3介方阵A的特征多项式 a=[6 2 4;7 5 6;1 3 6 ]; pa=poly(a)% 写出系数矢量 ppa=poly2sym(pa) %表示成符号形式 ezplot(ppa,[-50,50]) % 绘图 求x^3-6x^2-72x-27的根。 a=[1,-6,-72,-85]; % 写出多项式系数矢量 r=roots(a) % 求多项式的根 (2)多项式的乘除运算 c=conv(a,b) %乘法 [q,r]=deconv(c,a)% 除法 求a(s)=s^2+2s+3乘以b(s)=4s^2+5s+6的乘积 a=[1 2 3] b=[4 5 6] % 写出系数矢量 c=conv(a,b) c=poly2sym(c,'s') % 写成符号形式的多项式 展开(s^2+2s+2)(s+4)(s+1)并验证结果被(s+4),(s+3)除后的结果。c=conv([1,2,2],conv([1,4],[1,1])) cs=poly2sym(c,'s') c=[1 7 16 18 8] [q1,r1]=deconv(c,[1,4]) [q2,r2]=deconv(c,[1,3]) cc=conv(q2,[1,3]) test=((c-r2)==cc)

其他常用的多项式运算命令 pa=polyval(p,s) % 按数组规则计算给定s时多项式的值 pm=polyvalm(p,s)% 按矩阵规则计算给定s时多项式的值 [r,p,k]=residue(b,a) % 部分分式展开,b,a分别是分子,分母多项式系数矢量。r,p,k分别是留数,极点和值项矢量。 p=poly(x,y,n) % 用n介多项式拟合给定的数据 polyder(p) %多项式微分 x=[1 2 3 4 5]; y=[5.5 43.1 128 290.7 498.4]; p=polyfit(x,y,3) x2=1:0.1:5; y2=polyval(p,x2); plot(x,y,'o',x2,y2) 2,线性代数 1,求解方程的根 t=[0 0.3 0.8 1.1 1.6 2.3]'; y=[0.82 0.72 0.63 0.60 0.55 0.50]'; e=[ones(size(t)) exp(-t)] c=e\y t1=[0:0.1:2.5]'; y1=[ones(size(t1)),exp(-t1)]*c; plot(t1,y1,'b',t,y,'ro') 2,逆矩阵及行列式 inv(a) det(a) pinv(a) 3,矩阵分解(略) 4,数据分析 max(x)求x各列的最大元素 mean(x)求x各列的平均值 median(x)找出x各列的中位元素 min(x)求出x各列的最小元素 S=cumsum(x)求x各列元素累计和 sort(x)使x的各列元素按递增排序。 std(x)求x各列的标准差。 sum(x)求x各列元素之和 prod(x)求x各列元素之积

基于MATLAB的图像处理的基本运算

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: 基于MATLAB的图像处理的基本运算 初始条件: 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) (1)能够对图像亮度和对比度变化调整,并比较结果 (2)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的和旋转操作,并保存,比较几 种插值的效果 (3)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。 (4)对图像加入各种噪声,比较效果。 时间安排: 指导教师签名:年月日 系主任(或责任教师)签名:年月日 目录 摘要.......................................................................................................................... 错误!未定义书签。 1 MATLAB简介 ........................................................................................................ 错误!未定义书签。2图像选择及变换................................................................................................... 错误!未定义书签。 2.1 原始图像选择读取....................................................................................... 错误!未定义书签。 2.1.1 原理图的读入与基本变换 .................................................................... 错误!未定义书签。

基于MATLAB科学计算器

目录 计算器的效果图 ..................................... 错误!未定义书签。 一、GUI设计界面: (3) 1.打开GUI (3) 2.添加按钮 (3) 3.根据按钮的作用及视觉效果做一定的修改: (4) 4.保存、添加功能函数 (4) (1)数字键编写 (4) (2)符号键的编写 (4) (3)运算符“=”的编写 (5) (4)按键“←back”的编写 (5) (5)按键“清空”的编写 (5) (6)按键“退出”的编写 (5) (7)按键“二进制数转十进制数”的编写 (5) (8)按键“十进制数转二进制数”的编写 (5) 二、计算器的使用 (6) 除法运算(÷) (6) 平方运算(^2) (6) 函数cos (∏/3)的计算 (7) 函数arctan (∏/3)的计算 (7) 以2为底的对数的计算(log 2) (8) 十进制数转二进制数的计算(调用dec2bin函数) (8) 二进制数转十进制数的计算(调用bin2dec函数) (8) 三、附各按键的程序源代码 (9) 四、问题和解决方法 (15) 五、心得体会 (15) 参考文献 (15)

计算器的效果图:

一、GUI设计界面: 1.打开GUI 输入Guide 回车或者在工具栏上点击图标打开Guide 窗口: 2.添加按钮

3.根据按钮的作用及视觉效果做一定的修改: 双击按钮(Puch Button)进入按键属性修改显示字符串大小、字体和颜色,然后对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。 4.保存、添加功能函数 把做好的按钮及静态文本框保存后自动弹出Editor的M文本,对然后对相应的pushbutton添加功能函数。以下是相应按钮的功能函数。 (1)数字键编写 在function pushbutton1_Callback(hObject, eventdata, handles)下输入:textString = get(handles.text1,'String'); textString =strcat(textString,'0'); set(handles.text1,'String',textString) 这是使用句柄handles指向对象text1,并以字符串形式来存储数据文本框text1的容,并存储数个“0”, 然后由set(handles.text1,'String','textString'在text1中输出。 同理,分别在function pushbutton2~10_Callback(hObject, eventdata, handles)下给1~9数字按键下编写此类程序。 (2)符号键的编写 function pushbutton12_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'÷'); set(handles.text1,'String',textString) strcat的作用是将两个字符串连接起来,就是在已输入的存储数据textString 后添加“÷”进行运算。 然后执行set(handles.text1,'String',textString)。符号键‘-’、‘*’、‘/’与‘÷’的运算函数类似。“平方运算”,主要是由“^2”功能实现。

计算pi

一、实验目的 探索精确计算π值的方法,并且比较不同方法之间的不同之处和优缺点。掌握数值积分的辛普森公式。 二、问题描述 1. 任务1 1) 用反正切函数的幂级数展开式结合有关公式求π,若要精确到40位、50位数 字,试比较简单公式和Machin 公式所用的项数。 2) 验证公式 111=arctan arctan arctan 4 258π ++ 试试此公式右端做幂级数展开完成任务1所需要的步数。 2. 任务2 用数值积分计算π,分别用梯形法和Simpson 法精确到10位数字,用Simpson 法精确到15位数字。 3. 任务3 用Monte Carlo 法计算π,除了加大随机数,在随机数一定时可重复算若干次后求平均值,看能否求得5位精确数字? 设计方案用计算机模拟Buffon 实验 4. 任务4 利用积分 2 0(1)!!sin !!2 n n xdx n π π-=? ,n 为奇数 推导公式 224422213352121 n n n n π=-+ ……… 用此公式计算π的近似值,效果如何? 5. 任务5 利用学过的知识(或查阅资料),提出其他计算π的方法(先用你学过的知识证明),然后实践这种方法。 对你在实验中应用的计算π的方法进行比较分析。 6. 任务6 e 是一个重要的超越数 1e lim 1)n n n →∞=+( 1111...2!!(1)! e e n n θ =++++++ 试用上述公式或其他方法近似计算e 。

三、问题解法 1. 任务1 1) 根据幂级数展开的相关知识,易知: 24122211(1)1n n x x x x --=-+-+-++……… 因为2 1(arctan )'1x x =+,故可以求得arctan x 的幂级数展开式为: 35 211arctan (1)3521 n n x x x x x n --=-+-+-+-……… 当x=1时, -11111--(-1)4352-1 n n π=+??++? 当叠加了十万次以后得到结果π=3.141582654…只有五位有效数字,可见其精度与效率极低。如果想要精确计算π的数值的话,非常有必要寻找改进以后的方法,这就引出了两个能够提高计算效率的公式—— 简单公式: 11=arctan arctan 4 23 π + Machin 公式: 11=4arctan arctan 45239 π- 对以上两式进行arctan 的幂级数展开可以非常快速的求得π比较精确的数值。下面比较π精确到40位和50位数字时两个公式各需要计算多少项。 用简单公式得到40位有效数字需要叠加62项: 3.141592653589793238462643383279502884197 用简单公式得到50位有效数字需要叠加79项: 3.1415926535897932384626433832795028841971693993751 用Machin 公式得到40位有效数字需要叠加27项: 3.141592653589793238462643383279502884197 用Machin 公式得到50位有效数字需要叠加35项: 3.1415926535897932384626433832795028841971693993751 从上面简单的对比可以看出Machin 公式要优于简单公式,简单公式要优于不用公式的arctan 幂级数展开。在得到相同精度的条件下,Machin 公式所需要的叠加步数要显著少于简单公式,并且在计算精度越高的情况下,优势越明显。道理很简单,因为 Machin 公式计算的收敛速度要显著快于普通公式。简单公式决定收敛速度的是12n ?? ??? ,而Machin 公式决定收敛速度的是15n ?? ???,因为15n ?? ???的收敛速度快于12n ?? ??? ,故Machin 公式计算pi 的时候收敛速度要快于普通公式。所以Machin 公式比普通公式更加精确,并且在计算高精度的时候有更大优势。 2) 根据三角函数公式有:

第06章_MATLAB数值计算_例题源程序汇总

第6章 MATLAB 数值计算 例6.1 求矩阵A 的每行及每列的最大和最小元素,并求整个矩阵的最大和最小元素。 1356 78256323578255631 01-???? -? ?=???? -??A A=[13,-56,78;25,63,-235;78,25,563;1,0,-1]; max(A,[],2) %求每行最大元素 min(A,[],2) %求每行最小元素 max(A) %求每列最大元素 min(A) %求每列最小元素 max(max(A)) %求整个矩阵的最大元素。也可使用命令:max(A(:)) min(min(A)) %求整个矩阵的最小元素。也可使用命令:min(A(:)) 例6.2 求矩阵A 的每行元素的乘积和全部元素的乘积。 A=[1,2,3,4;5,6,7,8;9,10,11,12]; S=prod(A,2) prod(S) %求A 的全部元素的乘积。也可以使用命令prod(A(:)) 例6.3 求向量X =(1!,2!,3!,…,10!)。 X=cumprod(1:10) 例6.4 对二维矩阵x ,从不同维方向求出其标准方差。 x=[4,5,6;1,4,8] %产生一个二维矩阵x y1=std(x,0,1) y2=std(x,1,1) y3=std(x,0,2) y4=std(x,1,2) 例6.5 生成满足正态分布的10000×5随机矩阵,然后求各列元素的均值和标准方差,再求这5列随机数据的相关系数矩阵。 X=randn(10000,5); M=mean(X) D=std(X) R=corrcoef(X)

例6.6 对下列矩阵做各种排序。 185412613713-?? ??=?? ??-?? A A=[1,-8,5;4,12,6;13,7,-13]; sort(A) %对A 的每列按升序排序 -sort(-A,2) %对A 的每行按降序排序 [X,I]=sort(A) %对A 按列排序,并将每个元素所在行号送矩阵I 例6.7 给出概率积分 2 (d x x f x x -? e 的数据表如表6.1所示,用不同的插值方法计算f (0.472)。 x=0.46:0.01:0.49; %给出x ,f(x) f=[0.4846555,0.4937542,0.5027498,0.5116683]; format long interp1(x,f,0.472) %用默认方法,即线性插值方法计算f(x) interp1(x,f,0.472,'nearest') %用最近点插值方法计算f(x) interp1(x,f,0.472,'spline') %用3次样条插值方法计算f(x) interp1(x,f,0.472,'cubic') %用3次多项式插值方法计算f(x) format short 例6.8 某检测参数f 随时间t 的采样结果如表6.2,用数据插值法计算t =2,7,12,17,22,17,32,37,42,47,52,57时的f 值。 T=0:5:65; X=2:5:57;

基于Matlab的简易计算器

工程设计报告 设计题目:基于Matlab的简易计算器 学院: 专业: 班级: 学号: 姓名: 电子邮件: 日期:2015年12 月 成绩: 指导教师:

西安电子科技大学 电子工程学院 工 程设计 任务书 学生姓名指导教师职称 学生学号专业 题目基于Matlab 的简易计算器 任务与要求 任务如下: 利用MATLAB GUI 设计实现一个图形用户界面的计算器程序,实现: A.实现十进制数的加、减、乘、除、简单计算。 B. 科学计算函数,包括正弦、余弦、正切、余切、开方、指数等函数运行。 C. 有清除键,能清除操作。 要求如下: A .熟练掌握MatlabGUI 界面的设计与应用 B .最终计算器能够实现预期的相关功能 开始日期2015年 11月日完成日期2016年1月日 课程设计所在单位 本表格由电子工程学院网络信息中心编辑录入 https://www.sodocs.net/doc/b011067827.html,. …………………………装…………………… … … … … 订 … … … … … … … … … … … …线 … …… …… …… …… …… … …… …… …… …… …… … …

摘要 基于Matlab GUI计算器设计时利用GUI的创建图像用户界面进行计算器设计。设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。 计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递和设置。计算器实现的功能有:数字0~9和小数点的输入显示,平方开方和对数的输入显示。进行四则运算、正弦函数、余弦函数、正切函数以及反正弦函数、反余弦函数、反正切函数的计算等等。最后运行调试,实现基于MatlabGUI的计算器的设计。 关键词:MatlabGUI计算器 Abstracts Based on Matlab GUI calculator design using the user interface to create images of GUI calculator design.Design calculator, mainly considering the ease of use, function calculators calculator interface and function of the common level of design.By adjusting the control and the layout of the text and color, make the interface simple and easy, rational layout, to achieve the effect of friendly interface. Calculator design used to get and set two main function for each attribute value transfer and control Settings.Calculator the functions are: 0 ~ 9, according to input and decimal square root and logarithm of input.Arithmetic, sine function and cosine function, tangent function and the arcsine function,arccosine function, the calculation of the arctangent function and so on.Finally running debugging, implementation design based on Matlab GUI calculator. Keywords: Matlab GUI calculator

PI的计算算法

上机7:文件操作 一、问题: 古人计算pi (3.1415926535 89793 23846……),一般是用割圆法。即用圆的内接或外切正多边形来逼近圆的周长。大约公元前1200年,中国人计算到小数点后1位;Archimedes 在公元前250年用正96边形得到pi 小数点后3位的精度;公元263年,刘徽用正3072边形计算到小数点后5位 ; 公元480年,祖冲之计算到小数点后7位;Ludolph Van Ceulen 在1609年用正262边形得到了35位 精度;1706年,John Machin 计算到小数点后100位。1874年,William Shanks 计算到小数点后707位(527位正确)。这种基于几何的算法计算量大,速度慢,吃力不讨好。 1973年Guilloud & Bouyer 用 CDC 7600计算机计算到1,001,250位;1989年Kanada & Tamurar 用 HITACHI S-820/80计算机计算到1,073,741,799位;1999年Takahashi & Kanada 用 HITACHI SR8000计算机计算到206,158,430,000位;pi 的最新计算纪录由两位日本人Daisuke Takahashi 和Yasumasa Kanada 所创造。他们在日本东京大学的IT 中心,以Gauss-Legendre 算法编写程序,利用一台每秒可执行一万亿次浮点运算的超级计算机,从日本时间1999年9月18日19:00:52起,计算了37小时21分04秒,得到了pi 的 206,158,430,208(3*236)位十进制精度,之后和他们于1999年6月27日以Borwein 四次迭代式计算 了46小时得到的结果相比,发现最后45位小数有差异,因此他们取小数点后206,158,430,000位的p 值为本次计算结果。这一结果打破了他们于1999年4月创造的68,719,470,000位的世界纪录。随着数学的发展,数学家们在进行数学研究时有意无意地发现了许多计算pi 的公式。 Machin 公式 1 15239164arg arctg tg π=- 3 5 7 211()(1)35721 n n x x x x a rctg x x n --=-+-++-- 这个公式由英国天文学教授John Machin 于1706年发现。他利用这个公式计算到了100位的pi 值。Machin 公式每计算一项可以得到1.4位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上编程实现。 Bailey-Borwein-Plouffe 算法 0142 1 1 ()1681848586n n n n n n π∞ ==---++++∑ 这个公式简称BBP 公式,由David Bailey, Peter Borwein 和Simon Plouffe 于1995年共同发表。它打破了传统的p 的算法,可以计算p 的任意第n 位,而不用计算前面的n-1位。这为p 的分布式计算提供了可行性。 因此使用这个公式计算,与计算常数e (2.718282……)的公式非常类似,编程很容易实现。 二、要求: 编写程序计算常数π到小数点后任意位,并将数据写入文件中。 参考程序: #include #include #include #include

数值分析的MATLAB程序

列主元法 function lianzhuyuan(A,b) n=input('请输入n:') %选择阶数A=zeros(n,n); %系数矩阵A b=zeros(n,1); %矩阵b X=zeros(n,1); %解X for i=1:n for j=1:n A(i,j)=(1/(i+j-1)); %生成hilbert矩阵A end b(i,1)=sum(A(i,:)); %生成矩阵b end for i=1:n-1 j=i; top=max(abs(A(i:n,j))); %列主元 k=j; while abs(A(k,j))~=top %列主元所在行 k=k+1; end for z=1:n %交换主元所在行a1=A(i,z); A(i,z)=A(k,z); A(k,z)=a1; end a2=b(i,1); b(i,1)=b(k,1); b(k,1)=a2; for s=i+1:n %消去算法开始m=A(s,j)/A(i,j); %化简为上三角矩阵 A(s,j)=0; for p=i+1:n A(s,p)=A(s,p)-m*A(i,p); end b(s,1)=b(s,1)-m*b(i,1); end end X(n,1)=b(n,1)/A(n,n); %回代开始 for i=n-1:-1:1 s=0; %初始化s for j=i+1:n s=s+A(i,j)*X(j,1);

end X(i,1)=(b(i,1)-s)/A(i,i); end X 欧拉法 clc clear % 欧拉法 p=10; %贝塔的取值 T=10; %t取值的上限 y1=1; %y1的初值 r1=1; %y2的初值 %输入步长h的值 h=input('欧拉法please input number(h=1 0.5 0.25 0.125 0.0625):h=') ; if h>1 or h<0 break end S1=0:T/h; S2=0:T/h; S3=0:T/h; S4=0:T/h; i=1; % 迭代过程 for t=0:h:T Y=(exp(-t)); R=(1/(p-1))*exp(-t)+((p-2)/(p-1))*exp(-p*t); y=y1+h*(-y1); y1=y; r=r1+h*(y1-p*r1); r1=r; S1(i)=Y; S2(i)=R; S3(i)=y; S4(i)=r; i=i+1; end t=[0:h:T]; % 红线为解析解,'x'为数值解 plot(t,S1,'r',t,S3,'x')

Matlab关于数值计算的实现

Matlab关于数值计算的实现 摘要:数值计算(numerical computation computation),主要研究更好的利用计算机更好的进行数值计算,解决各种数学问题。数值分析包括离散傅里叶变换,考虑截断误差,计算误差,函数的敛散性与稳定性等。在数学方面,数值计算的主要研究数值微分与积分,数据的处理与多项式计算,最优化问题,线性方程与非线性方程的求解,常微分方程的数值求解等。同时,数值计算在物理,化学,经济等方面也有研究,本文暂且不表。M atlab软件历经二十多年来的发展,已成为风靡世界的数学三大软件(matlb,Mathematica l,Maple)之一,在数学类科技应用软件中在数值计算方面首屈一指。Matlab以矩阵为数据操作的基本单位,使得矩阵运算十分便捷快速,同时Matlab还提供了海量的计算函数,而且使用可靠地算法进行计算,能使用户在繁复的数学运算中解脱,Matlab还具有方便且完善的图形处理功能,方便绘制二维和三维图形并修饰。

目录 1.数值分析(离散傅里叶变换,考虑截断误差,计算误差,函数 的敛散性与稳定性) 2.数值计算(数值微分与积分,数据的处理与多项式计算, 最优化问题,线性方程与非线性方程的求解,常微分方程的数值求解) 3.图形处理功能(方便绘制二维和三维图形并修饰) 4.总结

1.数据统计与分析 Matlab 可以进行求矩阵的最大最小元素,平均值与中值,关于矩阵元素的求和与求积,累加和与累乘积,标准方程,相关系数,元素排序。现在以求标准方差举例说明Matlab 的实现。 在Matlab 中,实现标准方差计算的函数为std 。对于向量(Y ),std (Y )实现返回一个标准方差,而对于矩阵(A ),std (A )返回一个行向量,该行向量的每个元素对应着矩阵A 各行或各列的标准方差。一般调用std 函数的格式为std (A ,flag ,dim ) Dim 取1或者2分别对应求各列或各行的标准方差,flag 取1时,按照标准方差的计算公式 ∑-=-=N i x x S i N 1 2 1)(11来计算。若flag 取2,则用公式 ∑-==N i x x S i N 1 2 2) (1 进行计算。默认的flag 取值为0,dim 取值为1。课本page143 2. 离散傅里叶变换 离散傅里叶变换广泛应用于信号的分析,光谱和声谱分析、全息技术等各个领域。但直接计算dft 的运算量与变化的长度N 的平方成正比,当N 较大时,计算量太大。随着计算机技术的迅速发展,在计算机上进行离散傅里叶变换计算成为可能。特别是快速傅里叶变换算法的出现,为傅里叶变换的应创造了条件。 (1):傅里叶变换算法的简述。 傅立叶变换是一种分析信号的方法,它可分析信号的成分,也可用这些成分合成信号。许多波形可作为信号的成分,比如正弦波、方波、锯齿波等,傅立叶变换用正弦波作为信号的成分. f(t)是t 的周期函数,如果t 满足狄里赫莱条件:在一个以2T 为周期内f(X)连续或只有有限个第一类间断点,附f (x )单调或可划分成有限个单调区间,则F (x )以2T 为周期的傅里叶级数收敛,和函数S (x )也是以2T 为周期的周期函数,且在这些间断点上,函数是有限值;在一个周期内具有有限个极值点;绝对可积。则有下图①式成立。称为积分运算f(t)的傅立叶变换, ②式的积分运算叫做F(ω)的傅立叶逆变换。F(ω)叫做f(t)的像函数,f(t)叫做 F(ω)的像原函数。F(ω)是f(t)的像。f(t)是F(ω)原像。 ①傅立叶变换 ②傅立叶逆变换

基于MATLAB的图像处理的基本运算

基于MATLAB的图像处理的基本运算

————————————————————————————————作者:————————————————————————————————日期:

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: 基于MATLAB的图像处理的基本运算 初始条件: 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) (1)能够对图像亮度和对比度变化调整,并比较结果 (2)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的和旋转操作,并保存, 比较几种插值的效果 (3)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。 (4)对图像加入各种噪声,比较效果。 时间安排: 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 摘要..................................................................................................................................................... - 2 -1 MATLAB简介 ................................................................................................................................... - 2 -2图像选择及变换.............................................................................................................................. - 3 -2.1 原始图像选择读取.................................................................................................................. - 3 - 2.1.1 原理图的读入与基本变换 ............................................................................................... - 3 - 2.1.2 程序源代码及调试结果 ................................................................................................... - 4 - 2.2 转换图像为灰阶图像.............................................................................................................. - 5 - 3 图像处理及代码程序 ..................................................................................................................... - 6 -3.1 图像亮度对比度调整.............................................................................................................. - 6 - 3.1.1 函数说明及参数选择....................................................................................................... - 6 - 3.1.2 源程序及运行结果........................................................................................................... - 6 -3.2 图像放大和缩小...................................................................................................................... - 7 - 3.2.1 函数说明及参数选择....................................................................................................... - 7 - 3.2.2 源程序及运行结果........................................................................................................... - 7 -3.3 图像任意角度的旋转.............................................................................................................. - 8 - 3.3.1 函数说明及参数旋转....................................................................................................... - 8 - 3.3.2 源程序及运行结果........................................................................................................... - 9 -3.4图像直方图统计和均衡........................................................................................................... - 9 - 3.4.1 函数说明及参数选择....................................................................................................... - 9 - 3.4.2 源程序及运行结果......................................................................................................... - 10 -3.5 图像加入噪声........................................................................................................................ - 11 - 3.5.1 函数说明及参数选择..................................................................................................... - 11 - 3.5.2 源程序及运行结果......................................................................................................... - 12 - 4 图像处理结果比较分析 ............................................................................................................... - 14 -4.1 调整对比度和亮度后图像比较 ............................................................................................ - 14 -4.2 图像放大缩小及旋转后比较 ................................................................................................ - 14 -4.3 进行直方图均衡后图像比较 ................................................................................................ - 1 5 -4.4加入各种噪声后图像比较 ..................................................................................................... - 1 6 -5感悟体会小结................................................................................................................................ - 16 -参考文献........................................................................................................................................... - 1 7 -

相关主题