Matlab7.0符号计算 上机实验1
- 格式:doc
- 大小:232.00 KB
- 文档页数:25
Matlab7.0符号计算实验报告⒈目的本实验旨在向学生介绍一种解决专业问题的快速有效且具有强大功能的科学与工程计算软件。
通过本实验,应使学生掌握的内容是:MATLAB7.0符号对象的创建和使用,MATLAB7.0任意精度的计算, MATLAB7.0符号表达式的化简和替换,MATLAB7.0符号矩阵计算,MATLAB7.0符号微积分,MATLAB7.0积分变换,MATLAB7.0符号代数方程和符号微分方程求解。
该实验主要为上机实验,要求学生按要求上机实现相关的程序的设计,自己动手编写程序并验证程序的正确性。
⒉实验任务分解通过一些实例初步掌握MATLAB7.0的基本符号计算功能和应用。
实验任务可分解为:MATLAB7.0符号计算的基础,MATLAB7.0符号计算在高等数学中的应用,MATLAB7.0符号方程(组)求解和符号矩阵计算。
⒊实验环境介绍长清校区数学实验室实验一 MATLAB7.0符号计算的基础 实验目的:1. 掌握MATLAB7.0符号对象的创建和使用;2. 掌握MATLAB7.0任意精度的计算;3. 掌握MATLAB7.0符号表达式的化简和替换。
实验要求:给出程序和实验结果。
实验题目与结果:一、计算符号表达式()cos()sin()f x x x x =+-在1x π=-处的值,并将结果设置为以下五种精度,即分别为小数点之后1位、2位、10位、20位、50位有效数字; >> x=pi-1;>> y=x+cos(x)-sin(x)y =0.7598>> y1=vpa(y,1)y1 =.8>> y2=vpa(y,2)y2 =.76>> y3=vpa(y,10)y3 =.7598193629>> y4=vpa(y,20)y4 =.75981936291375673509>> y5=vpa(y,50)y5 =.75981936291375673508952104384661652147769927978516二、设x 为符号变量,42()21f x x x =++,32()635g x x x x =+++,试进行如下运算。
(1)()()f x g x +,(2)()()f x g x ⨯,(3)对()f x 进行因式分解,(4)求()g x 的反函数。
>> syms x f g;>> f=x^4+2*x^2+1;>> g=x^3+6*x^2+3*x+5;(1)>> a=f+ga =x^4+8*x^2+6+x^3+3*x(2)>> b=f*gb =(x^4+2*x^2+1)*(x^3+6*x^2+3*x+5)>> expand(b)ans =x^7+6*x^6+5*x^5+17*x^4+7*x^3+16*x^2+3*x+5(3)>> factor(f)ans =(x^2+1)^2(4)>> finverse(g)W arning: finverse(x^3+6*x^2+3*x+5) is not unique.> In sym.finverse at 43ans =1/2*(-60+4*x+4*(117-30*x+x^2)^(1/2))^(1/3)+6/(-60+4*x+4*(117-30*x+x^2)^(1/2 ))^(1/3)-2三、指出下面各条语句的输出结果>> f=sym('2*u');>> subs(f,'u',2)>> f2=subs(f,'u','u+2')>> a=3;>> subs(f2,'u',a+2)>> subs(f2,'u','a+2')>> syms x y>> f3=subs(f, 'u' ,x+y)>> subs(f3,[x,y],[1,2])>> subs(f3,[x,y],[x+y,x+y])>> f=sym('2*u');>> subs(f,'u',2)ans =4>> f2=subs(f,'u','u+2')f2 =2*(u+2)>> a=3;>> subs(f2,'u',a+2)ans =14>> subs(f2,'u','a+2')ans =2*((a+2)+2)>> syms x y>> f3=subs(f,'u',x+y)f3 =2*x+2*y>> subs(f3,[x,y],[1,2])ans =6>> subs(f3,[x,y],[x+y,x+y]) ans =6*x+4*y四、简化>> syms x;>> f=((1/x^3)+(6/x^2)+12/x+8)^(1/3);>> simplify(f)ans =((2*x+1)^3/x^3)^(1/3)五、设a 、b 定义如下,试上机输出factor(a)和factor(b)的结果,并指出哪个结果才是12345678901234567890的因式分解,为什么?a=sym('12345678901234567890')b=sym(12345678901234567890)y1=factor(a)y2=factor(b)y1 =(2)*(3)^2*(5)*(101)*(3803)*(3607)*(27961)*(3541)y2 =(2)^11*(7)*(7324703)*(117570121)>> a=sym('12345678901234567890')a =12345678901234567890>> b=sym(12345678901234567890)()f x =6028163525993441*2^(11)>> y1=factor(a)y1 =(2)*(3)^2*(5)*(101)*(3803)*(3607)*(27961)*(3541) >> y2=factor(b)y2 =(2)^11*(7)*(7324703)*(117570121)factor(a)才是12345678901234567890的因式分解六、替换函数subs的使用。
(1)试指出下面程序中的f1、f2、f3、f4、f5的值。
syms a x;f=a*sin(x)+5;f1=subs(f,'sin(x)',sym('y'))f2=subs(f,{a,x},{2,sym(pi/3)})f3=subs(f,{a,x},{2,pi/3})f4=subs(subs(f,a,2),x,0:pi/6:pi)f5=subs(f,{a,x},{0:6,0:pi/6:pi})>> syms a x;>> f=a*sin(x)+5;>> f1=subs(f,'sin(x)',sym('y'))a*y+5>> f2=subs(f,{a,x},{2,sym(pi/3)})f2 =3^(1/2)+5>> f3=subs(f,{a,x},{2,pi/3})f3 =6.7321>> f4=subs(subs(f,a,2),x,0:pi/6:pi)f4 =Columns 1 through 55.00006.0000 6.73217.0000 6.7321 Columns 6 through 76.0000 5.0000>> f5=subs(f,{a,x},{0:6,0:pi/6:pi})Columns 1 through 55.0000 5.50006.7321 8.0000 8.4641Columns 6 through 77.5000 5.0000(2)试指出下面替换的结果,并说明理由。
>> syms x y; f=2*x+y;>> subs(f,{x,y},{x+y,x-y})>> syms x y;>> f=2*x+y;>> subs(f,{x,y},{x+y,x-y})ans =5*x-3*y七、创建符号变量有几种方法?答:MATLAB提供了两种创建符号变量和表达式的函数:sym和syms。
sym用于创建一个符号变量或表达式,用法如x=sym('x')及f=sym('x+y+z'),syms用于创建多个符号变量,用法如sym x y z。
f=sym('x+y+z')相当于syms x y zf=x+y+z八、下面三种表示方法有什么不同的含义?(1)f=3*x^2+5*x+2(2)f='3*x^2+5*x+2'(3)x=sym('x')f=3*x^2+5*x+2答:(1)表示在给定x 时,将3*x^2+5*x+2的数值运算结果赋值给变量f ,如果没有给定x 则指示错误信息。
(2)表示将字符串'3*x^2+5*x+2'赋值给字符变量f ,没有任何计算含义,因此也不对字符串中的内容做任何分析。
(3)表示x 时一个符号变量,因此算式f=3*x^2+5*x+2就具有了符号函数的意义,f 也自然成为符号变量了。
九、 用符号计算验证三角等式:sin(ϕ1)cos(ϕ2)-cos(ϕ1)sin(ϕ2) =sin(ϕ1-ϕ2)>> syms phi1 phi2;>> y=simple(sin(phi1)*cos(phi2)-cos(phi1)*sin(phi2))>> syms phi1 phi2;>> y=simple(sin(phi1)*cos(phi2)-cos(phi1)*sin(phi2))y =-sin(-phi1+phi2)十、 因式分解:6555234-++-x x x x>> syms x;>> f=x^4-5*x^3+5*x^2+5*x-6;>> factor(f)ans =(x-1)*(x-2)*(x-3)*(x+1)实验二 MATLAB7.0符号计算在高等数学中的应用实验目的:1. 掌握MATLAB7.0符号计算在极限中的应用;2. 掌握MATLAB7.0符号计算在微分、积分中的应用;3. 掌握MATLAB7.0符号计算在级数求和以及泰勒级数中的应用。