matlab实验三 级数
matlab拟合粘弹prony级数
1. 概述在科学研究和工程领域中,粘弹性材料的研究和应用日益广泛。
粘弹性材料的特性使得其在生物医学、土木工程、材料科学等领域中得到了广泛的应用。
为了更好地研究和描述粘弹性材料的行为,科研工作者们需要使用数学模型来描述并拟合实验数据。
在这方面,Prony级数是一种常用的数学模型,可以用来描述线性粘弹性材料的力学行为。
2. Prony级数的基本形式Prony级数通常写作以下形式:\[f(t) = \sum_{i=1}^{N} A_i e^{-\frac{t}{\tau_i}}\]其中,\(f(t)\)表示粘弹性材料的响应函数,\(t\)为时间,\(N\)为级数的项数,\(A_i\)为级数的幅值,\(\tau_i\)为级数的松弛时间。
3. Prony级数的拟合方法在实际应用中,科研工作者通常使用实验数据来拟合Prony级数的参数。
Matlab作为一种强大的数学建模与仿真软件,具有丰富的工具和函数可以用来拟合Prony级数。
在Matlab中,可以使用curve fitting工具箱中的fit函数来拟合Prony级数的参数。
4. Matlab中Prony级数的拟合示例以下是一个使用Matlab进行Prony级数拟合的简单示例:```matlab生成模拟数据t = 0:0.1:10;f = 2*exp(-t/3) + 3*exp(-t/5) + 1*exp(-t/7) + randn(size(t));使用fit函数拟合Prony级数参数pronyModel = fit(t', f', 'exp2');输出拟合结果disp(pronyModel);```在这个示例中,我们首先生成了一组模拟数据,然后使用Matlab的fit函数拟合了一个包含三个指数衰减项的Prony级数模型。
fit函数会返回一个包含拟合参数的结构体,我们可以通过这个结构体来获取拟合结果。
5. 结论通过以上简单的示例,我们可以看出使用Matlab来拟合Prony级数是非常方便和高效的。
运用MATLAB语言解决级数及其相关问题 李娟娟
《MATLAB语言》课程论文运用MATLAB语言解决级数及其相关问题姓名:李娟娟学号:12010245220专业:电子信息工程班级:2010级电子班指导老师:汤全武学院:物理电气信息学院完成日期:2011/12/12运用MATLAB 语言解决级数及其相关问题(李娟娟 12010245220 2010级电子班)[摘要]无穷级数是高等数学中的一个重要组成部分,它是表示函数,研究函数的性质以及进行数值计算的一种工具。
运用MATLAB 语言来求解无穷级数求和、幂级数展开、泰勒级数展开以及研究傅里叶级数提供了方便,并且在复变函数中解决级数问题也可由MATLAB 来完成。
同时运用高等数学中级数来解决日常实际问题的情况也可通过MATLAB 程序来完成。
MATLAB 的运用大大减少工作量、节约时间,同时加深对高等数学、复变函数及MATLAB 语言的理解和学习。
[关键词]MATLAB 语言 无穷级数 级数求和 泰勒级数 傅里叶级数一、问题的提出级数作为高等数学和复变函数中的必学内容,要求我们必须掌握其定理内容及计算方法。
但级数强大的计算量和多字母的表达示让很多人无从下手,加上出错率高,更给级数运算再添麻烦。
为解决这一问题我们现在运用MATLAB 语言来求解高等数学中的级数问题,涉及常系数项级数求和、泰勒级数展开成幂级数以及函数的傅里叶级数的展开等。
二、常数项级数的求和与审敛高数中,一般的,如果给定一个数列123,,,...,...n u u u u则由这数列构成的表达式:123......n u u u u +++++ (1)叫做(常数项)级数,记为1n Un ∞=∑,即1n Un ∞=∑=123......n u uu u +++++其中第n 项n u 叫做级数的一般项。
做(常数项)级数(1)的前n 项和123...n n s u u u u =++++=1ni Ui =∑ (2)n s 称为级数的(1)部分和,当n 依次取1,2,3,……时,他们构成一个新数列 112123123,,,...s u s u u s u u u ==+=++123......,....n n s u u u u =+++++如果这个数列的极限存在,则称该级数收敛,并称级数的部分和(2)为级数的和。
MATLAB实训实验
2015/2016学年下学期《信号与系统》实验报告班级:学号:学生姓名:指导教师:2016年3月8 日实验一 基本函数仿真实验项目: 基本函数仿真实验时间: 2016年 3 月 8 日 星期 二 第 34 节课 实验地点: 1501实验室 实验目的:1、 学习使用MATLAB 软件2、 学习MATLAB 中各种函数,并应用函数分析3、 对MATALB 的进一步的学习了解,熟练掌握MATALB 的各种操纵,学会使用MATALB 解决复杂的运算并学会用MATALB 解决平时学习4、 了解MATALB 的数值运算5、 了解MATALB 的基本函数和命令6、 学习掌握MATALB 有关命令 实验内容: 1、(1) 题目:应用MA TLAB 方法实现单位阶跃信号和矩形脉冲。
(2) 程序清单(源程序)解:对于阶跃函数,MATLAB 中有专门的stairs 绘图命令。
例如,实现)(t 和矩形脉冲的程序如下:t=-1:2; % 定义时间范围向量t x=(t>=0);subplot(1,2,1),stairs(t,x);axis([-1,2,-0.1,1.2]); grid on % 绘制单位阶跃信号波形 t=-1:0.001:1; % 定义时间范围向量t g=(t>=(-1/2))-(t>=(1/2));subplot(1,2,2),stairs(t,g);axis([-1,1,-0.1,1.2]); grid on % 绘制矩形脉冲波形(3) 运行结果(截图)00.20.40.60.8100.20.40.60.81图1 例1图(4)函数解析Subplot:使用方法:subplot (m,n,p )或者subplot (m n p )。
是将多个图画到一个平面上的工具。
其中,m 表示是图排成m 行,n 表示图排成n 列,也就是整个figure 中有n 个图是排成一行的,一共m 行,如果m=2就是表示2行图。
MATLAB实验报告(1-4)
信号与系统MATLAB第一次实验报告一、实验目的1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。
2.学会运用MATLAB表示常用连续时间信号的方法3.观察并熟悉一些信号的波形和特性。
4.学会运用MATLAB进行连续信号时移、反折和尺度变换。
5.学会运用MATLAB进行连续时间微分、积分运算。
6.学会运用MATLAB进行连续信号相加、相乘运算。
7.学会运用MATLAB进行连续信号的奇偶分解。
二、实验任务将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。
三、实验内容1.MATLAB软件基本运算入门。
1). MATLAB软件的数值计算:算数运算向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。
2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn 为结束值。
矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开;矩阵的不同行之间必须用分号”;”或者ENTER分开。
2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。
3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。
举例:计算一个函数并绘制出在对应区间上对应的值。
2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名”2.MATLAB软件简单二维图形绘制1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y)2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表示第p个区域,表达为subplot(mnp)或者subplot(m,n,p)3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin])4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’)5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’)6).输出:grid on举例1:举例2:3.matlab程序流程控制1).for循环:for循环变量=初值:增量:终值循环体End2).while循环结构:while 逻辑表达式循环体End3).If分支:(单分支表达式)if 逻辑表达式程序模块End(多分支结构的语法格式)if 逻辑表达式1程序模块1Else if 逻辑表达式2程序模块2…else 程序模块nEnd4).switch分支结构Switch 表达式Case 常量1程序模块1Case 常量2程序模块2……Otherwise 程序模块nEnd4.典型信号的MATLAB表示1).实指数信号:y=k*exp(a*t)举例:2).正弦信号:y=k*sin(w*t+phi)3).复指数信号:举例:4).抽样信号5).矩形脉冲信号:y=square(t,DUTY) (width默认为1)6).三角波脉冲信号:y=tripuls(t,width,skew)(skew的取值在-1~+1之间,若skew取值为0则对称)周期三角波信号或锯齿波:Y=sawtooth(t,width)5.单位阶跃信号的MATLAB表示6.信号的时移、反折和尺度变换:Xl=fliplr(x)实现信号的反折7.连续时间信号的微分和积分运算1).连续时间信号的微分运算:语句格式:d iff(function,’variable’,n)Function:需要进行求导运算的函数,variable:求导运算的独立变量,n:求导阶数2).连续时间信号的积分运算:语句格式:int(function,’variable’,a,b)Function:被积函数variable:积分变量a:积分下限b:积分上限(a&b默认是不定积分)8.信号的相加与相乘运算9.信号的奇偶分解四、小结这一次实验让我能够教熟悉的使用这个软件,并且能够输入简单的语句并输出相应的结果和波形图,也在一定程度上巩固了c语言的一些语法。
MATLAB数学实验
实验三 圆周率的计算学号: 姓名:XX一、 实验目的1. 本实验涉及概率论、定积分、三角函数等有关知识,要求掌握计算π的三种方法及其原理。
2. 学习和掌握数学软件MATLAB 的使用方法。
二、 实验内容圆周率是一个极其驰名的数。
从有文字记载的历史开始,这个数就引起了外行人和学者们的兴趣。
作为一个非常重要的常数,圆周率最早是出于解决有关圆的计算问题。
仅凭这一点,求出它的尽量准确的近似值,就是一个极其迫切的问题了。
事实也是如此,几千年来作为数学家们的奋斗目标,古今中外一代又一代数学家为此献出了自己的智慧和劳动。
回顾历史,人们对π的认识过程,反映了数学和计算技术发展情形的一个侧面。
π的研究,在一定程度上反映这个地区或时代的数学水平。
德国数学家康托说:“历史上一个国家所算的圆周率的准确程度,可以作为衡量这个国家当时数学发展水平的指标。
”直到19世纪初,求圆周率的值还是数学中的头号难题。
1. 圆周率的计算方法古人计算圆周率,一般是用割圆法。
即用圆的内接或外切多边形来逼近圆的周长。
Archomedes 用正96边形得到35位精度;刘徽用正3072边形得到5位精度;Ludolph V an Ceulen 用正2^62边形得到了35位精度。
这种基于几何的算法计算量大,速度慢,吃力不讨好。
随着数学的发展,数学家们在进行数学研究时有意无意得发现了许多计算圆周率的公式。
下面挑选一些经典的常用公式加以介绍。
除了这些经典公式外,还有很多其他公式和由这些经典公式衍生出来的公式,就不一一列举了。
1) Machin 公式2391a r c t a n451a r c t a n 16-=π ()121...753arctan 121753--++-+-=--n x x x x x x n n 这个公式由英国天文学教授John Machin 于1706年发现。
他利用这个公式计算到100位的圆周率。
Machin 公式每计算一项可以得到1.4位的十进制精度。
MATLAB实验指导书
实验一MATLAB集成环境使用与运算基础一、实验目的1.熟悉启动和退出MA TLAB的方法。
2.熟悉MATLAB命令窗口的组成。
3.掌握建立矩阵的方法。
4.掌握MATLAB各种表达式的书写规则以及常用函数的使用。
二、实验原理1.MA TLAB的启动MATLAB系统的启动有三种常见方法:1)使用Windows“开始”菜单。
2)运行MATLAB系统启动程序MA TLAB.exe。
3)利用快捷方式。
2.MA TLAB系统的退出要退出MA TLAB系统,也有三种常见方法:1)在MA TLAB主窗口File菜单中选择Exit MATLAB 命令。
2)在MA TLAB命令窗口输入Exit或Quit命令。
3)单击MATLAB主窗口的“关闭”按钮。
3.MA TLAB帮助窗口进入帮助窗口可以通过以下三种方法:1)单击MATLAB主窗口工具栏中的help按钮。
2)在命令窗口中输入helpwin、helpdesk或doc。
3)选择help菜单中的“MA TLAB help”选项。
4.MA TLAB帮助命令1)help命令在MA TLAB命令窗口直接输入help命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。
同样,可以通过help加函数名来显示该函数的帮助说明。
2)lookfor命令help命令只搜索出那些关键字完全匹配的结果,lookfor命令对搜索范围内的m文件进行关键字搜索,条件比较宽松。
3)模糊查询用户只要输入命令的前几个字母,然后按tab键,系统就会列出所有以这几个字母开头的命令。
5.赋值语句1)变量=表达式2)表达式6.矩阵的建立1)直接输入法:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分开,不同行的元素之间用分号分开。
2)利用m 文件建立矩阵3)利用冒号表达式建立一个向量 e1:e2:e3 4) 利用linspace 函数产生行向量 linspace(a,b,n).三、实验仪器和设备1.计算机1台。
第七节用MATLAB求级数的和及其实验
第七节 用MATLAB 求级数的和及其实验本节介绍用MATLAB 软件求级数的部分和,级数的和,判别级数的敛散性等的方法及其实验。
一、用MATLAB 求级数的部分和和级数的和symsum 是MATLAB 软件系统中符号求和(Symbolic summation )函数,它的调用格式和主要功能如下:调用格式一: symsum(S)其中S 为待求和的级数的通项表达式。
symsum(S)的功能是求出通项为S 的级数关于系统默认变量的有限和(例如n 从0到k-1的有限和)中含默认变量的部分(参见例1(2)S1和S2)。
如果不能确定系统默认变量,则可以用findsym(系统默认变量S) 命令来查询。
调用格式二: symsum(S,v)其中S 为待求和的级数的通项表达式,v 为求和变量。
symsum(S,v) 的功能是求出通项为S 的级数关于变量v 的有限和(例如v 从0到k-1的有限和)中含默认变量的部分(参见例1(3)S3和S4)。
如果不能确定自己所需的变量是系统默认变量,则需要在symsum 命令中加入求和变量的说明,格式为:symsum(S,v)调用格式三: symsum (S,a,b)或symsum (S,v,a,b)这种命令的功能是求从a 到 b 的级数的和。
其中b 可以取有限数,也可以取无穷(b=inf )。
此命令即可以用于求级数的部分和∑=nk k u 1,也可用于判别级数∑∞=1n nu 的收敛性。
【例1】求级数的下列部分和:(1) )5()1(1501+-+=∑n n xn n ;(2))sin()1(211k a kn k -∑-=)1,0(≠>a a ;(3) 23110m m n m +-=∑。
解(1)输入程序:>> syms n xS50= symsum((-1)^(n+1)*x/(n*(n+5)),n,1,50)运行后屏幕显示:S50 =16481582353306899727903/136874465604198187866000*x(2)输入程序:>> syms n aS1=symsum((-1)^n*a^2*sin(n))S2=symsum((-1)^n*a^2*sin(n),n,0,n-1)运行后屏幕显示:S1 =-1/2*(-1)^n*a^2*sin(n)+1/2*a^2*sin(1)/(cos(1)+1)*(-1)^n*cos(n)S2 =-1/2*(-1)^n*a^2*sin(n)+1/2*a^2*sin(1)/(cos(1)+1)*(-1)^n*cos(n)-1/2*a^2*sin(1)/(cos(1)+1)(3)输入程序: 23110m m n m +-=∑>> syms n mS3=symsum(3^(m+1)/2^m,m)S4=symsum(3^(m+1)/2^m,m,0,m-1)运行后屏幕显示:S3 =6*(3/2)^mS4 =6*(3/2)^m-6【例2】讨论下列级数的敛散性。
MATLAB实验
MATLAB 实验报告班级:14通信1班 学号:201424124124 姓名:林启铭实验一 MATLAB 运算基础(一)一、实验目的1、掌握建立矩阵的方法。
2、掌握MATLAB 各种表达式的书写规则以及各种运算方法。
二、实验内容1、求下列表达式的值。
(1)20185sin 21ez += MATLAB 代码:z1=2*sin(85*pi/180)/(1+exp(2))%将角度化为弧度z1 =0.2375(2)()x x z ++=1ln 212,其中⎢⎣⎡-=45.02x ⎥⎦⎤+521i (可以分别对矩阵和元素群运算)MATLAB 代码:>> x=[2,1+2i;-0.45,5]x =2.0000 + 0.0000i 1.0000 + 2.0000i-0.4500 + 0.0000i 5.0000 + 0.0000i>> z2=1/2*log(x+sqrt(1+x))z2 =0.6585 + 0.0000i 0.6509 + 0.4013i-0.6162 + 0.0000i 1.0041 + 0.0000i(3)()3.0sin 232.03.0+⋅-=a e e z aa , 0.3,9.2,8.2,...,8.2,9.2,0.3---=a (结果请用图形表示)(提示:利用冒号表达式生成a 向量;求各点的函数值时用点乘运算)MATLAB 代码:>> a=-3.0:0.1:3.0;%利用冒号表达式生成a 向量,加分号结尾避免大量数据刷屏 >> z3=(exp(0.3.*a)-exp(0.2.*a)).*sin(a+0.3)/2;>> plot(a,z3);%绘制出以a 为自变量,z3为因变量的曲线>>曲线图:2、已知⎢⎢⎢⎣⎡=33412A 65734⎥⎥⎥⎦⎤-7874 和 ⎢⎢⎢⎣⎡=321B 203-⎥⎥⎥⎦⎤-731 求下列表达式的值:(1)A+6*B 和A-B+I (其中I 为单位矩阵)。
matlab实验内容答案解析
实验报告说明:matlab 课程实验需撰写8个实验报告,每个实验报告内容写每次实验内容中标号呈黑体大号字显示的题目。
第一次实验内容:实验一 MATLAB 运算基础一、实验目的1.熟悉启动和退出MATLAB 的方法。
2.熟悉MATLAB 命令窗口的组成。
3.掌握建立矩阵的方法。
4.掌握MATLAB 各种表达式的书写规则以及常用函数的使用。
二、实验内容1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1)22sin 8511z e ︒=+(2)12ln(2z x =,其中2120.455i +⎡⎤=⎢⎥-⎣⎦(3)0.30.33sin(0.3), 3.0, 2.9, 2.8,,2.8,2.9,3.02a ae e z a a --=+=---提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。
(4)2220141122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪--≤<⎩,其中t =0:0.5:2.5 提示:用逻辑表达式求分段函数值。
2.已知12344347873657A -⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,131203327B -⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦求下列表达式的值:(1) A+6=B 和A-B+I(其中I 为单位矩阵)。
(2) A*B 和A.*B 。
(3) A^3和A^.3 。
(4) A/B 和B\A 。
(5)[A ,B]和[A([1,3],;);B^2] 。
3.设有矩阵A 和B12345678910111213141516171819202122232425A ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦, 30161769023497041311B ⎡⎤⎢⎥-⎢⎥⎢⎥=-⎢⎥⎢⎥⎢⎥⎣⎦(1) 求它们的乘积C 。
(2) 将矩阵C 的右下角3×2子矩阵赋给D (3) 查看MATLAB 工作空间使用情况。
4.完成下列操作:(1)求[100,999]之间能被21整除的数的个数。
基于matlab的数学实验-高等数学中的若干问题1
基于MATLAB的数学实验——高等数学中的若干问题(一)§1.1数列及其极限1.1.1引言极限(Limit )是高等数学中应用最普遍的基本概念之一,因而,正确地理解和把握极限的概念是非常重要的,借助于直观的想象和解释,不仅可以帮助我们理解和把握这一表述抽象的数学定义,而且对利用极限定义的其他数学概念如微分(Differential)、积分(Integral)和无穷级数的敛散性(Convergence and Divergence of Infinite Series)等重要概念的理解也是有帮助的。
1.1.2数列的收敛与发散例1.1让我们首先考察如下的数列:xnnn=+sin()12,n=12,, (1.1)如果我们把xn 看成是沿x轴运动的点P在t n=时刻所处的位置,那么容易看出(也容易证明),随着时间t→+∞,动点P趋近于原点0。
这个事实可借助于软件MATLAB直观地观察到,应用如下程序sequence01.m:%CONVERGENCE AND LIMIT OF SEQUENCEk=700;n=1:3:k;x=sin(n)./(10+n);e=input('Input epsilon, Please: epsilon=')t=e\10;for m=1:t;if m>1/e;N=mbreakendendplot(n,x)hold ontitle('CONVERGENCE AND LIMIT OF SEQUENCE')gtext('xn = sin(n)/(10+n)')QQ:121681692Email:*****************可得到图1.1:用上述程序还可以对任意给定的ε>0,求出N,使得当n N>时,满足不等式:xn -<0ε。
此外,我们还可以使用MATLAB程序文件seqnummovie1.m和seqnummovie2.m演示动点P趋近于原点0的动态过程。
MATLAB数学实验报告
MATLAB数学实验报告实验日期:2012.5学院:能源与动力工程班级:化工11组员:王旭 2110308015 陆清华 2110308011 仲秋晨 2110308024一、实验目的1.学习MATLAB软件的循环和选择结构,进一步提高MATLAB编程能力;2.通过对一些基础数学实验的学习和实践,了解级数逼近和数值积分、用最小二乘法进行数据拟合等的数学思想和数学方法,开拓数学视野,提高数学水平。
二、实验内容1.(1)问题:对于数列{√n},n=1,2,···,求当其前n项和不超过1000时的值以及和的大小。
(2)分析:这个问题书上已有例题解答,不过书上的程序运行结果最后一行结果并不是我们所要求的解的答案,而倒数第二行则是所求问题的解。
以下是修改后的程序已解决此问题。
(3)程序:clear;clc;n=1;s=1;while s<=1000fprintf('n=%.0f,s=%.4f\n',n,s)n=n+1;s=s+sqrt(n);end(4)运行结果···n=123,s=914.7651n=124,s=925.9007n=125,s=937.0810n=126,s=948.3060n=127,s=959.5754n=128,s=970.8891n=129,s=982.2469n=130,s=993.64872.(1)问题:1790年到1980年各年美国人口数的统计数据如下表:长的近似曲线(设美国人口总容纳量为10亿),并预测后00年的人口数,通过与实际数据相比较,对两种预测结果进行分析。
(2)分析:根据题目要求分别用Malthas模型和Logistic模型建立美国人口增长的近似曲线。
(3)程序:%Malthasclear;clft=1790:10:1980;N=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.0 72.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5];plot(t,N,'k.','markersize',20);axis([1790 2080 3 400]);grid;hold onpause(0.5)n=20;a=sum(t(1:n));b=sum(t(1:n).*t(1:n));c=sum(log(N(1:n)));d=sum(t(1:n).*log(N(1:n)));A=[n a;a b];B=[c;d];p=inv(A)*Bx=1790:2000;y=exp(p(1)+p(2)*x);plot(x,y,'r-','linewidth',2)%Logisticclear;clft=1790:10:1980;N=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.0 72.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5];plot(t,N,'k.','markersize',20);axis([1790 2080 0 1000]);grid;hold onpause(0.5)n=20;k=1000;M=N.^-1-k^-1;a=sum(t(1:n));b=sum(t(1:n).*t(1:n));c=sum(log(M(1:n)));d=sum(t(1:n).*log(M(1:n)));A=[n a;a b];B=[c;d];p=inv(A)*Bx=1790:10:2080;y=1./((1./k)+exp(p(1)+p(2)*x));plot(x,y,'r-','linewidth',2)3.(1)追击问题:在一边长为1的正方形跑到的四个顶点上各站有1人,他们同时开始以等速度沿跑道追逐下一个人,在追击过程中,每个人时刻对准目标,试模拟追击路线。
MATLAB原理应用实验报告第三章(符号运算)
《MATLAB原理及应用》实验报告第三章MATLAB的符号运算一.实验目的1、掌握符号对象的命名方法2、掌握符号表达式的基本运算3、掌握符号级数的求法二.实验设备计算机、MATLAB软件三.实验内容1.确定符号表达式的变量为了简化符号对象的操作和计算,MATLAB为用户提过了findsym命令。
r=findsym(S)确定符号表达式或者矩阵S中自由符号变量r=findsym(S,n)确定符号表达式或者矩阵S中靠近x最近的n个独立符号变量。
【实验3-1】使用MA TLAB的命令确定符号表达式的变量。
在MATLAB的命令窗口中输入下例内容:>> syms a x y z t确定下面简单符号表达式中的符号变量信息:>>findsym(sin(pi*t))ans =t确定下面简单符号表达式中的符号变量信息:>>findsym(x+i*y-j*z)ans =x, y, z确定下面简单符号表达式中的符号变量信息:>>findsym(a+y,1)ans =y2.符号表达式元算1.符号表达式的四则运算表达式的四则运算与数字运算一样,用+、-、/、运算符实现,其运算结果依然是一个符号表达式。
【实验3-2】在MATLAB的命令窗口中输入下例内容:>>f=sym('2*x^2+3*x-5');%定义符号表达式g=sym('x^2-x+7');f+gans =3*x^2+2*x+2ans =3*x^2+2*x+2>> f^gans =(2*x^2+3*x-5)^(x^2-x+7)3.符号表达式的提取分子和分母运算如果符号表达式是一个有理分式或可以展开为有理分式,可以可利用numden函数来提取符号表达式的分子或分母。
期一般调用格式为[n,d]=numden函数来提取符号表达式该函数提取的符号表达式s的分子和分母,分别将它们存放在n和d中。
信号与系统Matlab实验作业
实验一典型连续时间信号和离散时间信号一、实验目的掌握利用Matlab画图函数和符号函数显示典型连续时间信号波形、典型时间离散信号、连续时间信号在时域中的自变量变换。
二、实验内容1、典型连续信号的波形表示(单边指数信号、复指数信号、抽样信号、单位阶跃信号、单位冲击信号)1)画出教材P28习题1-1(3) ()[(63)(63)]t=----的波形图。
f t e u t u t2)画出复指数信号()()j t f t e σω+=当0.4, 8σω==(0<t<10)时的实部和虚部的波形图。
t=0:0.01:10;f1='exp(0.4*t)*cos(8*t)';f2='exp(0.4*t)*sin(8*t)';figure(1)ezplot(f1,t);grid on;figure(2)ezplot(f2,t);grid on;3)画出教材P16图1-18,即抽样信号Sa(t)的波形(-20<t<20)。
t=-10:0.01:10;f='sin(t)/t';ezplot(f,t);grid on;4)用符号函数sign画出单位阶跃信号u(t-3)的波形(0<t<10)。
t=0:0.01:10;f='(sign(t-3)+1)/2';ezplot(f,t);grid on;5)单位冲击信号可看作是宽度为∆,幅度为1/∆的矩形脉冲,即t=t 1处的冲击信号为11111 ()()0 t t t x t t t otherδ∆⎧<<+∆⎪=-=∆⎨⎪⎩画出0.2∆=, t 1=1的单位冲击信号。
t=0:0.01:2;f='5*(u(t-1)-u(t-1.2))';ezplot(f,t);grid on;axis([0 2 -1 6]);2、典型离散信号的表示(单位样值序列、单位阶跃序列、实指数序列、正弦序列、复指数序列)编写函数产生下列序列:1)单位脉冲序列,起点n0,终点n f,在n s处有一单位脉冲。
数值分析课程设计报告(MATLAB版)
(2)取右端向量 b 的三位有效数字得 b [1.83 1.08 0.783]T ,求方程组的准确 解 X ,并与 X 的数据 [1 1 1]T 作比较 。说明矩阵的病态性。
算法及相应结果: (1)在 MATLAB 命令窗口里输入如下命令: >> H=[1 1/2 1/3;1/2 1/3 1/4;1/3 1/4 1/5]; b=[11/6 13/12 47/60]'; >> x=H\b 回车得到结果为: x = 1.0000 1.0000 1.0000 (2)紧接着在上题基础上继续输入如下命令: >> c=[1.83 1.08 0.783]'; x1=H\c 回车得到如下结果: x1 = 1.0800 0.5400 1.4400
问题分析:考虑由直线段(2 个点)产生第一个图形(5 个点)的过程,设 P 1 和 P5 分别为原始直线段的两个端点。现在需要在直线段的中间依次插入三个点 。显然, P2 位于 P P2 , P3 , P4 产生第一次迭代的图形(图 1-4) 1 点右端直线段的三分 之一处, P4 点绕 P2 旋转 60 度(逆时针方向)而得到的,故可以处理为向量 P2 P4 经正交变换而得到向量 P2 P3 ,形成算法如下: (1) P2 P 1 (P 5 P 1) / 3 ; (2) P4 P 1 2( P 5 P 1) / 3 ; (3) P3 P2 ( P4 P2 ) AT ; 在算法的第三步中,A 为正交矩阵。
运行结果: 0.0884 0.0580 0.0431 0.0343 0.0285 0.0243 0.0212 0.0188 0.0169 0.0154 0.0141 0.0130 0.0120 0.0112 0.0105 0.0099 0.0094 0.0087 0.0092 0.0042 (2)从 I 30 较粗略的估计值出发,我们不妨取 0.01. 源程序:
Matlab编程与应用习题和一些参考答案
Matlab 上机实验一、二1.安装Matlab 软件。
2.验证所学内容和教材上的例子。
3.求下列联立方程的解⎪⎪⎩⎪⎪⎨⎧=+-+-=-+=++-=--+41025695842475412743w z y x w z x w z y x w z y x>> a=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10];>> b=[4;4;9;4];>> c=a\bc =5.22264.45701.47181.59944.设⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡------=81272956313841A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----=793183262345B ,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所有方阵的逆阵。
>> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8];>> B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7];>> C1=A*B'C1 =19 -82 3012 27 3-38 54 29>> C2=A'*BC2 =-15 16 -24 3663 -17 93 -10522 6 117 -6019 46 84 -10>> C3=A.*BC3 =5 16 24 -26-18 -12 -15 72-2 -21 108 -56>> inv(C1)ans =0.0062 0.0400 -0.0106-0.0046 0.0169 0.00300.0168 0.0209 0.0150>> inv(C2)Warning: Matrix is close to singular or badly scaled.Results may be inaccurate. RCOND = 8.997019e-019.ans =1.0e+015 *-0.9553 -0.2391 -0.1997 0.27000.9667 0.2420 0.2021 -0.2732-0.4473 -0.1120 -0.0935 0.1264-1.1259 -0.2818 -0.2353 0.3182>> inv(C3)Error using ==> invMatrix must be square.5.设 ⎥⎦⎤⎢⎣⎡++=)1(sin 35.0cos 2x x x y ,把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线。
实验三MATLAB的程序设计
end
ifk==0
Y=1;
elseifk==1&&n==1
Y=1;
elseifk<=n
Y=(n/k)*c(k-1,n-1);
end
程序测试:
>> c(0,0)
ans =
1
>> c(0,1)
ans =
1
>> c(3,4)
ans =
4
7,计算以下和式,并估计其求和公式以及验证:
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k;
end
测试:
>> s(3)
ans =
6
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k^2;
end
测试:
>> s(3)
ans =
14
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k^3;
end
测试:
>> s(2)
4
>> Joseph0(7,4)
2
11,求出 之间的所有素数;
M函数文件:
functionout = nprimes(N)
A= [1:N];
A(1)=0;
i=2;
whilei<= floor(sqrt(N));
forj= 2:fix(N/i)
A(i*j) = 0;
end;
i = A(find(A>i,1));
MATLAB级数与方程符号求解
第13讲 级数与方程符号求解(第9章MATLAB 符号计算)目的:1、掌握级数符号求和函数2、将函数展开为泰勒级数3、掌握代数方程符号求解的方法。
4、掌握微分方程符号求解的方法———————————————————————————————————— 1.掌握级数符号求和函数symsum( )()bk af k =∑=symsum(f,k,a,b)。
举例如下:(1)求11!n n ∞=∑ (该级数收敛) >>syms n;>>f=1/factorial(n); >>s=symsum(f,n,1,inf) s = exp(1)-1 (2)求11n n∞=∑ (该级数发散) >>syms n;>>s=symsum(1/n,n,1,inf) s = inf (3)求和函数211n n n x∞−=∑(级数收敛域为1x <)>>syms n x; >>f=n^2*x^(n-1); >>s(x)=symsum(f,n,1,inf)s(x) = piecewise(abs(x) < 1, -(x^2 + x)/(x*(x - 1)^3))上式结果中的piecewise是条件定义表达式:pw=piecewise(cond1,val1,cond2,val2,...)其含义是:如果条件condN成立,那么pw的值为valN,我们通常使用piecewise定义分段函数。
上题结果中之所以出现piecewise是因为级数是有收敛域的,只有当x在收敛域内时级数的和函数才存在。
如果不想结果中出现piecewise,可以在求和之前将x的取值范围用assume语句设置为级数的收敛域,但收敛域需要自己求出来。
例如:>>syms n x;>>assume(abs(x)<1);>>s(x)=symsum(n^2*x^(n-1),n,1,inf)s(x) = -(x^2 + x)/(x*(x - 1)^3)注:(1)熟悉piecewise后我们可以不设置x的取值范围,直接使用symsum求和,这样还可以变相的得到级数的收敛域。
实验七_matlab求解级数有关计算
实验七 matlab 求解级数有关计算1.级数的基本概念常数项级数:称用加号将数列n a 的项连成的式子+++++n a a a a 321为(常数项)无穷级数,简记为∑∞=1n na。
称级数∑∞=1n na前n 项构成的和∑==++++=nk kn n a a a a a S 1321为级数的部分和。
若SS n n =∞→lim ,则称级数∑∞=1n na收敛,其和为S 。
Taylor 级数:设函数)(x f 在包含a x =的区域内具有各阶导数,则称幂级数+-++-+-+=-∑∞=n n n n n a x n a f a x a f a x a f a f a x n a f )(!)()(!2)())((')()(!)()(2)2(0)(为函数)(x f 在a x =的Taylor 级数,当0=a 时称为Maclaurin(麦克劳林)级数。
2.级数的MATLAB 命令MATLAB 中主要用symsum,taylor 求级数的和及进行Taylor 展开。
symsum(s,v,a,b) 表达式s 关于变量v 从a 到b 求和 taylor(f,a,n) 将函数f 在a 点展为n-1阶Taylor 多项式 可以用help symsum, help taylor 查阅有关这些命令的详细信息例1 先用taylor 命令观测函数x y sin =的Maclaurin 展开式的前几项,例如观测前6项, 相应的MA TLAB 代码为:>>clear; syms x;>>taylor(sin(x),0,1) >>taylor(sin(x),0,2) >>taylor(sin(x),0,3) >>taylor(sin(x),0,4) >>taylor(sin(x),0,5) >>taylor(sin(x),0,6)结果为:ans =0 ans =x ans =xans =x-1/6*x^3 ans =x-1/6*x^3ans =x-1/6*x^3+1/120*x^5然后在同一坐标系里作出函数x y sin =和它的Taylor 展开式的前几项构成的多项式函数,,!5!3,!3,533 x x x y x x y x y +-=-==的图形,观测这些多项式函数的图形向x y sin =的图形的逼近的情况。
级数的MATLAB实现
实验准备
1.数项级数、幂级数的收敛性判断; 2.幂级数的展开、级数求和; 3.Fourier 级数的概念、展开方法;
实验内容
1.函数的幂级数展开 2.收敛级数的和 3.Fourier 级数展开
软件命令
表 9-1 Matlab 级数操作命令 函数名称 syms sym taylor symsum subs plot 调用格式 syms 变量名 1,变量名 2,… sym('x',…) taylor() symsum(s,v,a,b) subs(s,old,new) plot(x1,y1,'options',x2,y2,'options',…) 说 明 定义符号变量 定义符号变量 幂级数展开 级数求和 替换求值 绘制散点图
∞
例 2 试求级数
∑ ln(1 + n
n =1
1
2Hale Waihona Puke ) 的和解 用 symsum 命令求解: syms n ↙ symsum(log(1+1/n^2),1,inf) ↙ ans= sum(log(1+1/n^2),n=1..inf) 此 结 果 表 示 symsum 命 令 不 能 求 得 其 和 。 我 们 转 而 采 用 数 值 方 法 计 算 部 分 和
解 创建符号变量 n 和 x,用 symsum 命令计算各级数的和: syms n x ↙ symsum(1/n,1,inf) ↙ ans= inf
2
分析实验 mage
∞
知级数
∑ n 发散至无穷大。
n =1
1
symsum(1/n^2,1,inf) ↙ ans= 1/6*pi^2
1 π2 知级数 ∑ 2 收敛,且其和为 6 n =1 n
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三 级数
【实验目的】
1.了解级数的有关理论。
2.了解函数的Taylor 展开式。
3.学习,掌握MATLAB 软件中有关命令。
【实验内容】
1.求函数sin y x =的级数,并考察其Taylor 展开式的前几项构成的多项式函数的图形向sin y x =的图形的逼近情况。
2.计算级数211n n
∞=∑的值。
3.验证Euler 公式11
1lim(1ln )0.577123x C n n →∞
=++++-= 。
【实验准备】
1.级数的基本概念。
数项级数;Taylor 级数。
2.级数的MATLIB 命令。
主要用symsum,taylor 求级数的和及进行Taylor 展开式。
【实验重点】
1、级数的计算
【实验难点】
1、无穷级数的计算
【实验方法与步骤】
练习1 先用Taylor 命令观察函数sin y x =Maclaurin 展开式的前几项,若观察前6项,相应的MATLIB 代码为
>>clear;syms x;
>>taylor(sin(x),0,2) >>taylor(sin(x),0,3) >>taylor(sin(x),0,4) >>taylor(sin(x),0,5) >>taylor(sin(x),0,6) 运行结果为
>> taylor(sin(x),0,1) ans =
>> taylor(sin(x),0,2) ans =
x
>> taylor(sin(x),0,3) ans =
x
>> taylor(sin(x),0,4) ans =
x-1/6*x^3
>> taylor(sin(x),0,5) ans =
x-1/6*x^3
ans =
x-1/6*x^3+1/120*x^5
然后在同一坐标系里作出函数sin
y x
=和其Taylor展开式的前几
项构成的多项式函数,
y x
=
3
3!
x
y x
=-,
35
,,
3!5!
x x
y x
=-+ 的图形,观察这些
多项式函数的图形向sin
y x
=的图形逼近的情况。
在区间[0,]π上作函数与多项式函数sin
y x
=图形的MATLIB代码为
>>x=0:0.01:pi;
>>y1=sin(x); y2=x; y3=x-x.^3/6;y4=x-x.^3/6+x.^5/120;
>>plot(x,y1,x,y2,':',x,y3,':',x,y4,':')
运行结果如图3.1,其中实线表示函数sin
y x
=的图形。
类似的,根据函数的Taylor级数
246
cos 1,(,)2!4!6!
x x x x x =-+-+∈-∞∞ 231,(,)2!3!!n
x
x x x e x x n =++++++∈-∞∞ 234
ln(1),(1,1]234
x x x x x x +=-+-+∈- 2
(1)(1)1,(1,1)2!x x x αααα-+=+++∈-
作图观察其展开式的前几项多项式函数逼近原函数的情况。
练习2 利用幂级数计算指数函数。
指数函数可展开为幂级数
231,(,)2!3!!n
x
x x x e x x n =++++++∈-∞∞ 其通项为22
n ,因此用下列循环相加就可计算出这个级数。
>>x=input('x=');n=input('n=');y=1;%输入原始数据,初始化y
>>for i=1:n y=y+x^i/prod(1:i);end,vpa(y,10),
%将通项循环相加,得y
执行此程序,分别带入x=1,2,4,-4这四个数,取n=0,得到结果如下:
2.718281801,7.388994709,54.44310406,.9671957672e-1
用vpa(exp(1),10),vpa(exp(2),10),vpa(exp(4),10),vpa(exp(-4),10)命令可得?的有10位精确有效数字的结果为
2.718281828,7.389056099,54.59815003,.1831563889e-1
对照可知,用级数法计算的有效数字分别为8,4,2,0位。
因此这个程序虽然原理上正确,但不适用。
对不同的x ,精度差
别很大。
还存在其它的问题:
这个程序不能用于x的元素群运算;当x为负数时,它成为交错
n次乘法,n很大时,乘法次数太多,级数,收敛很慢;该程序要做2
2
计算速度很低;对不同的x,要取不同的n才能达到精度要求,因此n不应由用户输入,应该由程序按精度要求来选。
针对上面的四个问题,可以采用下面的四种方法改进:
(1)允许数组输入,改进输出显示
x=input('x=');n=input('n=');y=ones(size(x));
%输入原始数据,初始化y
for i=1:n
y=y+x.^i/prod(1:i);%循环相加
s1=sprintf('%13.0f',i);s2=sprintf('%15.8f',y);
%将结果变为字符串
disp([s1,s2])%显示
end,
执行此程序,输入x=[1 2 4 -4],n=10,结果为
1 2.00000000 3.00000000 5.00000000 -3.00000000
2 2.50000000 5.00000000 13.00000000 5.00000000
3 2.66666667 6.33333333 23.66666667 -5.66666667
4 2.70833333 7.00000000 34.33333333 5.00000000
5 2.71666667 7.26666667 42.86666667 -3.53333333
6 2.71805556 7.35555556 48.55555556 2.15555556
7 2.71825397 7.38095238 51.80634921 -1.09523810
8 2.71827877 7.38730159 53.43174603 0.53015873 9 2.71828153 7.38871252 54.15414462 -0.19223986
10 2.71828180 7.38899471 54.44310406 0.09671958
(2)可以利用exp(-x)=1/exp(x)来避免交错级数的计算。
(3)为了减少乘法次数,设一个中间变量z ,它的初始值为z=ones(sine(x)),把循环体中的计算语句改为
y=y+z;z=x.^z/i;
这样,求得的z 就是z=x.^i/i ,于是每个循环只需做一次乘法,计算整个级数只需n 次乘法。
按这种方法,y 的初始值改为y=zeros(size(x))。
(4)为了按精度选择循环次数,不应使用for 循环,而用while 语句,它可以设置循环的条件语句,通常可用y+z-y>tol ,tol 是规定的允许误差,只要相邻的两次y 值之差大于tol ,循环就继续进行,直到小于tol 为止。
当x 较大时,exp(x)仍能很快收敛,还可以利用关系式
exp()(exp())k x x p
=,令x1=x/k 。
k 通常取大于x 而接近x 的2的幂,例如x=100,就取k=128,可以保证x1的绝对值小于1,这时级数收敛的很快。
从练习中可以看出,n 取10时就能保证7位有效数字,而128exp(1)x 可以化为222(((exp(1))))x x = ,即exp(x1)的7次自乘,总共享17次乘法就可完成?222exp(100)(((exp(100/128))))= 的计算,既保证了精度,又提高了速度。
【练习与思考】
习题1用Taylor 命令求出函数)(x f y =的Maclaurin 展开式的前几项,然后在同一坐标系利作出函数)(x f y =和它的Maclaurin 展开式的前几项构成的多项式函数的图形,观察这些多项式函数的图形向)(x f y =的图形的逼近情况。
(1)x x f arcsin )(=;
(2)x x f arctan )(=;
(3)2)(x e x f =;
(4)x x f 2sin )(=;
(5)x e x f x
-=1)(;
(6))1ln()(2x x x f ++=。
习题2求当8,7,6,5,4=k 时,公式∑∞==1221n k k
k m n π中k m 的值。