实验七 matlab求解级数有关计算
实验七连续信号与系统复频域分析的MATLAB实现1

实验七 连续信号与系统复频域分析的MATLAB 实现一、实验目的1. 掌握连续时间信号拉普拉斯变换的MATLAB 实现方法;2. 掌握连续系统复频域分析的MATLAB 实现方法。
二、实验原理1. 连续时间信号的拉普拉斯变换连续时间信号的拉普拉斯正变换和逆变换分别为:⎰∞∞--=dt e t f s F st )()(⎰∞+∞-=j j stds e s F j t f σσπ)(21)(Matlab 的符号数学工具箱(Symbolic Math Toolbox )提供了能直接求解拉普拉斯变换和逆变换的符号运算函数laplace()和ilaplace ()。
下面举例说明两函数的调用方法。
(1)拉普拉斯变换例1.求以下函数的拉普拉斯变换。
)()()2()()()1(221t te t f t e t f t t εε--==解:输入如下M 文件:syms tf1=sym('exp(-2*t)*Heaviside(t)'); F1=laplace(f1) %求f1(t)的拉普拉斯变换 f2=sym('t*exp(-t)*Heaviside(t)'); F2=laplace(f2) 运行后,可得如下结果:F1 = 1/(s+2) F2 = 1/(s+1)^2 (2)拉普拉斯逆变换例2.若系统的系统函数为1]Re[,231)(2->++=s s s s H 。
求冲激响应)(t h 。
解:输入如下M 文件:H=sym('1/(s^2+3*s+2)');h=ilaplace(H) %求拉普拉斯逆变换运行后,可得如下结果:h=exp(-t)-exp(-2*t) 2. 连续系统的复频域分析 若描述系统的微分方程为∑∑===Mj j j Ni i i t f b t ya 0)(0)()()(则系统函数为)()()()()(00s A s B sa sb s F s Y s H Ni ii Mj jj===∑∑== 其中,∑∑====Mj j j Ni i i s b s B s a s A 0)(,)(。
matlab数学实验

《管理数学实验》实验报告班级姓名实验1:MATLAB的数值运算【实验目的】(1)掌握MATLAB变量的使用(2)掌握MATLAB数组的创建,(3)掌握MA TLAB数组和矩阵的运算。
(4)熟悉MATLAB多项式的运用【实验原理】矩阵运算和数组运算在MA TLAB中属于两种不同类型的运算,数组的运算是从数组元素出发,针对每个元素进行运算,矩阵的运算是从矩阵的整体出发,依照线性代数的运算规则进行。
【实验步骤】(1)使用冒号生成法和定数线性采样法生成一维数组。
(2)使用MA TLAB提供的库函数reshape,将一维数组转换为二维和三维数组。
(3)使用逐个元素输入法生成给定变量,并对变量进行指定的算术运算、关系运算、逻辑运算。
(4)使用MA TLAB绘制指定函数的曲线图,将所有输入的指令保存为M文件。
【实验内容】(1)在[0,2*pi]上产生50个等距采样数据的一维数组,用两种不同的指令实现。
0:(2*pi-0)/(50-1):2*pi 或linspace(0,2*pi,50)(2)将一维数组A=1:18,转换为2×9数组和2×3×3数组。
reshape(A,2,9)ans =Columns 1 through 71 3 5 7 9 11 132 4 6 8 10 12 14Columns 8 through 915 1716 18reshape(A,2,3,3)ans(:,:,1) =1 3 52 4 6ans(:,:,2) =7 9 118 10 12 ans(:,:,3) =13 15 17 14 16 18(3)A=[0 2 3 4 ;1 3 5 0],B=[1 0 5 3;1 5 0 5],计算数组A 、B 乘积,计算A&B,A|B,~A,A= =B,A>B 。
A.*Bans=0 0 15 121 15 0 0 A&Bans =0 0 1 11 1 0 0 A|Bans =1 1 1 11 1 1 1~Aans =1 0 0 00 0 0 1A==Bans =0 0 0 01 0 0 0A>=Bans =0 1 0 11 0 1 0(4)绘制y= 0.53t e -t*t*sin(t),t=[0,pi]并标注峰值和峰值时间,添加标题y= 0.53t e -t*t*sint ,将所有输入的指令保存为M 文件。
高等数学:MATLAB实验

MATLAB实验
2.fplot绘图命令 fplot绘图命令专门用于绘制一元函数曲线,格式为:
fplot('fun',[a,b]) 用于绘制区间[a,b]上的函数y=fun的图像.
MATLAB实验 【实验内容】
MATLAB实验
由此可知,函数在点x=3处的二阶导数为6,所以f(3)=3为 极小值;函数在点x= 1处的二阶导数为-6,所以f(1)=7为极大值.
MATLAB实验
例12-10 假设某种商品的需求量q 是单价p(单位:元)的函 数q=12000-80p,商 品的总成本C 是需求量q 的函数 C=25000+50q.每单位商品需要纳税2元,试求使销售 利润达 到最大的商品单价和最大利润额.
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验 实验九 用 MATLAB求解二重积分
【实验目的】 熟悉LAB中的int命令,会用int命令求解简单的二重积分.
MATLAB实验
【实验M步A骤T】 由于二重积分可以化成二次积分来进行计算,因此只要
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
实验七 应用 MATLAB绘制三维曲线图
【实验目的】 (1)熟悉 MATLAB软件的绘图功能; (2)熟悉常见空间曲线的作图方法.
【实验要求】 (1)掌握 MATLAB中绘图命令plot3和 mesh的使用; (2)会用plot3和 mesh函数绘制出某区间的三维曲线,线型
MATLAB中的数学计算方法详解

MATLAB中的数学计算方法详解在科学研究和工程领域中,数学计算方法的应用是不可避免的。
MATLAB作为一种强大的数学工具,提供了丰富的数学函数和算法,为用户提供了便捷的数学计算方式。
本文将详细介绍MATLAB中常用的数学计算方法,包括数值计算、符号计算以及优化算法等。
一、数值计算方法数值计算是MATLAB中应用最广泛的数学计算方法之一。
它通过将数值代入数学模型,利用数值逼近的方式求得近似解。
MATLAB提供了各种数值计算函数,如插值、积分、微分等。
下面我们将介绍其中几种常用的数值计算方法。
1. 插值方法插值是一种通过已知数据点来估计未知数据点的方法。
在MATLAB中,可以使用interp1函数实现一维数据的插值。
该函数支持多种插值方法,例如线性插值、样条插值等。
用户只需提供已知的数据点和插值点,即可得到插值结果。
2. 数值积分方法数值积分是计算定积分近似值的方法。
在MATLAB中,可以使用quad函数来进行一维定积分计算。
该函数采用自适应的数值积分算法,能够适应不同类型的函数。
用户只需提供被积函数和积分区间,即可得到积分结果。
3. 数值微分方法数值微分是计算函数导数的方法。
在MATLAB中,可以使用diff函数对函数进行数值微分。
该函数可以计算一阶和二阶导数,还支持多点数值微分和符号数值微分。
通过数值微分,可以方便地求得函数在给定点的导数近似值。
二、符号计算方法符号计算是指在计算过程中处理符号表达式而不是数值。
MATLAB的Symbolic Math Toolbox提供了强大的符号计算功能,可以进行代数操作、求解方程、求导、积分等。
下面我们将介绍几种常用的符号计算方法。
1. 代数操作在MATLAB中,可以使用符号计算功能进行代数操作,如多项式求解、多项式展开、多项式化简等。
通过定义符号变量和符号表达式,可以进行各种代数计算,方便用户进行复杂的代数操作。
2. 方程求解MATLAB的符号计算工具箱提供了solve函数用于求解方程。
运用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实训7-求解高数问题

• 定积分与无穷积分计算:
–格式: I=int(f,x,a,b) –格式: I=int(f,x,a,inf)
• 例: f (x) ex2 /2
>> syms x; I1=int(exp(-x^2/2),x,0,1.5) %无解
I1 =
1/2*erf(3/4*2^(1/2))*2^(1/2)*pi^(1/2)
32 2 -2 x + 2 + 2 x + x y - 4 x - 2 x y - -----------------------------------------
x (x - 2) (2 y + x)
● 参数方程的导数
• 已知参数方程
,求
例
5.3 积分问题的解析解
• 不定积分的推导:
–格式: F=int(fun,x)
• 函数的导数和高阶导数
– 格式: y=diff(fun,x) %求导数(默认为1阶) y= diff(fun,x,n) %求n阶导数
• 例: 阶导数:
>> syms x; f=sin(x)/(x^2+4*x+3); >> f1=diff(f)
求一阶及100
f1 = cos(x)/(x^2+4*x+3)-sin(x)/(x^2+4*x+3)^2*(2*x+4)
>> syms x; >> limit((exp(x^3)-1)/(1-cos(sqrt(x-
sin(x)))),x,0,'right') ans =
12
例: 试求解极限问题
>> syms x a b;
实验七 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 展开。
例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求级数的和及其实验

第七节 用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】讨论下列级数的敛散性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作图观测其展开式的前几项多项式逼近原函数的情况。
例 2 利用幂级数计算指数函数。指数函数可展开为幂级数
e x 1 x x 2 x3 x n , x (,),
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
数
3!
3! 5! 的 图 形 , 观 测 这 些 多 项 式 函 数 的 图 形 向
y sin x 的图形的逼近的情况。例如,在区间 [0, ] 上作函数 y sin x 与多项式函数
y x, y x x3 , y x x3 x5
3!
3! 5! 图形的 MATLAB 代码为:
(4) 为了按精度选择循环次数,不该使用 for 循环,而用 while 语句,它可以设置循环的条件
3
语句,通常可用 y+z-y>tol,tol 是规定的允许误差.只要相邻的两次 y 值之差大于 tol,循环就继续 进行,直到小于 tol 为止.
exp( x) (exp( x ))k
当 x 较大时,exp(x)仍能很快收敛,还可以利用关系式
的值,可用
symsum
命令,相应的
MATLAB
代码为:
>>clear; syms k;
>>simple(symsum(1/k^2,1,Inf)) 结果为:
ans =1/6*pi^2 类似地可验证
%simple 求解最简形式,Inf 为无穷大
1
n4
n1
4 , 90
1 n6
n1
6 .
2! 3!
n!
2
其通项为 x^n/prod(1: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
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
>>Dy=diff(y,k)/(dx^k); Dya(k)=Dy(round(lx-k)/2); %求 a 点 k 阶导数 >>yt(k,:)=yt(k-1,:)+Dya(k)/prod(1:k)*(x-a).^k; %求 y 的 k 阶导数 >>plot(x,yt(k,:)); %绘图 >>e(k,:)=y-yt(k,:); %求出 yt 的误差 >>end >>title([fxs,'的各阶泰勒级数曲线']), %注意如何组成标注的字符串 >>grid, hold off, subplot(1,2,2) >>for k=1:K plot(x,e(k,:)), hold on, end %绘制误差曲线 >>title([fxs,'的各阶泰勒级数误差曲线']),grid,hold off 执行此程序,输入 fxs=cos(x),K=5,a=0.5,b=2,所得曲线见图 3.2(又变为误差曲线).读者可 以改变其坐标系范围以仔细观测最关心的部分,也可输入其他函数做验算,注意输入函数应符 合元素群运算规则.
执行此程序,分别带入 x=1,2,4,-4 这四个数,取 n=10,y 的结果如下 2.718281801, 7.388994709, 54.44310406, .9671957672e-1
而用 vpa(exp(1),10), vpa(exp(2),10), vpa(exp(4),10), vpa(exp(-4),10)命令可得 e, e2 , e4 , e4 的 10
>>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,其中实线表示函数 y sin x 的图形。
1.5
1
0.5
0
0
1
f (n) (a) (x a)n n!
Rn (x).
其中
Rn (x) 为余项,也就是泰勒展开式的误差.MATLAB 语句为
>>fxs=input('输入 y=f(x)的表达式','s'); %输入原始条件,fxs 是字符串 >>K=input('输入泰勒级数展开式的阶 K'); >>a=input('展开的位置 a='); >>b=input('展开的区间半宽度 b='); >>x=linspace(a-b,a+b); %构成自变量数组,确定其长度和步长 >>lx=length(x); dx=2*b/(lx-1); >>y=eval(fxs); %求出 y 的准确值 >>subplot(1,2,1), plot(x,y,'.'), hold on %y 的准确值用点线绘出 %求出 a 点的一阶导数,注意求导后数组长度减少 1 >>Dy=diff(y)/dx; Dya(1)=Dy(round(lx-1)/2); >>yt(1,:)=y(round(lx/2))+Dya(1)*(x-a); %求 y 的一阶泰勒展开,绘图 >>plot(x,yt(1,:)) >>for k=2:K
完成 exp(100) (((exp(100 /128))2 )2 )2 的计算,这既保证了精度,又提高了速度.
例 3 编写任意函数展开为各阶泰勒级数的程序,并显示其误差曲线.对于任意函数 y=f(x),其泰勒展开式为
f (x)
f (a)
f '(a)(x a)
f
(2) (a) (x a)2 2!
(3)为了减少乘法次数,设一个中间变量 z,它的初始值为 z=ones(size(x)),把循环体中
的计算与句改为
y=y+z; z=x.*z/i;
这样,求得的 z 就是 z=x.^i/i!,于是每个循环只需做一次乘法,计算整个级数只需 n 次乘法。
按这种计算,y 的初始值改为 y=zeros(size(x))
945
1
可以猜想有 n1 n 2k
2k , k 1,2,,
mk
其中 m k 是正整数,请验证.
1
e
注:可用公式 n0 n! 来计算 e 的近似值。如果要精确到小数点后 15 位,相应的
k ,令 x1=x/k.k 通
常取大于 x 而最接近 x 的 2 的幂,例如 x=100,就取 k=128,可以保证 x1 的绝对值小于 1,这时级 数收敛得很快..从练习中可以看出,n 取 10 时(即级数取 10 项)就能保证 7 位有效数,而
exp( x1)128 可以化成 x (((exp(x1))2 )2 )2 ,即 exp(x1)的 7 次自乘,总共用 17 次乘法就可
位精确有效数字为 2.718281828, 7.389056099, 54.59815003, .1831563889e-1
对照可知,用级数法计算的有效数字分别为 8,4,2,0 位。 由此可以看出,这个程序虽然原理上正确,但不好用。对不同的 x,精度差别很大。其
他存在的问题有: 这个程序不能用于 x 的元素群运算;当 x 为负数时,它成为交错级数,收敛很慢;此
4
cos(x)的 各 阶 泰 勒 级 数 曲 线 2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-2
0
2
4
cos(x)的 各 阶 泰 勒 级 数 误 差 曲 线 1.2
1
0.8
0.6
0.4
0.2
0
-0.2
-2
0
2
4
图 3.1 y cos x 的泰勒级数及误差曲线
例4
计算级数
n1
1 n2
.
可以用 help symsum, help taylor 查阅有关这些命令的详细信息
例 1 先用 taylor 命令观测函数 y sin x 的 Maclaurin 展开式的前几项,例如观测前 6
项, 相应的 MATLAB 代码为: >>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)