MATLAB原理应用实验报告第三章(符号运算)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“第三章matlab符号运算”。
《MATLAB原理及应用》实验报告的符号运算
第三章 MATLAB一.实验目的1、掌握符号对象的命名方法
2、掌握符号表达式的基本运算
3、掌握符号级数的求法
二.实验设备
计算机、MATLAB软件 三.实验内容
1.确定符号表达式的变量
为了简化符号对象的操作和计算,MATLAB为用户提过了findsym命令。
r=findsym(S)确定符号表达式或者矩阵S中自由符号变量
r=findsym(S,n)确定符号表达式或者矩阵S中靠近x最近的n个独立符号变量。【实验3-1】使用MATLAB的命令确定符号表达式的变量。
在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 =
y 2.符号表达式元算
1.符号表达式的四则运算
表达式的四则运算与数字运算一样,用+、-、/、运算符实现,其运算结果依然是一个符号表达式。
【实验3-2】
在MATLAB的命令窗口中输入下例内容:
>>f=sym('2*x^2+3*x-5');%定义符号表达式
g=sym('x^2-x+7');f+g ans = 3*x^2+2*x+2 ans = 3*x^2+2*x+2 >> f^g ans =(2*x^2+3*x-5)^(x^2-x+7)3.符号表达式的提取分子和分母运算
如果符号表达式是一个有理分式或可以展开为有理分式,可以可利用numden函数来提取符号表达式的分子或分母。期一般调用格式为
[n,d]=numden函数来提取符号表达式
该函数提取的符号表达式s的分子和分母,分别将它们存放在n和d中。
【实验3-3】
在MATLAB的命令窗口中输入下例内容: >> f= sym('a*x/(b+x)');>> [n,d]=numden(f)n = a*x d = b+x numden函数在提取各部分之前,将符号表达式有利化后返回所得分子和分母 >> g=sym('(x^2+3)/(2*x-1)+3*x/(x+1)');>> [n,d]=numden(g)n = x^3+7*x^2+3 d =(2*x-1)*(x+1)如果符号表达式是一个符号矩阵,numden返回两个新矩阵n和d,其中n是分子矩阵,d是分母矩阵。
>> h=sym('[3/2,(2*x+1)/3;a/x+a/y,x+4]')h = [ 3/2,(2*x+1)/3] [ a/x+a/y, x+4] >> [n,d]=numden(h)n = [ 3, 2*x+1] [ a*(y+x), x+4] d = [ 2, 3]
[ x*y, 1] 4.符号表达式的因式分解与展开
MATLAB提供了符号表达式分解与展开的函数,函数的调用格式为 ①factor(s):对符号表达式s分解因式。②expand(s):对符号表达式s进行展开。
③collect(s):对符号表达式s进行合并同类型。
④collect(S,v)将表达式S中相同次幂的合并,v的默认值是x 【实验3-4】
>> syms x y
下面简单符号表达式s1因式分解
>> s1=x^3-y^3;
>> factor(s1)
ans =
(x-y)*(x^2+x*y+y^2)
下面简单符号表达式s2进行展开
>> s2=(-7*x^2-8*y^2)*(-x^2+3*y^2);
>> expand(s2)
ans =
7*x^4-13*x^2*y^2-24*y^4
下面简单符号表达式s3按变量y合并同类型
>> s3=(x+y)*(x^2+y^2+1);
>> collect(s3,y)
ans =
y^3+x*y^2+(x^2+1)*y+x*(x^2+1)
下面简单符号整数分解因式
>> factor(sym(630))
ans =
(2)*(3)^2*(5)*(7)5.符号表达式的化简
MATLAB提供的对符号表达式化简的函数如下
Simplify(s);应用MuPAD简化规则对s进行化简。Simple(s):调用MATLAB的其他函数对表达式进行综合化简,并显示化简过程。【实验3-5】
在MATLAB的命令窗口中输入下例内容:
>> s=sym('(x^2+5*x+6)/(x+2)');>> simplify(s)ans = x+3 >> s=sym('[2*cos(x)^2-sin(x)^2,sqrt(16)]');>> simplify(s)ans = [ 3*cos(x)^2-1, 4] 函数simple试用了几种不同的化简工具,然后选择在结果表达式中含有最少字符的那种形式。
下面是表达式cos(3arccos(x))的化简结果
>> s=sym('cos(3*acos(x))');>> simple(s)%自动调用多种函数对s化简,并显示每步结果 显示一系列化简过程后,最后显示化简结果
ans =
4*x^3-3*x 6.级数符号求和
求无穷级数的和需要符号表达式求和函数symsum,其调用格式为
Symsum(s,v,n,m)其中s表示一个级数的通项,是一个符号表达式。v是求和变量,v省略时使用系统的默认变量。n和m是求和的开始项和末项。【实验3-6】求 1111 22223k在MATLAB的命令窗口中输入下例内容:
>> syms k >> symsum(1/k^2,k,1,inf)ans = 1/6*pi^2 >> eval(ans)ans =
1.6449
7.符号微积分
1.符号的积分
符号积分由函数int来实现,一般调用格式如下。
int(s):没有指定积分变量和积分阶数时,int(s,v): 义v为自变量,对被积函数或符号表达式求不定积分。
int(s,v,a,b): 求定积分运算,a,b分别表示定积分的上下限。求函数的定积分
【实验3-6】
(1)cosxdx
在MATLAB的命令窗口中输入下例内容:
>> f=sym('cos(x)');
>> int(f)
ans =
sin(x) 2.符号的微分
diff函数用于对符号表达式求导数,一般调用格式如下。
diff(s):按findsym 函数指示的默认变量对符号表达式s求一阶导数。
diff(s,’v’):以v为自变量,对符号表达式s求一阶导数。
diff(s,n):按findsym 函数指示的默认变量对符号表达式s求n阶导数。
diff(s,’v’,n)::以v为自变量,对符号表达式s求n阶导数。
【实验3-7】 已知f(x)=ax2+bx+c,求f(x)的微分。
在MATLAB的命令窗口中输入下例内容:
>> f=sym('a*x^2+b*x+c');
>> diff(f)
ans =
2*a*x+b 8.符号方程的求解
在MATLAB中,求解用符号表达式表示的代数方程可以用solve实现,其调用格式如下:
solve(s):求解符号表达式s的代数方程,求解变量为默认变量。
solve(s,v):求解符号表达式s的代数方程,求解变量为v
Solve(s1,s2…sn,v1,v2 …vn):求解符号表达式s1,s2…sn组成的代数方程,求解变量分别为v1,v2 …vn。
【实验3-8】
求方程x2+2x+1=0的解
在MATLAB的命令窗口中输入下例内容:
>> f=sym('x^2+2*x+1=0');>> solve(f)ans =-1-1
9.课后练习题
222aruzm 1.提取符号表达式的自由变量
(当符号表达式中含有多余一个符号变量时,只有一个变量是独立变量,其余的符号当作常量。如果不指定那一个变量当作是自由变量,matlab将基于一定原则选择一个自由变量。)提示:findsym(s,n)
x212x5 2.在MATLAB中计算多项式的父母和分子 x23x2(提示:使用[n,d]=numden(A))
323 2.1、建立符号函数x2x
235(1)提取该表达式的分子和分母,并分别付给两个变量
(2)对这两个变量分别进行代数运算(加减乘除及乘方)3.在MATLAB中,按照不同的方式合并表达式(xe类项。
2ttt(xxe1)(xe)的同类项。e3.1.按来合并表达式
y3xy)(xye2yx)的参数
f
34、使用simple和simplify两个指令分别化简结果有什么不同
1612832xxx,比较两个
xx2x3的和。5.求级数1+x+x+…+x+…和1(使用symsum函数)
11212
32k6.分别求下例积分(1)
7.b2111dxdx
(2)
(3)1x2a1x211x2dx
ycosx2 求
y'、y''、y'''
x22x104x3z8.求三元非线性方程组 yz1的解
刀豆文库小编为你整合推荐7篇MATLAB实验报告,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......
求解:1.模拟比赛车道曲线和选手速度曲线;2.估计车道长度和所围区域面积;3.分析车道上相关路段的路面状况(用不同颜色或不同线型标记出来);4.对参加比赛选手提出合理建议。四.合理建......
实验二特殊函数与图形一、实验目的及意义 掌握用Matlab软件绘制简单曲线、曲面图形,并通过绘制一些特殊函数的图形,更加深入地理解相关函数的性质,了解函数的性态。 二、实验内......
实验一:单片机开发装置使用方法(小2号,加粗)一、实验目的(3号,加粗) 内容(楷体,4号,不加粗)字符和数字用Times new Roman二、实验内容三、实验步骤四、实验结果五、实验分析六、实验总......
MATLAB实验报告模板[摘要]大学物理力学中涉及许多复杂的数值计算问题,例如非线性问题,对其手工求解较为复杂,而MATLAB语言正是处理非线性问题的很好工具,既能进行数值求解,又能绘......