计算方法上机实验报告-MATLAB

合集下载

Matlab上机实验报告

Matlab上机实验报告

程序清单及运行结果:>> syms x a=int((x^4*(1-x)^4)/(1+x^2),0,1) a= 22/7 - pi >> f=inline('x.^4.*(1-x).^4./(1+x.*x)','x') f= Inline function: f(x) = x.^4.*(1-x).^4./(1+x.*x) >> quad(f,0,1) ans = 0.0013 2.误差函数 erf(x)的定义是: Erf(x)=2/(pi^0.5)
ezplot(y)
(exp(1) + exp(x))/x 50 40 30 20 10 0 -10 -20 -30 -6 -4 -2 0 x 2 4 6
Matlab11116010224
上机时间:2013-5-14
1 用符号工具箱计算:
1 0
(x 4 ∗ (1 − x)^4)/(1 + x^2)dx
这个积分能用数值积分计算吗?如果能,应该如何做? 方法:符号计算和数值计算。 程序流程图: 新建一个指令窗口 编辑指令 将指令复制到操作窗口 得出结果
0.6778 ans = 0.7421 ans = 0.7969 ans = 0.8427
3.求微分方程 xy’+y-e^x=0 在初值条件 y1=2e 下的特接,并画出解函数的图形(解
析解与数值解) 程序流程图: 新建一个指令窗口 编辑指令 将指令复制到操作窗口 得出结果
程序按及运行结果: y=dsolve('x*Dy+y-exp(x)=0','y(1)=2*exp(1)','x') y= (exp(1) + exp(x))/x

MATLAB语言上机实习报告

MATLAB语言上机实习报告

MATLAB语⾔上机实习报告课程名称:测绘程序设计课程性质:必修测绘程序设计实习报告学院:测绘⼯程学院班级:1220501实习地点:核⼯楼410班级组号:学⽣姓名:赵建新学⽣学号:201220050163指导教师:王建强⽇期:年⽉⽇⽬录实验1 matlab软件练习 (2)实验2 matlab解算⽅程 (5)实验3 matlab绘图 (8)实验4 ⾓度弧度互换 (12)实验5 坐标正反算 (15)实验6 ⽔准⽹计算 (17)实验7 导线⽹计算 (20)实验8 坐标转换 (23)实验⼼得 (26)实验1 matlab软件练习[实验项⽬]:MATLAB软件练习。

[实验⽬的]:熟悉对MATLAB的操作。

[实验仪器设备]:计算机及MATLAB R2009a程序设计语⾔。

[实验原理]:Matlab主要应⽤于数学计算、系统建模与仿真、数学分析与可视化、科学与⼯程制图和⽤户界⾯设计等。

Matlab是⼀个交互式开发系统,其基本数据要素是矩阵。

它的语法规则简单,⽤解释⽅式⼯作,编写程序和运⾏同步,键⼊程序⽴即得出结果,⼈机交互更加简洁和智能化。

[实验内容]:打开matlab,将⿏标放⾄菜单栏和⼯具栏图标上,了解其功能特点以及单击某个图标,熟悉它的界⾯、操作。

例如:(1)命令窗⼝:是进⾏matlab操作最主要的窗⼝,可以把命令窗⼝看成“草稿本”。

在命令窗⼝输⼊matlab的命令和数据后按回车键,⽴即执⾏运算并现实结果。

语句形式为:>>变量=表达式。

(2)历史命令窗⼝:位于界⾯的左下侧,⽤来记录并显⽰已经运⾏过的命令、函数及表达式。

在默认设置下,该窗⼝会显⽰⾃安装⼀来所有使⽤过的命令的历史记录,并标明每次启动软件的时间。

(3)当前⽬录浏览窗⼝:界⾯的左上侧,⽤来设置当前⽬录,并显⽰当前⽬录下的M-⽂件、Mat⽂件、Mdl⽂件等⽂件信息,窗⼝中包括⽂件类型、⽂件⼤⼩、最后修改时间和⽂件的说明信息等。

[实验数据记录及处理]:(1)运⾏matlab,界⾯是⼀个⾼度集成的⼯作界⾯,主要由菜单栏、⼯具栏、当前⼯作⽬录窗⼝、⼯作空间管理窗⼝、历史命令窗⼝和命令窗⼝等组成,如下图所⽰:(2)建⽴“M-⽂件”(“M-⽂件编辑/调试窗⼝集合了代码编辑和程序调试的功能,兵可以分析程序的运⾏效率)[实验结论]:Matlab是⼀款很好的应⽤于数学计算、系统建模与仿真、数学分析与可视化、科学与⼯程制图和⽤户界⾯设计等软件。

matlab线性方程组数值求解实验报告

matlab线性方程组数值求解实验报告

湖南大学电气与信息工程学院 《数值计算》课程 上机实验报告一. 实验目的:了解gauss 消去法和迭代法matlab 算法实现求任意方程组的根。

二. 实验内容:用gauss 消去法和迭代法求解下列线性方程组:263234323923321321321=++=++=++x x x x x x x x x1.求出gauss 消去法的上三角矩阵和方程组的解321,,x x x ,并在命令窗口显示;2.显示迭代法求解过程中所有结果(,,,,,,,,,321131*********NN N x x x x x x x x x ⋯⋯)要求求解精度达到10^-5.三. 算法介绍或方法基础1) 消去法:消元过程:设0)0(11≠a ,令乘数)0(11)0(11/a a m i i -=,做(消去第i 个方程组的i x )操作1i m ×第1个方程+第i 个方程(i=2,3,.....n )则第i 个方程变为1)1(2)1(2...i n in i b x a x a =++ 这样消去第2,3,。

,n 个方程的变元i x 后。

原线性方程组变为:⎪⎪⎪⎩⎪⎪⎪⎨⎧=++=++=++)1()1(2)1(2)1(2)1(22)1(22)0(1)0(11)0(11... . .... ...n n nn n n n n n b x a x a b x a x a b x a x a 这样就完成了第1步消元。

回代过程:在最后的一方程中解出n x ,得:)1()1(/--=n nn n n n a b x再将n x 的值代入倒数第二个方程,解出1-n x ,依次往上反推,即可求出方程组的解: 其通项为3,...1-n 2,-n k /)()1(1)1()1(=-=-+=--∑k kk nk j j k kj k kk a x abx高斯赛德尔迭代法:由雅可比迭代公式可知,在迭代的每一步计算过程中是用()k x的全部分量来计算()1+k x的所有分量,显然在计算第i 个分量()1+k ix 时,已经计算出的最新分量()()1111+-+k i k x ,...,x 没有被利用,从直观上看,最新计算出的分量可能比旧的分量要好些.因此,对这些最新计算出来的第1+k 次近似()1+k x 的分量()1+k jx 加以利用,就得到所谓解方程组的高斯—塞德(Gauss-Seidel )迭代法.把矩阵A 分解成U L D A --= (6)其中()nn a ,...,a ,a diag D 2211=,U ,L --分别为A 的主对角元除外的下三角和上三角部分,于是,方程组(1)便可以写成 ()b Ux x L D +=-即 22f x B x +=其中()()b L D f ,U L D B 1212---=-= (7)以2B 为迭代矩阵构成的迭代法(公式)()()221f x B x k k +=+ (8)称为高斯—塞德尔迭代法(公式),用 量表示的形式为⎩⎨⎧[],...,,k ,n ,,i x a x a b a xi j n i j )k (j ij )k (j ij i ii)k (i21021111111==∑∑--=-=+=++ (9)由此看出,高斯—塞德尔迭代法的一个明显的优点是,在电算时,只需一组存储单元(计算出()1+k ix 后()k ix 不再使用,所以用()1+k ix 冲掉()k ix ,以便存放近似解.四.程序1)消去法:function x=gauss(A,b)n=length(b);A=[A,b];for k=1:(n-1)A((k+1):n,(k+1):(n+1))=A((k+1):n,(k+1):(n+1))... -A((k+1):n,k)/A(k,k)*A(k,(k+1):(n+1));A((k+1):n,k)=zeros(n-k,1);Aendx=zeros(n,1);x(n)=A(n,n+1)/A(n,n);for k=n-1:-1:1x(k,:)=(A(k,n+1)-A(k,(k+1):n)*x((k+1):n))/A(k,k);end2)迭代法:function EX()a=input('请输入系数矩阵a:');b=input('请输入矩阵b:');N=input('请输入最大迭代次数N:');esp=input('请输入近似解的误差限:');if any(diag(a))==0error('系数矩阵错误,迭代终止!')endD=diag(diag(a));X0=zeros(size(b));x1=0;x2=0;x3=0;X1=[x1;x2;x3];h=inv(D)*b;B=inv(D)*(D-a);B1=triu(B);B2=tril(B);k=1;fprintf('高斯-赛德尔迭代法');fprintf('第0次迭代得:')disp(X1');while k<=Nx1=h(1,1)+B1(1,:)*X0;X1=[x1;x2;x3];x2=h(2,1)+B1(2,:)*X0+B2(2,:)*X1;X1=[x1;x2;x3];x3=h(3,1)+B2(3,:)*X1;X1=[x1;x2;x3];if norm(X1-X0,inf)<espfprintf('已满足误差限。

matlab计算机实验报告

matlab计算机实验报告

matlab计算机实验报告Matlab计算机实验报告引言Matlab是一种强大的计算机软件,广泛应用于科学计算、数据分析和工程设计等领域。

本实验报告旨在介绍我对Matlab的实验研究和应用。

通过实验,我深入了解了Matlab的功能和特点,并通过实际案例展示了其在科学计算和数据处理中的应用。

实验一:基本操作和语法在本实验中,我首先学习了Matlab的基本操作和语法。

通过编写简单的程序,我熟悉了Matlab的变量定义、赋值、运算符和条件语句等基本语法。

我还学习了Matlab的矩阵操作和向量化计算的优势。

通过实例演示,我发现Matlab在处理大规模数据时具有高效性和便捷性。

实验二:数据可视化数据可视化是Matlab的重要应用之一。

在本实验中,我学习了如何使用Matlab绘制各种图表,如折线图、散点图、柱状图和饼图等。

我了解了Matlab 的绘图函数和参数设置,并通过实例展示了如何将数据转化为直观的图形展示。

数据可视化不仅可以帮助我们更好地理解数据,还可以用于数据分析和决策支持。

实验三:数值计算和优化Matlab在数值计算和优化方面具有强大的功能。

在本实验中,我学习了Matlab 的数值计算函数和工具箱,如数值积分、微分方程求解和线性代数运算等。

通过实例研究,我发现Matlab在求解复杂数学问题和优化算法方面具有出色的性能。

这对于科学研究和工程设计中的数值分析和优化问题非常有用。

实验四:图像处理和模式识别Matlab在图像处理和模式识别领域也有广泛的应用。

在本实验中,我学习了Matlab的图像处理工具箱和模式识别算法。

通过实例演示,我了解了如何使用Matlab进行图像滤波、边缘检测和特征提取等操作。

我还学习了一些常见的模式识别算法,如支持向量机和神经网络等。

这些技术在计算机视觉和模式识别中具有重要的应用价值。

实验五:信号处理和系统建模Matlab在信号处理和系统建模方面也有广泛的应用。

在本实验中,我学习了Matlab的信号处理工具箱和系统建模工具。

Matlab实验报告(1)

Matlab实验报告(1)

《Matlab语言与应用》课程实验报告*名:**班级:电信114学号:************指导老师:***二〇一三年十一月二十一日Matlab实验报告实验一一、实验问题求[12 + sin(2)×( 22 −4)]÷3^2的算术运算结果。

二、问题的分析该题主要熟悉Matlab环境下的对数学运算的熟悉,如何输入数据、建立函数输出结果。

三、上机实验结果如图四、实验的总结与体会通过本次实验,我学会了用Matlab来计算数学运算中的复杂技术。

我们也可以自己编写一个可以调用的函数,首先我们要了解Matlab语言函数的基本结构,结构如下:Function [返回变量列表]=函数名(输入变量列表)注释说明语句段,由%引导输入、返回变量格式的检测函数体语句例如:输入变量为k,返回的变量为m和s,其中s为前m项的和Function [m,s]=findsum(k)s=0;m=0;while(s<=k),m=m+1;s=s+m;end编写了函数,就可以将其存为findsum.m文件,这样就可以在Matlab环境中对不同的k值调用该函数了。

这样就可以灵活的实现我们想要的数据。

实验二一、实验问题二、问题分析输入矩阵时,空格或逗号表示间隔,分号表示换行,比如上面的矩阵A应写为A=[1,2,3;4,5,6;7,8,9]三、上机实验结果如图四、实验的总结与体会通过对本次上机实验了解到在Matlab中对矩阵的代数运算矩阵转置、矩阵的加减法运算、矩阵乘法、矩阵的左、右除、矩阵翻转、矩阵乘方运算、点运算等。

实验三一、实验要求画图,理解plot函数用法二、代码如下clear; clf;t=0:pi/20:2*pi;R=5;x=R*sin(t); y=R*cos(t);plot(x,y,'b:'), gridhold onrrr=[x;y;x+y];plot(rrr(1,:),'.','MarkerSize',10,'Color','r')plot(rrr(2,:),rrr(3,:),'o','MarkerSize',15,'Color','b'); axis([-8,20,-8,8]), % axis squarehold off三、Matlab运行结果如图实验四一、实验要求二、代码如下t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,'-r',t,y0,':b',t,-y0,':b') Grid三、Matlab运行结果如图实验五一、实验要求傅里叶频谱分析二、代码及分析(1)首先生成数据,包含50Hz和120Hz频率的正弦波x >>t = 0:.001:.25;>>x = sin(2*pi*50*t) + sin(2*pi*120*t);(2)再生成噪音信号yy = x + 2*randn(size(t));plot(y(1:50))title('Noisy time domain signal')(3)对y进行快速傅里叶变换Y = fft(y,256);(4)计算功率谱Pyy = Y.*conj(Y)/256;f = 1000/256*(0:127);plot(f,Pyy(1:128))title('Power spectral density')xlabel('Frequency (Hz)')(5)只查看200Hz以下频率段plot(f(1:50),Pyy(1:50))title('Power spectral density')xlabel('Frequency (Hz)')三、上机结果如下图实验六一、实验要求FIR数字滤波器设计代码如下clear;close allf=[0,0.6,0.6,1]; m=[0,0,1,1]; % 设定预期幅频响应b=fir2(30,f,m); n=0:30; % 设计FIR 数字滤波器系数subplot(3,2,1),stem(n,b,'.')xlabel('n'); ylabel('h(n)');axis([0,30,-0.4,0.5]),line([0,30],[0,0])[h,w]=freqz(b,1,256);subplot(3,2,2),plot(w/pi,20*log10(abs(h)));gridaxis([0,1,-80,0]),xlabel('w/pi'); ylabel('幅度(dB)');二、上级结果如图实验七二、实验要求用guide实验一个简单的加减乘除计算器二、实验步骤在命令行输入guide命令,进入guide界面新建一个空白guide文件在空白文件中设置好功能模块如图模块建立好后,就要把编写好的加减乘除代码加入到各自的回调函数中,见下图两个被加数代码如下图加模块代码如下图减模块代码如下图乘模块代码如下图除模块代码如下图各模块的回调函数加完后就可以运行了,运行结果如下图总结:Matlab一个高级的距阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。

MATLAB上机实验报告

MATLAB上机实验报告

MATLAB上机实验报告实验一、实验目的--------------------------------------------------------------------------------------------------------3二、实验内容--------------------------------------------------------------------------------------------------------3三、实验步骤--------------------------------------------------------------------------------------------------------31. M 文件的编辑----------------------------------------------------------------------------------------------32. 程序流程控制结构---------------------------------------------------------------------------------------31) for 循环结构-----------------------------------------------------------------------------------------42) while 循环结构----------------------------------------------------------------------------------------5练习-----------------------------------------------------------------------------------------------------------53)if-else-end分支结构---------------------------------------------------------------------------------54)switc-case结构----------------------------------------------------------------------------------------63. 子函数和参数传递------------------------------------------------------------------------------------------6练习-----------------------------------------------------------------------------------------------------------74. 局部变量和全局变量--------------------------------------------------------------------------------------8 MATLAB上机练习6.1 M 文件--------------------------------------------------------------------------------------------8(1)脚本文件-----------------------------------------------------------------------------------------------------8(2)函数文件-----------------------------------------------------------------------------------------------------9(3)函数调用-----------------------------------------------------------------------------------------------------9 6.2 MATLAB 的程序控制结构( 1) for 循环----------------------------------------------------------------------------------------------------9(2) while 循环----------------------------------------------------------------------------------------------------12(3)if语句---------------------------------------------------------------------------------------------------------12(4)switch 语句-------------------------------------------------------------------------------------------------13(5)try 语句-----------------------------------------------------------------------------------------------------14(6)程序流的控制--------------------------------------------------------------------------------------------14 6.3 数据的输入与输出-----------------------------------------------------------------------------------14(1)键盘输入语句------------------------------------------------------------------------------------------14(2)屏幕输出语句---------------------------------------------------------------------------------------------14 6.4 MATLAB文件操作(1)fopen 语句-----------------------------------------------------------------------------------------------------15(2) fclose 语句-----------------------------------------------------------------------------------------------------15 6.5 面向对象编程--------------------------------------------------------------------------------------------15(1)创建类目录----------------------------------------------------------------------------------------------------15(2) 建立类的数据结构-----------------------------------------------------------------------------------------15(3)创建类的基本方法---------------------------------------------------------------------------------------------16 6.6 MATLAB 程序优化-----------------------------------------------------------------------------------------17 6.7程序调试------------------------------------------------------------------------------------------------------17 6.8 习题----------------------------------------------------------------------------------------------------------17实验五MATLAB 程序设计一、实验目的掌握MATLAB 程序设计的主要方法,熟练编写MATLAB 函数。

matlab实验报告

matlab实验报告

实验一:MATLAB基本操作一、实验目的1、学习掌握MA TLAB语言的基本操作方法2、掌握命令窗口的使用3、熟悉MA TLAB的数据表示、基本运算和程序控制语句4、熟悉MA TLAB程序设计的基本方法二、实验内容和要求2.b.帮助命令的使用,查找SQRT函数的使用方法按Start-help-search,输入sqrtc.矩阵运算(1)已知A=[1 2;3 4];B=[5 5;7 8];求A^2*B输入A=[1 2;3 4];B=[5 5;7 8];A^2*B结果为:ans =105 115229 251(2)矩阵除法已知A=[1 2 3 ;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3];求A/B,A\BA/B=1.0000 1.0000 1.00004.0000 2.5000 2.00007.0000 4.0000 3.0000A\B=1.0e+016 *0.3152 -1.2609 0.9457-0.6304 2.5218 -1.89130.3152 -1.2609 0.9457(3)矩阵的转置及共轭转置已知A=[15+i,2-i,1;6*i,4,9-i];求A.',A'A=15.0000 + 1.0000i 2.0000 - 1.0000i 1.00000 + 6.0000i 4.0000 9.0000 - 1.0000iA.'=15.0000 + 1.0000i 0 + 6.0000i2.0000 - 1.0000i 4.00001.0000 9.0000 - 1.0000iA'=15.0000 - 1.0000i 0 - 6.0000i2.0000 + 1.0000i 4.00001.0000 9.0000 + 1.0000i(4)使用冒号选出指定元素已知A=[1 2 3;4 5 6;7 8 9];求A中第三列前两个元素;A中所有第二行的元素A =1 2 34 5 67 8 9求A中第三列前两个元素:A([1,2],3)ans =36求A中所有第二行的元素:A(2,1:1:end)ans =4 5 6(5)方括号[]用magic函数生成一个4阶魔方矩阵,删除该矩阵的第四列magic(4)ans =16 2 3 135 11 10 89 7 6 124 14 15 1a=ans;a(:,[1,2,3])ans =16 2 35 11 109 7 64 14 153..多项式(1)求多项式p(X)=x^3-2x-4的根(2)已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4]求矩阵A的特征多项式;求矩阵多项式中未知数为20时的值;把矩阵A作为未知数代入到多项式中;(1)a=[1,0,-2,-4]x=roots(a)x =2.0000-1.0000 + 1.0000i-1.0000 - 1.0000i(2)求特征多项式系数:A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4]p=poly(A)p =1.0000 -6.9000 -77.2600 -86.1300 604.5500求矩阵多项式中未知数为20时的值:c=polyval(p,20)c =7.2778e+004把矩阵A作为未知数代入到多项式中:c=polyval(p,A)c =1.0e+003 *0.3801 -0.4545 -1.9951 0.4601-1.9951 0.2093 -1.9951 -2.8880-0.4545 -4.8978 0.6046 0.43530.4353 0.0840 -0.4545 -1.16174、基本程序设计(1)编写命令文件:计算1+2+3+……+n<2000;n=0;s=0;while s<2000n=n+1;s=s+n;endn=n-1n =62(2)编写函数文件:分别用for和while循环结构编写程序,求2的0到n次幂的和。

计算方法matlab实验报告

计算方法matlab实验报告

计算方法matlab实验报告计算方法MATLAB实验报告引言:计算方法是一门研究如何用计算机来解决数学问题的学科。

在计算方法的学习过程中,MATLAB作为一种强大的数值计算软件,被广泛应用于科学计算、工程计算、数据分析等领域。

本实验报告将介绍在计算方法课程中使用MATLAB 进行的实验内容和实验结果。

一、二分法求方程根在数值计算中,求解非线性方程是一个常见的问题。

二分法是一种简单而有效的求解非线性方程根的方法。

在MATLAB中,可以通过编写函数和使用循环结构来实现二分法求解方程根。

实验步骤:1. 编写函数f(x),表示待求解的非线性方程。

2. 设定初始区间[a, b],满足f(a) * f(b) < 0。

3. 利用二分法迭代求解方程根,直到满足精度要求或迭代次数达到预设值。

实验结果:通过在MATLAB中编写相应的函数和脚本,我们成功求解了多个非线性方程的根。

例如,对于方程f(x) = x^3 - 2x - 5,我们通过二分法迭代了5次,得到了方程的一个根x ≈ 2.0946。

二、高斯消元法解线性方程组线性方程组的求解是计算方法中的重要内容之一。

高斯消元法是一种常用的求解线性方程组的方法,它通过矩阵变换将线性方程组化为上三角矩阵,从而简化求解过程。

在MATLAB中,可以利用矩阵运算和循环结构来实现高斯消元法。

实验步骤:1. 构建线性方程组的系数矩阵A和常数向量b。

2. 利用高斯消元法将系数矩阵A化为上三角矩阵U,并相应地对常数向量b进行变换。

3. 利用回代法求解上三角矩阵U,得到线性方程组的解向量x。

实验结果:通过在MATLAB中编写相应的函数和脚本,我们成功求解了多个线性方程组。

例如,对于线性方程组:2x + 3y - z = 13x - 2y + 2z = -3-x + y + 3z = 7经过高斯消元法的计算,我们得到了方程组的解x = 1,y = -2,z = 3。

三、数值积分方法数值积分是计算方法中的重要内容之一,它用于计算函数在给定区间上的定积分。

matlab上机实验报告ppt

matlab上机实验报告ppt

matlab上机实验报告pptMATLAB上机实验报告摘要:本实验报告利用MATLAB软件进行了一系列实验,包括数据处理、图像处理、信号处理等内容。

通过实验,我们掌握了MATLAB软件的基本操作和应用技巧,提高了数据分析和处理的能力。

1. 实验背景MATLAB是一种用于数学计算、数据分析和可视化的高级技术计算语言和交互式环境。

它是工程师和科学家们进行算法开发、数据分析、数据可视化和数值计算的首选工具。

本次实验旨在通过实际操作,掌握MATLAB的基本操作和应用技巧。

2. 实验内容本次实验主要包括以下内容:(1)数据处理:利用MATLAB对一组实验数据进行处理,包括数据的导入、清洗、分析和可视化。

(2)图像处理:利用MATLAB对一幅图像进行处理,包括图像的读取、处理和保存。

(3)信号处理:利用MATLAB对一组信号进行处理,包括信号的生成、滤波和频谱分析。

3. 实验过程(1)数据处理:首先,我们利用MATLAB将实验数据导入到工作空间中,然后对数据进行清洗和分析,最后利用MATLAB绘制出数据的可视化图表。

(2)图像处理:我们利用MATLAB读取一幅图像,并对图像进行处理,比如调整图像的亮度、对比度等参数,最后保存处理后的图像。

(3)信号处理:我们利用MATLAB生成一组信号,并对信号进行滤波处理,然后利用MATLAB进行信号的频谱分析。

4. 实验结果通过本次实验,我们成功地利用MATLAB对实验数据进行了处理和分析,得到了清晰的数据可视化图表;对一幅图像进行了处理,并保存了处理后的图像;对一组信号进行了滤波处理,并进行了频谱分析。

实验结果表明,MATLAB是一款功能强大、灵活多样的工程计算软件,能够满足工程师和科学家们的各种需求。

5. 实验结论本次实验通过MATLAB软件的实际操作,使我们掌握了MATLAB的基本操作和应用技巧,提高了我们的数据分析和处理能力。

同时,也加深了我们对MATLAB软件的理解和认识,为今后的工程计算和科学研究打下了坚实的基础。

matlab上机实验报告

matlab上机实验报告

matlab上机实验报告《Matlab上机实验报告:探索数据分析与图像处理的奇妙世界》摘要:本实验报告基于Matlab平台,探索了数据分析与图像处理的应用。

通过实验,我们发现Matlab具有强大的数据处理和图像处理能力,能够帮助我们快速高效地分析数据和处理图像。

本文将详细介绍实验过程和结果,以及对Matlab在数据分析与图像处理中的应用前景进行探讨。

1. 实验目的本次实验旨在通过Matlab平台进行数据分析与图像处理实验,探索Matlab在这两个领域的应用能力,为学习者提供实践机会,加深对数据分析与图像处理的理解,并为未来的科研工作和工程实践提供技术支持。

2. 实验内容2.1 数据分析我们首先使用Matlab对一组实验数据进行分析,包括数据的可视化、统计特征提取、数据拟合等操作。

通过Matlab强大的数据处理工具,我们可以快速准确地分析数据,提取出其中的规律和特征,为后续的决策和应用提供支持。

2.2 图像处理其次,我们利用Matlab对一组图像进行处理,包括图像的增强、滤波、边缘检测等操作。

通过Matlab丰富的图像处理工具,我们可以对图像进行各种操作,改善图像质量,提取图像特征,甚至实现图像识别和分析。

3. 实验结果在数据分析方面,我们利用Matlab对实验数据进行了可视化展示,并提取了数据的统计特征,得到了数据的分布规律和趋势。

在图像处理方面,我们利用Matlab对图像进行了增强和边缘检测,得到了处理后的图像,观察到了图像质量的改善和边缘特征的提取。

4. 实验结论通过本次实验,我们深刻认识到Matlab在数据分析与图像处理领域的强大能力,能够帮助我们快速高效地分析数据和处理图像,为科研工作和工程实践提供技术支持。

我们相信,在未来的发展中,Matlab将在数据分析与图像处理领域发挥越来越重要的作用。

5. 展望基于本次实验的结果,我们对Matlab在数据分析与图像处理领域的应用前景进行了展望。

我们相信,随着科技的不断发展,Matlab将在数据分析与图像处理领域发挥越来越重要的作用,为人类社会的进步和发展做出更大的贡献。

matlab实验一实验报告

matlab实验一实验报告

matlab实验一实验报告实验一:Matlab实验报告引言:Matlab是一种强大的数学软件工具,广泛应用于科学计算、数据分析和工程设计等领域。

本实验旨在通过使用Matlab解决实际问题,探索其功能和应用。

一、实验目的本次实验的主要目的是熟悉Matlab的基本操作和常用函数,了解其在科学计算中的应用。

二、实验内容1. 数值计算在Matlab中,我们可以进行各种数值计算,包括基本的加减乘除运算,以及更复杂的矩阵运算和方程求解。

通过编写相应的代码,我们可以实现这些功能。

例如,我们可以使用Matlab计算两个矩阵的乘积,并输出结果。

代码如下:```matlabA = [1 2; 3 4];B = [5 6; 7 8];C = A * B;disp(C);```2. 数据可视化Matlab还提供了强大的数据可视化功能,可以将数据以图表的形式展示出来,更直观地观察数据的规律和趋势。

例如,我们可以使用Matlab绘制一个简单的折线图,来展示某个物体在不同时间下的位置变化。

代码如下:```matlabt = 0:0.1:10;x = sin(t);plot(t, x);xlabel('Time');ylabel('Position');title('Position vs. Time');```3. 图像处理Matlab还可以进行图像处理,包括图像的读取、处理和保存等操作。

我们可以通过Matlab对图像进行增强、滤波、分割等处理,以及进行图像的压缩和重建。

例如,我们可以使用Matlab读取一张图片,并对其进行灰度化处理。

代码如下:```matlabimg = imread('image.jpg');gray_img = rgb2gray(img);imshow(gray_img);```三、实验结果与分析在本次实验中,我们成功完成了数值计算、数据可视化和图像处理等任务。

MATLAB上机实验实验报告

MATLAB上机实验实验报告

MATLAB上机实验一一、实验目的初步熟悉 MATLAB 工作环境,熟悉命令窗口,学会使用帮助窗口查找帮助信息。

命令窗口二、实验内容(1) 熟悉MATLAB 平台的工作环境。

(2) 熟悉MATLAB 的5 个工作窗口。

(3) MATLAB 的优先搜索顺序。

三、实验步骤1. 熟悉MATLAB 的5 个基本窗口① Command Window (命令窗口)② Workspace (工作空间窗口)③ Command History (命令历史记录窗口)④ Current Directory (当前目录窗口)⑤ Help Window (帮助窗口)(1) 命令窗口(Command Window)。

在命令窗口中依次输入以下命令:>>x=1>> y=[1 2 34 5 67 8 9];>> z1=[1:10],z2=[1:2:5];>> w=linspace(1,10,10);>> t1=ones(3),t2=ones(1,3),t3=ones(3,1)>> t4=ones(3),t4=eye(4)x =1z1 =1 2 3 4 5 6 7 8 9 10 t1 =1 1 11 1 11 1t2 =1 1 1t3 =111t4 =1 1 11 1 11 1 1t4 =1 0 0 00 1 0 00 0 1 00 0 0 1思考题:①变量如何声明,变量名须遵守什么规则、是否区分大小写。

答:(1)变量声明1.局部变量每个函数都有自己的局部变量,这些变量只能在定义它的函数内部使用。

当函数运行时,局部变量保存在函数的工作空间中,一旦函数退出,这些局部变量将不复存在。

脚本(没有输入输出参数,由一系列MATLAB命令组成的M文件)没有单独的工作空间,只能共享调用者的工作空间。

当从命令行调用,脚本变量存在基本工作空间中;当从函数调用,脚本变量存在函数空间中。

计算方法实验报告

计算方法实验报告

2019年计算方法(B)实验报告姓名:学号:专业:课程:计算方法(B)目录一、实验综述 (1)二、实验内容 (1)2.1 实验一 (1)2.2 实验二 (2)2.3 实验三 (3)2.4 实验四 (4)2.5 实验五 (6)三、思考总结 (7)附件A1 (8)附件A2 (9)附件A3 (10)附件A4 (12)附件A5 (14)一、实验综述计算方法在工程实践中得到了广泛的应用,是理工类研究生必备的知识技能。

按照2019年计算方法课程学习要求,本文对计算方法上机题目进行了算法设计、分析,利用matlab 2019b版本对算法进行实现,最终形成了实验报告。

以下为本次实验报告具体内容,包括五个实验部分和一个思考总结部分。

二、实验内容2.1 实验一2.1.1 实验题目用Jacobi迭代和Gauss-Seidel迭代解电流方程组,使各部分电流的误差均小于10-3。

2.1.2 算法分析a)首先列出方程组的系数矩阵A以及等式右端的矩阵b,A=[28,-3,0,0,0;-3,38,-10,0,-5;0,-10,25,-15,0;0,0,-15,45,0;0,-5,0,0,30 ];b=[10;0;0;0;0];为了验证A是否收敛,我们通过判断系数矩阵A是否为严格对角占优矩阵进行确定。

如果是,则可以进行Jacobi迭代和Gauss-Seidel迭代(利用matlab程序验证后,证明了矩阵A为严格对角占优矩阵);如果不是,则需要采用其他方法进行判断迭代是否收敛。

b)对矩阵A分裂成三部分,,其中D为A的对角矩阵,E为A的下三角矩阵的相反数,F为A的上三角矩阵的相反数。

c) Jacobi迭代。

取x得初始向量为x=[0;0;0;0;0],利用迭代公式进行循环计算,当的无穷范数小于10-3,即,停止循环。

d) Gauss-Seidel迭代。

取x得初始向量为x=[0;0;0;0;0],利用迭代公式进行循环计算,当的无穷范数小于10-3,即,停止循环。

MATLAB上机实验实验报告

MATLAB上机实验实验报告

MATLAB上机实验实验报告实验名称:用MATLAB实现多项式拟合及插值一、实验目的:通过使用MATLAB实现多项式拟合及插值的方法,掌握MATLAB软件的基本操作和函数应用,进一步了解多项式拟合及插值的原理和实现过程。

二、实验原理:多项式拟合及插值是一种常见的数值分析方法,通过对已知数据点集合的拟合或插值,构造出一个多项式函数,用于近似表示原始数据。

1.多项式拟合:通过最小二乘法原理,选择一个合适的多项式函数,使得拟合出的多项式与已知数据点之间的误差最小。

拟合函数可以是一次、二次或高阶多项式。

2.多项式插值:通过已知数据点的横纵坐标值,构造一个满足这些点的多项式函数。

插值函数可以是一次、二次或高阶多项式。

插值函数经过每个已知数据点。

三、实验步骤:1.数据准备:选择一组已知数据,包含横纵坐标值。

数据点的个数可以根据具体情况自行确定。

2.多项式拟合:使用MATLAB中的polyfit函数,根据已知数据点进行多项式拟合。

根据拟合结果,获取拟合的多项式系数。

3.多项式插值:使用MATLAB中的polyfit函数,根据已知数据点进行多项式插值。

通过plot函数绘制原始数据点的散点图和插值多项式的曲线图。

可以尝试不同阶数的多项式插值。

4.结果分析:根据实验结果,分析拟合与插值的效果。

对比拟合结果与原始数据的误差大小,评估拟合的准确性。

对比插值结果与原始数据的差异,评估插值的精确度。

五、实验总结:通过这次实验,我熟练掌握了使用MATLAB实现多项式拟合及插值的方法。

在实验中,我了解了多项式拟合的原理,以及如何利用最小二乘法求取多项式拟合的系数。

同时,我也学会了如何使用MATLAB中的polyfit函数实现多项式拟合和插值。

通过实验结果的分析,我对拟合和插值的实际应用和效果有了更加深入的认识。

[1]MATLAB官方文档[2]高等数值分析教程以上为MATLAB上机实验实验报告,共计1200字。

matlab上机实验报告if,swich语句

matlab上机实验报告if,swich语句

实验报告实验主题:在MATLAB中使用if,switch语句实验内容:1. 实验目的本次实验旨在让学生通过在MATLAB中使用if和switch语句,加深对条件语句的理解,并能够灵活运用条件控制语句解决实际问题。

2. 实验环境本次实验使用MATLAB软件进行,MATLAB是一款专业的科学计算软件,广泛应用于工程、数学、金融和其他领域。

在MATLAB中,if 语句用于执行条件控制语句,而switch语句则用于多个条件判断。

3. 实验步骤3.1 编写if语句在MATLAB中编写一个简单的if语句,用于判断一个数值的大小,然后输出对应的结果。

例如:```matlabnum = 10;if num > 0disp('num是正数');elseif num < 0disp('num是负数');elsedisp('num是零');end```以上代码使用了if、elseif和else关键字,根据num的大小输出不同的结果。

3.2 编写switch语句接下来,我们在MATLAB中编写一个switch语句,根据不同的条件执行不同的操作。

例如:```matlabday = 'Monday';switch daycase 'Monday'disp('今天是星期一');case 'Tuesday'disp('今天是星期二');case 'Wednesday'disp('今天是星期三');otherwisedisp('今天是其他日子');end```以上代码根据day的取值输出不同的结果,使用了switch和case关键字。

4. 实验结果通过以上步骤,我们成功在MATLAB中使用了if和switch语句,并实现了条件判断和相应的操作。

matlab计算机实验报告

matlab计算机实验报告

Matlab计算机实验报告 - Step by Step Thinking引言本文将介绍如何使用Matlab进行计算机实验,并以Step by Step Thinking的方式来展示实验的过程。

在本实验中,我们将使用Matlab进行数学计算和数据分析。

实验目标本实验的主要目标是展示如何使用Matlab进行计算和数据分析。

通过学习本实验,您将能够:1.熟悉Matlab的基本操作和语法;2.使用Matlab进行数学计算;3.进行数据可视化和分析。

实验环境在开始实验之前,请确保您已安装好Matlab软件并配置好运行环境。

实验步骤步骤1:启动Matlab双击Matlab图标或通过命令行启动Matlab软件。

步骤2:创建新的脚本文件在Matlab的编辑器中,创建一个新的脚本文件。

您可以选择新建文件,然后选择脚本文件类型。

步骤3:进行数学计算在脚本文件中,您可以输入各种数学表达式和计算公式。

例如,我们可以计算一个简单的数学表达式:2 + 2。

result = 2 + 2;disp(result);运行脚本后,Matlab会输出结果4。

步骤4:使用Matlab进行数据分析在Matlab中,您可以使用各种函数和工具箱来进行数据分析。

例如,我们可以使用内置的统计工具箱来计算一组数据的平均值和标准差。

data = [1, 2, 3, 4, 5];mean_value = mean(data);std_value = std(data);disp(mean_value);disp(std_value);运行脚本后,Matlab会输出数据的平均值和标准差。

步骤5:数据可视化Matlab还提供了强大的数据可视化功能,可以帮助我们更好地理解和分析数据。

例如,我们可以使用plot函数来绘制数据的折线图。

x = 1:5;y = [1, 4, 8, 11, 15];plot(x, y);xlabel('x');ylabel('y');title('数据可视化');运行脚本后,Matlab会显示一个包含数据折线图的图形窗口。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《计算方法》实验报告指导教师:学院:班级:团队成员:一、题目例2.7应用Newton 迭代法求方程210x x --=在1x =附近的数值解k x ,并使其满足8110k k x x ---<原理:在方程()0f x =解的隔离区间[],a b 上选取合适的迭代初值0x ,过曲线()y f x =的点()()00x f x ,引切线()()()1000:'l y f x f x x x =+-其与x 轴相交于点:()()0100 'f x x x f x =-,进一步,过曲线()y f x =的点()()11x f x , 引切线()()()2111: 'l y f x f x x x =+-其与x 轴相交于点:()()1211 'f x x x f x =-如此循环往复,可得一列逼近方程()0f x =精确解*x 的点01k x x x ,,,,,其一般表达式为:()()111 'k k k k f x x x f x ---=-该公式所表述的求解方法称为Newton 迭代法或切线法。

程序:function y=f(x)%定义原函数y=x^3-x-1;endfunction y1=f1(x0)%求导函数在x0点的值syms x;t=diff(f(x),x);y1=subs(t,x,x0);endfunction newton_iteration(x0,tol)%输入初始迭代点x0及精度tol x1=x0-f(x0)/f1(x0);k=1;%调用f函数和f1函数while abs(x1-x0)>=tolx0=x1;x1=x0-f(x0)/f1(x0);k=k+1;endfprintf('满足精度要求的数值为x(%d)=%1.16g\n',k,x1);fprintf('迭代次数为k=%d\n',k);end结果:二、题目例3.7试利用Jacobi 迭代公式求解方程组1234451111101112115181111034x x x x ----⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪--- ⎪ ⎪ ⎪= ⎪ ⎪ ⎪--- ⎪ ⎪ ⎪---⎝⎭⎝⎭⎝⎭ 要求数值解()k X 满足()4210k --≤X X ,其中T (1,2,3,4)=X 为方程组的精确解。

原理:将线性方程组的系数矩阵111212122212n n n n nn a a a a a a a a a ⎛⎫ ⎪⎪= ⎪ ⎪⎝⎭A 分解为=++A L D U ,其中1122=(,,,)nn diag a a a D ,3132,12112000000000=0n n n n a a a a a a -⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭L ,121312321,00=00000000n n n n a a a a a a -⎛⎫ ⎪⎪⎪ ⎪ ⎪ ⎪⎝⎭U 当对角阵D 可逆时,方程组=AX b 可等价地写成()11 --=-++X D L U X D b ,据此可得Jacobi 迭代公式为()()()111 0,1,k kk +--=-++=X D L U X D b, ,其中()()()()()T12=,k k k n nk x x x ∈XR ,,,该迭代公式也可以写成如下的分量形式1(()11),,1,2,,1nk k i ij j j j i ii ixb a i n a x ++=≠⎛⎫= ⎪⎭=⎝-∑程序:function jacobi()%输入矩阵A 、b 、精度tol%A=[5 -1 -1 -1; -1 10 -1 -1; -1 -1 5 -1; -1 -1 -1 10]; b=[-4 12 8 34]'; tol=10^-4;% A=input('系数矩阵A=');%输入矩阵A % b=input('矩阵b= ');%输入矩阵b% tol=input('精度要求tol=');%输入精度tol X=inv(A)*b; [n,~]=size(A); D=diag(diag(A)); L=tril(A)-D; U=triu(A)-D; X0=zeros(n,1);X1=inv(D)*b-inv(D)*(L+U)*X0; X0=X1; X2=X-X0; k=1;while abs(norm(X2,2))>=tolX1=inv(D)*b-inv(D)*(L+U)*X0; X0=X1; X3=X-X0; %收敛性判断%if norm(X3,2)>norm(X2,2) break; elseX2=X3; k=k+1; end end% 结果输出%if X2~=X3fprintf('应用jacobi迭代法不收敛\n');elsefprintf('\n应用jacobi迭代公式迭代 k=%d次后\n可得满足精度要求的数值解 X(%d)=\n',k,k);for i=1:nfprintf(' %1.15f\n',X1(i));endfprintf('且其满足计算精度norm(abs(X-X(%d)),2)=%1.15g<%.1e\n',k,norm(abs(X-X1),2),tol);end结果:三、题目例3.8试利用Gauss Seidel -迭代公式求解方程组1234451111101112115181111034x x x x ----⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪--- ⎪ ⎪ ⎪= ⎪ ⎪ ⎪--- ⎪ ⎪ ⎪---⎝⎭⎝⎭⎝⎭ 要求数值解()k X 满足()4210k --≤X X ,其中T (1,2,3,4)=X 为方程组的精确解。

原理:将线性方程组的系数矩阵111212122212n n n n nn a a a a a a a a a ⎛⎫ ⎪⎪= ⎪ ⎪⎝⎭A 分解为=++A L D U ,其中1122=(,,,)nn diag a a a D ,3132,12112000000000=0n n n n a a a a a a -⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭L ,121312321,00=00000000n n n n a a a a a a -⎛⎫ ⎪⎪⎪ ⎪ ⎪ ⎪⎝⎭U 当对角阵D 可逆时,方程组=AX b 可等价地写成=--+DX LX UX b ,由此可构造迭代格式,(1)(1)()k k k b ++=--+DXLX UX据此可得Gauss Seidel -迭代公式为()111()(1)0,1,k k k -++-=-+++=X D L UX D L b (), ,该公式也可以写成如下的分量形式11())11(()11),1,2(,,i nk k k i i ij j ij j j j i ii x b a x a x i n a -++==+=--=∑∑程序:function Gauss_Seidel()%输入矩阵A 、b 、精度tol%A=[5 -1 -1 -1; -1 10 -1 -1; -1 -1 5 -1; -1 -1 -1 10]; b=[-4 12 8 34]'; tol=10^-4;% A=input('系数矩阵A=');%输入矩阵A % b=input('矩阵b=');%输入矩阵b% tol=input('精度要求tol=');%输入精度tol X=inv(A)*b; [n,~]=size(A); D=diag(diag(A)); L=tril(A)-D; U=triu(A)-D; X0=zeros(n,1);X1=inv(D+L)*b-inv(D+L)*U*X0; X0=X1; X2=X-X0; k=1;while abs(norm(X2,2))>=tolX1=inv(D+L)*b-inv(D+L)*U*X0; X0=X1; X3=X-X0; %收敛性判断%if norm(X3,2)>norm(X2,2) break; elseX2=X3; k=k+1; end end% 结果输出%if X2~=X3fprintf('应用Gauss_Seidel迭代法不收敛\n');elsefprintf('\n应用Gauss_Seidel迭代公式迭代%d次后\n可得满足精度要求的数值解 X(%d)=\n',k,k);for i=1:nfprintf(' %1.15f\n',X1(i));endfprintf('且其满足计算精度norm(abs(X-X(%d)),2) =%1.15g<%.1e\n',k,norm(abs(X-X1),2),tol);end结果:四、题目例4.1给定函数()(1cos )f x x x =+及插值节点原理:设函数()f x 在区间[],a b 上有定义,其在1n +个互异点[],i x a b ∈ 2,,n .代数插值问题,所求得的(n P x 0n > ,1,,0,1,2,,0,i ji j n i j=⎧=⎨≠⎩,.程序:function y=f(x)%定义原函数y=x*(1+cos(x));endfunction y1=maxM(a,b)%输入区间[a,b]的上下限%syms xy=f(x);y5=diff(y,5);%求n+1阶导y1=max(abs(subs(y5,x,[a:0.01:b])));%求导函数的绝对值在[a,b]区间上的最大值endfunction lagrange_interpolation(x)%输入待求点x值矩阵x% 给定插值节点x0[N]%x0=[0,pi/8,pi/4,3*pi/8,pi/2];% x0=input('x0=');%输入插值节点矩阵x0n=length(x0);m=length(x);% 计算插值节点所对应的函数值%for i=1:ny0(i)=f(x0(i));end% lagrange插值法%for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif j~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;endw=1.0;% 结果输出%for i=1:mfor j=1:nw=w*(x(i)-x0(j));endfprintf('f(x(%d))的近似值为 %1.15g\n',i,y(i));fprintf(' 误差估计<=%1.15e\n',maxM(x0(1),x0(n))/prod(1:n)*abs(w));%调用MaxM函数 fprintf(' 绝对误差为 %1.15e\n',abs(f(x(i))-y(i))); endend结果:五、题目例4.3已知()f x =012340.35,0.50,0.65,0.80,0.95,x x x x x =====构造4次Newton 插值多项式,由此计算(0.7)f 的逼近值,并指出其绝对误差。

相关文档
最新文档