Matlab7.0符号计算 上机实验

时间:2024.3.31

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符号表达式的化简和替换。

实验要求:给出程序和实验结果。

实验题目与结果:

一、计算符号表达式处的值,并将结果设置为以下五种精度,即分别为小数点之后1位、2位、10位、20位、50位有效数字;

function y=f(x)

y=x+cos(x)-sin(x)

x=pi-1;

>> y=f(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

二、设为符号变量,,试进行如下运算。

    (1)

(2)

(3)对进行因式分解,

(4)求的反函数。

>> syms f g x;

f=x^4+2*x^2+1;

g=x^3+6*x^2+3*x+5;

h=f+g

i=f*g

expand(i)

factor(f)

h =

x^4+8*x^2+6+x^3+3*x

i =

(x^4+2*x^2+1)*(x^3+6*x^2+3*x+5)

ans =

x^7+6*x^6+5*x^5+17*x^4+7*x^3+16*x^2+3*x+5

ans =

(x^2+1)^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)

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])

ans =

     4

f2 =

2*(u+2)

ans =

    14

ans =

2*((a+2)+2)

f3 =

2*x+2*y

ans =

     6

ans =

6*x+4*y

四、简化

>> syms x;

f=(1/x^3+6/x^2+12/x+8)^(1/3);

y1=simplify( f )

y1 =

((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');    %直接创建符号常量

 b=sym(12345678901234567890);  %将数值常量转换为符号常量

有误差 

x1=factor(a) 

x1 =

(2)*(3)^2*(5)*(101)*(3803)*(3607)*(27961)*(3541) 

x2=factor(b) 

x2 =

(2)^11*(7)*(7324703)*(117570121) 

isequal(x1,x2) 

ans =

     0 

六、替换函数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'))

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})

f1 =

a*y+5

f2 =

3^(1/2)+5

f3 =

    6.7321

f4 =

    5.0000    6.0000    6.7321    7.0000    6.7321    6.0000    5.0000

f5 =

    5.0000    5.5000    6.7321    8.0000    8.4641    7.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

理由:替换过程中先用x+y替换x,得到2x+3y,再用x-y替换y,得到5x-3y.

七、 创建符号变量有几种方法?

答:

MATLAB提供了两种创建符号变量和表达式的函数:sym和syms。

八、 下面三种表示方法有什么不同的含义?

(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)f=3*x^2+5*x+2

表示在给定x时,将3*x^2+5*x+2的数值运算结果赋值给变量f,如果没有给定x则指示错误信息。

(2)f='3*x^2+5*x+2'

表示将字符串'3*x^2+5*x+2'赋值给字符变量f,没有任何计算含义,因此也不对字符串中的内容做任何分析。

(3)x=sym('x')

     f=3*x^2+5*x+2

表示x是一个符号变量,因此算式f=3*x^2+5*x+2就具有了符号函数的意义,f也自然成为符号变量了。

九、 用符号计算验证三角等式:

    sin(j1)cos(j2)-cos(j1)sin(j2) =sin(j1-j2)

>> syms phi1 phi2;

y=simple(sin(phi1)*cos(phi2)-cos(phi1)*sin(phi2))

y =

sin(phi1-phi2)

十、 因式分解:

>> 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符号计算在级数求和以及泰勒级数中的应用。

实验要求:给出程序和实验结果。

实验内容与结果:

一、求上的定积分;                                               

>> syms x;

int(sin(x)+x,0,8)

ans =

-cos(8)+33

二、求符号表达式的5次微分;

>> syms x

f=sin(x)+x^5;

df=diff(f,5)

df =

cos(x)+120

 

三、计算                            和

>> syms x  h  n;

L=limit((log(x+h)-log(x))/h,h,0)

M=limit((1-x/n)^n,n,inf)

L =

1/x

M =

exp(-x)

四、1计算级数   及其前100项的部分和;

>> syms n; f=1/n^2;

S=symsum(f,n,1,inf)

S100=symsum(f,n,1,100)

S =

1/6*pi^2

S100 =

1589508694133037873112297928517553859702383498543709859889432834803818131090369901/972186144434381030589657976672623144161975583995746241782720354705517986165248000

2计算函数级数

>> syms n  x; f=x/n^2;

S=symsum(f,n,1,inf)

S =

1/6*x*pi^2

五、(1)设求复合函数 f(g(z));

(2)设求复合函数 f(g(z))。

(1)

>> syms x y z u t;

f=x^2/(1+u);

g=cos(y+2*t);

compose(f,g,y)

ans =

cos(y+2*t)^2/(1+u)

(2)

>> syms x y z u t;

f=x^2/(1+u);

g=cos(y+2*t);

compose(f,g,t)

ans =

cos(3*t)^2/(1+u)

六、计算sin(t)在t=0处的taylor级数、Fourier变换和Laplace变换。

>> syms t s;

y=sin(t)

f=taylor(y,5,x,0)

ut=heaviside(t)

UT=fourier(ut)

MS=laplace(y,t,s)

y =

sin(t)

f =

t-1/6*t^3

ut =

heaviside(t)

UT =

pi*dirac(w)-i/w

MS =

1/(s^2+1)

七、计算

>> syms x y;

z=y*x^2+3*y^2*x+2*y^3;

a=diff(z,y)

b=diff(a,x)

a =

x^2+6*y*x+6*y^2

b =

2*x+6*y

八、 因式分解:

>> 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)

九 符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t的变化范围为[0,2p]。

>> syms t

ezplot(sin(3*t)*cos(t),sin(3*t)*sin(t),[0,pi])

十、 ,用符号微分求df/dx。

>> syms a x;

f=[a, x^2, 1/x; exp(a*x), log(x), sin(x)];

df=diff(f)

df =

[          0,        2*x,     -1/x^2]

[ a*exp(a*x),        1/x,     cos(x)]

实验三 MATLAB7.0符号方程(组)求解和符号矩阵计算

实验目的:

1.   掌握MATLAB7.0符号代数方程和符号代数方程组求解;

2.   掌握MATLAB7.0符号符号微分方程和符号微分方程组求解;

3.   掌握MATLAB7.0符号矩阵计算。

实验要求:给出程序和实验结果。

实验题目与结果:

一、使用sym函数生成如下符号矩阵,

,试对这两个符号矩阵分别进行如下操作。

(1)

(2)

(3)求的行列式

(4)求的逆

(5)求的秩

(6)求

>> syms x;

a=sym('[1/x,1/(x+1);1/(x+2),1/(x+3)]')

b=sym('[x,1;x+2,0]');

a-b;

a*b

det(a)

rank(a)

inv(b)

a^3

a =

[     1/x, 1/(x+1)]

[ 1/(x+2), 1/(x+3)]

ans =

[         1+1/(x+1)*(x+2),                     1/x]

[ 1/(x+2)*x+1/(x+3)*(x+2),                 1/(x+2)]

ans =

2/x/(x+3)/(x+1)/(x+2)

ans =

2

ans =

[          0,    1/(x+2)]

[          1, -1/(x+2)*x]

ans =

[         1/x*(1/x^2+1/(x+1)/(x+2))+1/(x+1)*(1/(x+2)/x+1/(x+3)/(x+2)),     1/x*(1/x/(x+1)+1/(x+1)/(x+3))+1/(x+1)*(1/(x+1)/(x+2)+1/(x+3)^2)]

[     1/(x+2)*(1/x^2+1/(x+1)/(x+2))+1/(x+3)*(1/(x+2)/x+1/(x+3)/(x+2)), 1/(x+2)*(1/x/(x+1)+1/(x+1)/(x+3))+1/(x+3)*(1/(x+1)/(x+2)+1/(x+3)^2)]

二、求解非线性方程组

>>s=solve('x-0.7*sin(x)-0.2*cos(y)=0','y-0.7*cos(x)+0.2*sin(y)=0','x','y');

disp('s.x')

disp(s.x)

disp('s.y')

disp(s.y)

s.x

.52652262191818418730769280519209

s.y

.50791971903684924497183722688768

三、已知,求该方程的解。

>> Y=dsolve('D2y+2*Dy+2*y=0','y(0)=1','Dy(0)=1');

sy=simple(Y)

expand(sy)

sy =

exp(-t)*(2*sin(t)+cos(t))

ans =

2/exp(t)*sin(t)+1/exp(t)*cos(t)

四、用符号函数法求解方程at2+b*t+c=0。

>> r=solve('a*t^2+b*t+c=0','t')

r =

 1/2/a*(-b+(b^2-4*a*c)^(1/2))

 1/2/a*(-b-(b^2-4*a*c)^(1/2))

五、 用符号计算验证三角等式:

    sin(j1)cos(j2)-cos(j1)sin(j2) =sin(j1-j2)

>> syms phi1 phi2;

y=simple(sin(phi1)*cos(phi2)-cos(phi1)*sin(phi2))

y =

sin(phi1-phi2)

六、 求矩阵的行列式值、逆和特征根。

>> syms a11 a12 a21 a22;

A=[a11,a12;a21,a22]

AD=det(A)

AI=inv(A)

AE=eig(A)  

A =

[ a11, a12]

[ a21, a22]

AD =

a11*a22-a12*a21

AI =

[  a22/(a11*a22-a12*a21), -a12/(a11*a22-a12*a21)]

[ -a21/(a11*a22-a12*a21),  a11/(a11*a22-a12*a21)]

AE =

 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)

七、 ,用符号微分求df/dx。

>> syms a x;

f=[a, x^2, 1/x; exp(a*x), log(x), sin(x)];

df=diff(f)

df =

[          0,        2*x,     -1/x^2]

[ a*exp(a*x),        1/x,     cos(x)]

八、绘制极坐标下sin(3*t)*cos(t)的图形。

>> syms t

ezpolar(sin(3*t)*cos(t))

九、求代数方程组关于x,y的解。

>> S=solve('a*x^2+b*y+c=0','b*x+c=0','x','y');

disp('S.x=') , disp(S.x)

disp('S.y=') , disp(S.y)

S.x=

-c/b

S.y=

-c*(a*c+b^2)/b^3

十、求解微分方程(组)

1、

>> syms a x y

dsolve('Dy=a*x','x')

ans =

1/2*a*x^2+C1

2、

>> syms f t

dsolve('Df=f+sin(t)')

ans =

-1/2*cos(t)-1/2*sin(t)+exp(t)*C1

3、

>> syms y

dsolve('(Dy)^2+y^2=1')

ans =

          1

         -1

  sin(t-C1)

 -sin(t-C1)

4、 

>> syms x y;

>> dsolve('Dy=a*y','y(0)=b','x')

ans =

b*exp(a*x)

5、 

>> syms a x y;

>> dsolve('D2y=-a^2*y','y(0)=1,Dy(pi/a)=0','x')

ans =

cos(a*x)

6、 

>> syms x y t;

>> dsolve('Dx=y','Dy=-x','x','y','t')

ans =

    x: [1x1 sym]

    y: [1x1 sym]

7、  

>> y=dsolve('(Dy)^2+y^2=1','y(0)=0','x')

sy=simple(y)

y =

  sin(x)

 -sin(x)

sy =

  sin(x)

 -sin(x)

更多相关推荐:
Matlab上机实习实习报告

Matlab上机实习实习报告本周我们进行了本学期第三个实习部分Matlab上机实习本次实习一星期共做了八个部分分别是一Matlab基本操作二MATLAB矩阵及其运算三Matlab图形绘制基础四MATLAB数值积...

参考答案Matlab实验报告

实验一Matlab基础知识一实验目的1熟悉启动和退出Matlab的方法2熟悉Matlab命令窗口的组成3掌握建立矩阵的方法4掌握Matlab各种表达式的书写规则以及常用函数的使用二实验内容1求100999之间能...

Matlab上机操作实验报告1

Matlab上机操作实验报告20xx020xx4003电工四班吕及时一实验目的通过上机编程实验使自己熟悉对MATLAB软件平台的使用掌握MATLAB的编程技巧让自己对MATLAB软件平台在科学计算中的重要作用有...

matlab11实验报告

辽宁工程技术大学上机实验报告1程序x2025303540455055606539Xones101xY13215116417117918719621222524339bbintrrintstatsregressY...

Matlab7.0符号计算 上机实验

Matlab70符号计算实验报告目的本实验旨在向学生介绍一种解决专业问题的快速有效且具有强大功能的科学与工程计算软件通过本实验应使学生掌握的内容是MATLAB70符号对象的创建和使用MATLAB70任意精度的计...

南邮matlab实验一

实验一MATLAB语言平台与SIMULINK工具箱一目的与任务1学习了解MATLAB语言环境2练习MATLAB命令4掌握SIMULINK工具箱的应用二内容与要求1实验内容1学习了解MATLAB语言环境2练习MA...

Matlab实验报告

电子科技大学电子工程学院标准实验报告实验课程名称学生姓名学号指导教师一实验名称MATLAB软件操作及程序设计二实验目的通过上机编程实验使学生熟悉对MATLAB软件平台的使用使学生掌握MATLAB的编程技巧让学生...

matlab上机实验报告

1对下列问题请分别用专用函数和通用函数实现1X服从310上均匀分布计算PX4PXgt8已知PXgta04求a代码F4unifcdf4310F81unifcdf8310aunifinv104310结果F40142...

Matlab上机实验报告

Matlab上机实验报告姓名王梅学号11116010224上机时间20xx5141用符号工具箱计算x41x41x2dx01这个积分能用数值积分计算吗如果能应该如何做方法符号计算和数值计算程序流程图程序清单及运行...

matlab基本实验报告

福州大学数学与计算机科学学院数学软件与数学实验上机实验报告

《计算方法与Matlab》上机实验报告

计算方法与Matlab上机实验报告学院土木工程学院班级建工1202班学号31120xx00724姓名姚国京指导教师魏海霞实验一Matlab基础知识操作和编程计算方法与Matlab上机实验报告1利用公式41131...

数学matlab上机实验报告

高等数学Matlab上机实验报告班级土木01姓名谢昌亚学号100720xx实验一一实验问题第81页上机实验题2如图所示为了在海岛I与城市C之间铺设一条地下光缆每千米光缆铺设成本在水下部分是C1在地下部分是C2为...

matlab上机实验报告(18篇)