MATLAB符号计算实验报告
实验MATLAB符号计算

5.1
5.1.1
【例5.1.1-1】符号常数形成中的差异
a1=[1/3,pi/7,sqrt(5),pi+sqrt(5)]%<1>
a2=sym([1/3,pi/7,sqrt(5),pi+sqrt(5)])%<2>
a3=sym([1/3,pi/7,sqrt(5),pi+sqrt(5)],'e')%<3>
char
CMs =
sym
(4)
isa(Mn,'double'),isa(Mc,'char'),isa(Ms,'sym')
ans =
1
ans =
1
ans =
1
(5)
whos Mn Mc Ms
Name Size Bytes Class
Mc 1x9 18 char array
Mn 2x2 32 double array
Ms 2x2 312 sym object
Grand total is 21 elements using 362 bytes
5.1.4
【例5.1.4-1】对独立自由符号变量的自动辨认。
(1)
syms a b x X Y;k=sym('3');z=sym('c*sqrt(delta)+y*sin(theta)');
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数值计算与符号计算

实验四 MATLAB数值计算与符号计算一、实验目的1.掌握数据插值和曲线拟合的方法2.掌握求数值导数和数值积分的方法3.掌握代数方程数值求解的方法4.掌握常微分方程数值求解的方法5.掌握求解优化问题的方法6.掌握求符号极限、导数和积分的方法7.掌握代数方程符号求解的方法8.掌握常微分方程符号求解的方法二、实验原理1.数据插值a) 一维数据插值 Y1=interp1(X,Y,X1,’method’)b) 二维数据插值 Z1=interp2(X,Y,Z,X1,Y1,’method’)2.曲线拟合[P,S]=polyfit(X,Y,m)3.符号对象的建立(1)符号量名=sym(符号字符串):建立单个的符号变量或常量;(2)syms arg1 arg2,…,argn:建立n个符号变量或常量。
4.基本符号运算(1)基本四则运算:+,-,*,\,^(2)分子与分母的提取:[n,d]=numden(s)(3)因式分解与展开:factor(s),expand(s)(4)化简:simplify, simple(s)5.符号函数及其应用(1)求极限:limit(f,x,a)(2)求导数:diff(f,x,a);(3)求积分:int(f,v)三、实验内容1.按下表用3次样条方法插值计算0~900范围内整数点的正弦值和0~750范围内整数点的正切值,然后用5次多项式拟合方法计算相同的函数值,并将两种计算结果进行比较。
x2=0:75;y1=sin(pi.*x1./180);y2=tan(pi.*x2./180);;a=interp1(x1,y1,45,'cublic')b=interp1(x1,y1,45,'cublic')p1=polyfit(x1,y1,5)p2=polyfit(x2,y2,5)c1=polyval(p1,x1);c2=polyval(p2,x2);subplot(2,1,1);plot(x1,c1,':o',x1,y1,'r');subplot(2,1,2);plot(x2,c2,':o',x2,y2,'r');10203040506070802.(1)求函数33()sin cos f x x x =+在点,,,6432x ππππ=的数值导数。
南华大学《MATLAB及应用》实验报告2

核科学技术学院实验报告实验项目名称MATLAB符号计算所属课程名称MATLAB及应用实验类型上机实验实验日期12月日指导教师谢芹班级学号姓名成绩一、实验名称MATLAB符号计算二、实验目的(1)掌握定义符号对象的方法(2)掌握符号表达式的运算法则以及符号矩阵运算(3)掌握求符号函数极限及导数的方法(4)掌握求符号函数定积分和不定积分的方法三、实验原理1. 函数极限及导数的方法(1)函数极限:limit(F,x,a) 求符号函数f(x)的极限值。
即计算当变量x趋近于常数a时,f(x)函数的极限值。
(2)limit(f):求符号函数f(x)的极限值。
符号函数f(x)的变量为函数findsym(f)确定的默认变量;没有指定变量的目标值时,系统默认变量趋近于0,即a=0的情况。
(3)limit(f,x,a,'right'):求符号函数f的极限值。
'right'表示变量x从右边趋近于a。
(4)limit(f,x,a,‘left’):求符号函数f的极限值。
‘left’表示变量x从左边趋近于a。
2. 微分:diff(s):没有指定变量和导数阶数,则系统按findsym函数指示的默认变量对符号表达式s求一阶导数。
diff(s,'v'):以v为自变量,对符号表达式s求一阶导数。
diff(s,n):按findsym函数指示的默认变量对符号表达式s求n阶导数,n为正整数。
diff(s,'v',n):以v为自变量,对符号表达式s求n阶导数。
3. 函数定积分和不定积分的方法:int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号表达式s求不定积分。
int(s,v):以v为自变量,对被积函数或符号表达式s求不定积分。
int(s,v,a,b):求定积分运算。
a,b分别表示定积分的下限和上限。
梯形法:trapz(x,y):x为分割点构成的向量,y为被积函数在分割点上的函数值构成的向量;抛物线法:quad(f,a,b,tol),f 是被积函数,[a,b]是积分区间,tol 是精度。
matlab实验报告总结

matlab实验报告总结1.求一份matlab的试验报告计算方法试验报告3【实验目的】检查各种数值计算方法的长期行为【内容】给定方程组x'(t)=ay(t),y'(t)=bx(t), x(0)=0, y(0)=b的解是x-y 平面上的一个椭圆,利用你已经知道的算法,取足够小的步长,计算上述方程的轨道,看看那种算法能够保持椭圆轨道不变。
(计算的时间步长要足够多)【实验设计】用一下四种方法来计算:1. Euler法2. 梯形法3. 4阶RK法4. 多步法Adams公式【实验过程】1. Euler法具体的代码如下:clear;a=2;b=1;A=[0 a; -b0];U=[];u(:,1)=[0;b];n=1000000;h=6*pi/n;fori=1:n delta(i)=((u(1,i)/a)^2+(u(2,i)/b)^2)^0.5; u(:,i+1)=u(:,i)+h*A*u(:,i);endt=1:n+1;subplot(1, 2,1);plot(1:n,delta);gridon;subplot(1,2,2);plot(u(1,:),u(2,:));gridon;max(abs(delta-ones(1,length(delta))));结果如下:2. 梯形法具体的代码如下:clear;a=2;b=1;A=[0 a; -b 0];U=[];u(:,1)=[0;b];n=300;h=6*pi/n;for i=1:n delta(i)=((u(1,i)/a)^2+(u(2,i)/b)^2)^0.5;v1=u(:,i)+h*A*u(:,i);v2=u(:,i)+h*A*(u(:,i)+v1)/2;1u(:,i+1)=u(:,i)+h*A*(u(:,i)+v2)/2;endt=1:n+1;sub plot(1,2,1);plot(1:n,delta);gridon;subplot(1,2,2);结果如下 3. 4阶RK法clear;a=2;b=1;A=[0 a; -b 0];U=[];u(:,1)=[0;b];n=70;h=6*pi/n;for i=1:n delta(i)=((u(1,i)/a)^2+(u(2,i)/b)^2)^0.5;k1=A*u(:,i); k2=A*(u(:,i)+h/2*k2); k3=A*(u(:,i)+h*k3); k4=A*(u(:,i)+h*k3); u(:,i+1)=u(:,i)+h/6*(k1+2*k2+2*k3+k4);endt=1:n+1 ;subplot(1,2,1);plot(1:n,delta);gridon;subplot(1,2,2);结果如下:4. 多步法Adams公式clear;a=2;b=1;A=[0 a; -b 0];U=[];u(:,1)=[0;b];n=200;h=6*pi/n;u(:;2)=u(u,1)+h*A*u(:,1);u(:;3)=u(u,2)+h/2*A*(3*u(:,2)-u(:,1));u(:;4)=u(u,3)+h/12*A*(23*u(:,3)-16*u(:,2)+5*u(:, 1)); delta(1)=((u(1,1)/a)^2+(u(2,1)/b^2)^0.5 delta(2)=((u(1,2)/a)^2+(u(2,2)/b^2)^0.5delta(3)=((u(1,3)/a)^2+(u(2,3)/b^2)^0.5for i=4:n delta(i)=((u(1,i)/a)^2+(u(2,i)/b)^2)^0.5;u(:,i+1)=u(:,i)+h/24*A*(55*u(:,i)-59*u(:,i-1)+37 *u(:,i-1)+37*u(:,i-2)-9*u(:,i-3));endt=1:n+1;sub plot(1,2,1);plot(1:n,delta);gridon;subplot(1,2,2);结果如下:【实验分析】通过这几种方法对比,发现最为稳定的是多步法Adams公式和4阶RK法,其次是梯形法,而欧拉法最为不稳定。
实验二--MATLAB的符号计算与可视化

实验二 MATLAB的符号计算与可视化1、目的和要求(1)熟练掌握MATLAB符号表达式的创建、代数运算及化简。
(2)熟悉符号方程的求解。
(3)熟练掌握MATLAB二维曲线、三维图形的绘制。
(4)熟练掌握各种特殊图形的绘制。
2:实验内容:(1)完成教材实验三第1节“1.创建符号表达式和符号表达式的操作”中(1)-(5)部分的内容,分别用sym和syms创建符号表达式f和g,并对它们进行相关操作,思考每一条命令的作用是什么,并提交命令行和结果;3:实验内容:(1)完成教材实验三第1节“1.创建符号表达式和符号表达式的操作”中(1)-(5)部分的内容,分别用sym和syms创建符号表达式f和g,并对它们进行相关操作,思考每一条命令的作用是什么,并提交命令行和结果;(1)创建符号表达式:使用sym命令创建符号表达式:f=sym('sin(x)')f =sin(x)>> g=sym('y/exp(-2*t)')g =y*exp(2*t)使用syms命令创建符号表达式:>> syms x y t>> f=sym(sin(x))f =sin(x)>> g=sym(y/exp(-2*t))g =y*exp(2*t)(2):自变量的确定:>> symvar(g)ans =[ t, y]>> symvar(g,1)ans =y>> findsym(g,2)ans =y,t(3):用常数替换符号变量:>> x=0:10;>> y=subs(f,x)y =Columns 1 through 80 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794 0.6570Columns 9 through 110.9894 0.4121 -0.5440(4):符号对象与数值的转换和任意精度控制:>> f1=subs(f,'5')f1 =sin(5)>> y1=double(f1)y1 =-0.9589>> y2=eval(f1)y2 =-0.9589采用digits和vpa实现任意精度控制:>> digitsDigits = 32>> vpa(f1)ans =-0.95892427466313846889315440615599>> vpa(f1,10)ans =-0.9589242747(5):求反函数和复合函数用finverse函数求f,g的反函数>> f=sym('sin(x)');>> g=sym('y/exp(-2*t)')g =y*exp(2*t)>> finverse(f)Warning: finverse(sin(x)) is not unique. ans =asin(x)>> finverse(g)ans =y/exp(2*t)>> finverse(g,'t')ans =log(t/y)/2用compose函数求f,g的复合函数>> compose(f,g)ans =sin(y*exp(2*t))>> compose(f,g,'z')ans =sin(z*exp(2*t))(2)自建两个一元四次符号表达式,分别进行其符号表达式的加、减、乘等运算,并提交命令行和结果;>> syms x>> f=x^4+2*x^3-5*x^2+6*x+8f =x^4 + 2*x^3 - 5*x^2 + 6*x + 8>> class(f)ans =sym>> g=2*x^4-5*x^3+8*x^2+7*x-2g =2*x^4 - 5*x^3 + 8*x^2 + 7*x - 2>> f+gans =3*x^4 - 3*x^3 + 3*x^2 + 13*x + 6>> f-gans =- x^4 + 7*x^3 - 13*x^2 - x + 10>> f*gans =(x^4 + 2*x^3 - 5*x^2 + 6*x + 8)*(2*x^4 - 5*x^3 + 8*x^2 + 7*x - 2)(3)自建一个可化简一元五次多项式和一个三角函数符号表达式,依次使用pretty, horner, factor, simplify和simple等函数对该表达式进行化简,并提交命令行和结果;syms x y>> f=x^5+x^4+2*x+2f =x^5 + x^4 + 2*x + 2>> g=cos(y)^2-sin(y)^2g =cos(y)^2 - sin(y)^2>> class(f)ans =sym>> class(g)ans =sym>> pretty(f)5 4x + x + 2 x + 2>> horner(f)ans =x*(x^3*(x + 1) + 2) + 2 >> factor(f)ans =(x + 1)*(x^4 + 2)>> simplify(f)ans =(x^4 + 2)*(x + 1)>> simple(f)simplify:x^5 + x^4 + 2*x + 2 radsimp:x^5 + x^4 + 2*x + 2 simplify(100):(x^4 + 2)*(x + 1) combine(sincos):x^5 + x^4 + 2*x + 2 combine(sinhcosh):x^5 + x^4 + 2*x + 2combine(ln):x^5 + x^4 + 2*x + 2 factor:(x + 1)*(x^4 + 2) expand:x^5 + x^4 + 2*x + 2 combine:x^5 + x^4 + 2*x + 2 rewrite(exp):x^5 + x^4 + 2*x + 2 rewrite(sincos):x^5 + x^4 + 2*x + 2 rewrite(sinhcosh): x^5 + x^4 + 2*x + 2 rewrite(tan):x^5 + x^4 + 2*x + 2 mwcos2sin:x^5 + x^4 + 2*x + 2collect(x):x^5 + x^4 + 2*x + 2ans =(x^4 + 2)*(x + 1)>> pretty(g)2 2cos(y) - sin(y)>> horner(g)ans =cos(y)^2 - sin(y)^2>> factor(g)ans =(cos(y) - sin(y))*(cos(y) + sin(y)) >> simplify(g)ans =cos(2*y)>> simple(g)simplify:cos(2*y)radsimp:cos(y)^2 - sin(y)^2simplify(100):cos(2*y)combine(sincos):cos(2*y)combine(sinhcosh):cos(y)^2 - sin(y)^2combine(ln):cos(y)^2 - sin(y)^2factor:(cos(y) - sin(y))*(cos(y) + sin(y))expand:cos(y)^2 - sin(y)^2combine:cos(y)^2 - sin(y)^2rewrite(exp):((1/exp(y*i))/2 + exp(y*i)/2)^2 - ((i*exp(i*y))/2 - i/(2*exp(i*y)))^2 rewrite(sincos):cos(y)^2 - sin(y)^2rewrite(sinhcosh):cosh(-y*i)^2 + sinh(-y*i)^2rewrite(tan):(tan(y/2)^2 - 1)^2/(tan(y/2)^2 + 1)^2 - (4*tan(y/2)^2)/(tan(y/2)^2 + 1)^2 mwcos2sin:1 - 2*sin(y)^2collect(y):cos(y)^2 - sin(y)^2ans =cos(2*y)(4)完成教材实验四第1节“1.绘制二维图线”中的所有内容,绘制4种二维曲线,把图形窗口分割为2行2列,并分别标明图名、坐标值等;2行2列子图的第1个图:>> subplot(2,2,1)>> t1=0:0.1:2;>> y1=sin(2*pi*t1);>> plot(t1,y1)>> title('y=sin(2\pit)')2行2列子图的第2个图:>> subplot(2,2,2)>> t2=0:0.1:2;>> y2=[exp(-t2);exp(-2*t2);exp(-3*t2)];>> plot(t2,y2)>> axis([0 2 -0.2 1.2]);>> title('y=e-t,y=e-2t,y=e-3t2行2列的第3个图:subplot(2,2,3);>> t3=[0 1 1 2 2 3 4];>> y3=[0 0 2 2 0 0 0];>> plot(t3,y3);>> axis([0 4 -0.5 3]);>> title('脉冲信号')2行2列的第4个图:>> subplot(2,2,4);>> t4=0:0.1:2*pi;>> plot(sin(t4),cos(t4));>> axis([-1.2 1.2 -1.2 1.2]);>> axis equal;>> title('圆')插图:[文档可能无法思考全面,请浏览后下载,另外祝您生活愉快,工作顺利,万事如意!]11 / 11。
MATLAB实验报告3-符号运算

F =
((x - 1)^3 - 5)/(2*(x - 1)^2 + 7)
2)
>> clear
>> syms x y;
>> g=(x^3*y-5*y)/(2*x^2+7);
>> gxy=diff(diff(g,x),y);
>> G=subs(gxy,{x},{x-1})
>> int(y)
ans =
log(x + 1)
>> int(y,0,1)
ans =
log(2)
>> syms t;
>> int(y,0,t)
ans =
log(t + 1)
>> clear
>> syms x y;
>> z=sin(y)/(x^2*y+1);
>> int(z,-inf,+inf)
ans =
8.积分中值定理:设 ,存在 ,使得 .检验存在 ,使得 .
四、实验步骤和运行结果(如运行有错误,请指出)
1.
>> syms u v x;
>> f=sqrt(1+u^2);
>> g=log(v);
>> h=exp(-x);
>> p=compose(g,h)
p =
log(exp(-x))
>> compose(f,p)
(pi*sin(y))/y^(1/2)
同济大学Matlab实验报告(matlab应用实例)

实 验 报 告班级机械三班学号姓名- 1 -- 2 -画出衰减振荡曲线t ey t 3sin 3-=及其它的包络线30t e y -=,31t e y --=。
t 值的范围是');- 3 -4.通过M 脚本文件,画出下列分段函数所表示的曲面,用冷色调。
⎪⎪⎩⎪⎪⎨⎧-≤+≤+<->+=+-------15457.0117575.015457.0),(215.175.375.0216215.175.375.02112122212212122x x e x x ex x e x x p x x x x x x x x [X1,X2]=meshgrid(-1.5:0.1:1.5,-2:0.1:2);P=0.5457*exp(-0.75*X2.^2-3.75*X1.^2-1.5*X1).*(X1+X2>1)... + 0.7575*exp(-X2.^2-6*X1.^2).*(X1+X2>-1&X1+X2<=1)... + 0.5457*exp(-0.75*X2.^2-3.75*X1.^2+1.5*X1).*(X1+X2<=-1); surf(X1,X2,P);colormap(cool);colorbar('horiz'); shading flat;实验体会与总结通过此次实验,把课堂所学的理论知识运用到了实际中,了解了Matlab 的基本功能和用途。
经过4个实验基,本上掌握了Matlab 绘制曲线、曲面和构造分段函数的方法,相信此次实验会为以后Matlab 的学习奠定坚实的基础。
- 1 -实 验 报 告班级 机械三班 学号 姓名的值,输出一元二次方程2ax bx c ++=root方程形式:a*x^2+b*x+c=0 请输入各项系数: a=1 b=1 c=-1ans =-1.6180 0.6180exchange 请输入x :1 请输入y :0 x=0, y=1- 2 -',num2str(discount*100),'%']) 请输入商品价格:100折扣: 0%实际价格:100请输入商品价格:300 折扣: 3% 实际价格:291请输入商品价格:700 折扣: 5% 实际价格:665 请输入商品价格:1500 折扣: 8% 实际价格:1380请输入商品价格:3000折扣: 10% 实际价格:2700 请输入商品价格:6000 折扣: 14% 实际价格:5160- 3 -4.在.m 文件中编写程序实现,在同一坐标内,分别用不同线型和颜色绘制曲线0.510.2cos(4)y e x x π-=和0.522cos()y e x x π-=,标记两曲线交叉点,给出每条曲线的图注。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六符号计算
学院:数计学院班级:1003班姓名:黄晓丹学号:1051020144
一、实验目的
1、了解富符号对象和数值对象之间的差别,以及它们之间的互相转换
2、了解符号运算和数值运算的特点、区别和优缺点
3、掌握符号对象的基本操作和运算,以及符号运算的基本运用
二、实验内容
1、符号常数形成和使用
(1)符号常数形成中的差异
>> a1=[1/3,pi/7,sqrt(5),pi+sqrt(5)]
a1 =
0.3333 0.4488 2.2361 5.3777
>> a2=sym([1/3,pi/7,sqrt(5),pi+sqrt(5)])
a2 =
[ 1/3, pi/7, sqrt(5),
6054707603575008*2^(-50)]
>> a3=sym('[1/3,pi/7,sqrt(5),pi+sqrt(5)]')
a3 =
[ 1/3, pi/7, sqrt(5), pi+sqrt(5)]
>> a24=a2-a3
a24 =
[ 0, 0, 0, 189209612611719/35184372088832-pi-5^(1/2)]
(2)把字符表达式转化为符号变量
>> y=sym('2*sin(x)*cos(x)')
y =
2*sin(x)*cos(x)
>> y=simple(y)
y =
sin(2*x)
(3)用符号计算验证三角等式
>> syms fai1 fai2;y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2))
y =
sin(fai1-fai2)
(4)求矩阵的行列式值、逆和特征值
>> syms a11 a12 a21 a22;A=[a11,a12;a21,a22]
A =
[ a11, a12]
[ a21, a22]
>> DA=det(A),IA=inv(A),EA=eig(A)
DA =
a11*a22-a12*a21
IA =
[ a22/(a11*a22-a12*a21), -a12/(a11*a22-a12*a21)] [ -a21/(a11*a22-a12*a21), a11/(a11*a22-a12*a21)]
EA =
1/2*a11+1/2*a22+1/2*(a11^2-2*a11*a22+a22^2+4*a12 *a21)^(1/2)
1/2*a11+1/2*a22-1/2*(a11^2-2*a11*a22+a22^2+4*a12* a21)^(1/2)
2、识别对象类型的指令
生成三种不同类型的矩阵,给出不同的显示形式>> clear,a=1;b=2;c=3;d=4;
>> Mn=[a,b;c,d]
Mn =
1 2
3 4
>> Mc='[a,b;c,d]'
Mc =
[a,b;c,d]
>> Ms=sym(Mc)
Ms =
[ a, b]
[ c, d]
3、符号表达式中自由变量的确定
(1)生成符号变量
>> syms a b x X Y;k=sym('3');z=sym('c*sqrt(delta)+y*sin(theta)');
>> EXPR=a*z*X+(b*x^2+k)*Y;
(2)找出EXPR中的全部自由符号变量
>> findsym(EXPR)
ans =
X, Y, a, b, c, delta, theta, x, y
(3)在EXPR中确定一个自由符号变量
>> findsym(EXPR,1)
ans =
x
(4)在EXPR中确定2个和3个自由变量时的执行情况
>> findsym(EXPR,2),findsym(EXPR,3)
ans =
x,y
ans =
x,y,theta
4、符号表达式的操作:简化f=。
>> syms x;f=(1/x^3+6/x^2+12/x+8)^(1/3); >> g1=simple(f),g2=simple(g1)
g1 =
(2*x+1)/x
g2 =
2+1/x
5、符号数值精度控制和任意精度计算>> digits
Digits = 32
>> p0=sym('(1+sqrt(5))/2');
>> p1=sym((1+sqrt(5))/2)
p1 =
7286977268806824*2^(-52)
>> e01=vpa(abs(p0-p1))
e01 =
.543211520368251e-16
>> p2=vpa(p0)
p2 =
1.6180339887498948482045868343656 >> e02=vpa(abs(p0-p2),64)
e02 =
.38117720309179805762862135448622e-31 >> digits
Digits = 32
6、符号序列的求和
>> s2=simple(symsum(f2,1,inf))
s2 =
[ 1/8*pi^2, -log(2)]
>> syms k t;f1=[t k^3];f2=[1/(2*k-1)^2,(-1)^k/k]; >> s1=simple(symsum(f1))
s1 =
[ 1/2*t*(t-1), k^3*t]
>> s2=simple(symsum(f2,1,inf))
s2 =
[ 1/8*pi^2, -log(2)]
7、符号微分
>> syms a t x;f=[a,t^3;t*cos(x),log(x)];
>> df=diff(f)
df =
[ 0, 0]
[ -t*sin(x), 1/x]
>> dfdt2=diff(f,t,2)
dfdt2 =
[ 0, 6*t]
[ 0, 0]
>> dfdxdt=diff(diff(f,x),t)
dfdxdt =
[ 0, 0]
[ -sin(x), 0]
8、符号积分
>> syms a b x;f=[a*x,b*x^2;1/x,sin(x)]; >> disp('The integral of f is');pretty(int(f)) The integral of f is
[ 2 3]
[1/2 a x 1/3 b x ]
[ ]
[ log(x) -cos(x) ]
9、微分方程符号解
>> S=dsolve('Dx=y,Dy=-x');
>> disp([blanks(12),'x',blanks(21),'y']),disp([S.x,S.y])
x y
[ -C1*cos(t)+C2*sin(t), C1*sin(t)+C2*cos(t)]
三、实验心得
通过对本章知识的学习,我熟练的掌握了符号计算的运用,并了解了符号计算的来源,我练习了书上例子,也练习了课后习题觉得自己受益匪浅,做了本章实验后,我对数学实验这门课有了新的认识。