文档库 最新最全的文档下载
当前位置:文档库 › 实验二2 MATLAB的符号计算与可视化

实验二2 MATLAB的符号计算与可视化

实验二2  MATLAB的符号计算与可视化
实验二2  MATLAB的符号计算与可视化

实验二MATLAB的符号计算与可视化

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 8

0 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794 0.6570

Columns 9 through 11

0.9894 0.4121 -0.5440

练习:用y替换x,查看结果及其数据类型。

z=subs(f,y)

z =

Columns 1 through 8

0 0.7456 0.7891 0.1407 -0.6866 -0.8186 -0.2758 0.6107

Columns 9 through 11

0.8357 0.4006 -0.5176

>> class(z)

ans =

double

(4):符号对象与数值的转换和任意精度控制:

>> f1=subs(f,'5')

f1 =

sin(5)

>> y1=double(f1)

y1 =

-0.9589

>> y2=eval(f1)

y2 =

-0.9589

练习:将y1用sym函数转换为符号对象,并用’d’,’f’,’e’,’r’4种格式表示。

>> y2=sym(y1,'d')

y2 =

-0.95892427466313845396683746002964

ans =

-0.95892427

>> class(y2)

ans =

sym

>> y3=sym(y1,'f')

y3 =

-8637222012098867/9007199254740992 >> y4=sym(y1,'e')

y4 =

-8637222012098867/9007199254740992 >> y5=sym(y1,'r')

y5 =

-8637222012098867/9007199254740992 采用digits和vpa实现任意精度控制:

>> digits

Digits = 32

>> vpa(f1)

ans =

-0.95892427466313846889315440615599

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+8

f =

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

g =

2*x^4 - 5*x^3 + 8*x^2 + 7*x - 2

>> f+g

ans =

3*x^4 - 3*x^3 + 3*x^2 + 13*x + 6

>> f-g

ans =

- x^4 + 7*x^3 - 13*x^2 - x + 10

>> f*g

ans =

(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+2

f =

x^5 + x^4 + 2*x + 2

>> g=cos(y)^2-sin(y)^2

g =

cos(y)^2 - sin(y)^2

>> class(f)

ans =

sym

>> class(g)

ans =

sym

>> pretty(f)

5 4

x + 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 + 2

combine(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 + 2 collect(x):

x^5 + x^4 + 2*x + 2 ans =

(x^4 + 2)*(x + 1)

>> pretty(g)

2 2

cos(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)^2

simplify(100):

cos(2*y)

combine(sincos):

combine(sinhcosh):

cos(y)^2 - sin(y)^2

combine(ln):

cos(y)^2 - sin(y)^2

factor:

(cos(y) - sin(y))*(cos(y) + sin(y))

expand:

cos(y)^2 - sin(y)^2

combine:

cos(y)^2 - sin(y)^2

rewrite(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)^2

rewrite(sinhcosh):

cosh(-y*i)^2 + sinh(-y*i)^2

rewrite(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)^2

cos(y)^2 - sin(y)^2

ans =

cos(2*y)

4:完成教材实验四第1节“1.绘制二维图线”中的所有内容,绘制4种二维曲线,把图形窗口分割为2行2列,并分别标明图名、坐标值等;

M文件:

clf;

clc;

clear;

%2行2列子图的第1个图

figure(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-3t');

%2行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('圆');

插图:

5:参照教材实验四第3节“3.绘制特殊图形”中的相关内容,分别绘制条形图、实心图、阶梯图和火柴杆图,建议选取不同的函数来产生曲线;

M文件:

clf;

clc;

clear;

figure(2);

%条形图

subplot(2,2,1);

x1=3:6;

y1=[5.3 13 0.4

5.1 11.8 -1.7

3.7 8.1 0.6

1.5 7.7 -4.5];

bar(x1,y1);

title('条形图');

xlabel('\it X','fontsize',10);

ylabel('Y');

text(5,7,'my picture');

%实心图

subplot(2,2,2);

x2=0:0.1:2*pi;

y2=cos(x2)-0.5;

plot(x2,y2);

fill(x2,y2,'y');

title('实心图');

xlabel('\it X','fontsize',10);

ylabel('\it Y','fontsize',10);

text(3,0,'the second','FontName','commercialscript BT'); %阶梯图

subplot(2,2,3);

x3=0:0.1:2*pi;

y3=sin(x3);

stairs(x3,y3);

title('阶梯图');

xlabel('\it X','fontsize',10);

ylabel('\it Y','fontsize',10);

text(3,0,'the thrid','Fontsize',10);

%火柴杆图

subplot(2,2,4);

x4=0:0.1:2*pi;

y4=cos(x4)+0.2;

stem(x4,y4);

title('火柴杆图');

xlabel('\it X','fontsize',10);

ylabel('\it Y','fontsize',10);

text(3,0,'the fourth','Fontsize',10);

6:产生10个服从正态分布的随机数,计算该数组的统计变量(包括均值、标准差、最大值、最小值等),并绘制二维和三维饼状图。注意程序运行时是否出现警告信息,思考为什么?M文件:

clc;

clf;

clear;

figure(3);

y=randn(10,1);

mean(y)

std(y)

max(y)

min(y)

subplot(2,1,1);

explode=[0 0 0 0 0 1 0 0 0 0];

pie(y,explode,{'1','2','3','4','5','6','7','8','9','10'});

subplot(2,1,2);

pie3(y,explode,{'1','2','3','4','5','6','7','8','9','10'});

运行结果:

ans =

-0.6814

ans =

0.8682

ans =

0.9642

ans =

-2.0026

Warning: Ignoring non-positive data in pie chart.

> In pie at 41

In hc5 at 14

Warning: Ignoring non-positive data in pie chart.

> In pie3 at 43

In hc5 at 17

有警告出现,原因是:随机数产生有负数,无法在饼图上表示。

实验MATLAB符号运算

实验四 MATLAB 符号运算 一、实验目的 掌握符号变量和符号表达式的创建,掌握MATLAB 的symbol 工具箱的一些基本应用。 二、实验内容 (1) 符号变量、表达式、方程及函数的表示。 (2) 符号微积分运算。 (3) 符号表达式的操作和转换。 (4) 符号微分方程求解。 三、实验步骤 1. 符号运算的引入 在数值运算中如果求x x x πsin lim 0→,则可以不断地让x 接近于0,以求得表达式接近什么数,但是终究不能令0=x ,因为在数值运算中0是不能作除数的。MATLAB 的符号运算能解决这类问题。输入如下命令: >>f=sym('sin(pi*x)/x') >>limit(f,'x',0) >> f=sym('sin(pi*x)/x') f = sin(pi*x)/x >> limit(f,'x',0) ans = Pi 2. 符号常量、符号变量、符号表达式的创建 1) 使用sym( )创建 输入以下命令,观察Workspace 中A 、B 、f 是什么类型的数据,占用多少字节的内存空间。 >> A=sym('1') >> B=sym('x') >> f=sym('2*x^2+3*y-1') >> clear >> f1=sym('1+2') >> f2=sym(1+2) >> f3=sym('2*x+3') >> f4=sym(2*x+3) >> x=1 >> f4=sym(2*x+3) > A=sym('1') A = 1

>> B=sym('x') B = x >> f=sym('2*x^2+3*y-1') f = 2*x^2+3*y-1 >> clear >> f1=sym('1+2') f1 = 1+2 >> f2=sym(1+2) f2 = 3 >> f3=sym('2*x+3') f3 = 2*x+3 >> f4=sym(2*x+3) ??? Undefined function or variable 'x'. >> x=1 x = >> f4=sym(2*x+3) f4 =

实验MATLAB符号计算

实验四符号计算 符号计算的特点:一,运算以推理解析的方式进行,因此不受计算误差积累问题困扰;二,符号计算,或给出完全正确的封闭解,或给出任意精度的数值解(当封闭解不存在时);三,符号计算指令的调用比较简单,经典教科书公式相近;四,计算所需时间较长,有时难以忍受。 在MATLAB中,符号计算虽以数值计算的补充身份出现,但涉及符号计算的指令使用、运算符操作、计算结果可视化、程序编制以及在线帮助系统都是十分完整、便捷的。 MATLAB的升级和符号计算内核Maple的升级,决定着符号计算工具包的升级。但从用户使用角度看,这些升级所引起的变化相当细微。即使这样,本章还是及时作了相应的更新和说明。如MATLAB 6.5+ 版开始启用Maple VIII的计算引擎,从而克服了Maple V计算“广义Fourier变换”时的错误(详见第5.4.1节)。 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> a4=sym('[1/3,pi/7,sqrt(5),pi+sqrt(5)]') % <4> a24=a2-a4 a1 = 0.3333 0.4488 2.2361 5.3777 a2 = [ 1/3, pi/7, sqrt(5), 6054707603575008*2^(-50)] a3 = [ 1/3-eps/12, pi/7-13*eps/165, sqrt(5)+137*eps/280, 6054707603575008*2^(-50)] a4 = [ 1/3, pi/7, sqrt(5), pi+sqrt(5)] a24 = [ 0, 0, 0, 189209612611719/35184372088832-pi-5^(1/2)] 【例5.1.1-2】演示:几种输入下产生矩阵的异同。 a1=sym([1/3,0.2+sqrt(2),pi]) % <1> a2=sym('[1/3,0.2+sqrt(2),pi]') % <2> a3=sym('[1/3 0.2+sqrt(2) pi]') % <3> a1_a2=a1-a2 % a1 = [ 1/3, 7269771597999872*2^(-52), pi] a2 = [ 1/3, 0.2+sqrt(2), pi] a3 = [ 1/3, 0.2+sqrt(2), pi] a1_a2 = [ 0, 1.4142135623730951010657008737326-2^(1/2), 0]

符号运算

与Wolfram公司(Mathematics的开发公司)相比,Mathworks公司一直以矩阵计算和强大的数据处理能力见长,而符号计算非强项。1993年,mathworks公司从加拿大Waterloo Maple公司购买了maple的内核技术,作为MA TLAB符号运算与推导的平台,开发了用以进行符号计算的基本符号运算工具箱和扩展符号运算工具箱,从而解决了MA TLAB在符号计算方面的缺陷。 MA TLAB7.0的符号运算工具箱已上升到3.1.1版本,它几乎可以完成所有的符号运算功能,包括符号函数与符号方程的定义、运算、复合、化简、符号矩阵的计算、符号微分、符号积分、符号代数方程、符号微分方程的求解、符号积分变换和符号特殊函数。 在MA TLAB7.0的符号数学工具箱中,符号表达式含有符号函数和符号方程两种形式,它是表示数字、函数或变量的字符串或字符串组。字符就是符号变量的值。因此在MA TLAB的源程序中符号表达式被表示成字符串和字符串组。符号函数和符号方程的区别是符号函数没有等号,而符号方程必须有等号。 符号变量的定义 MA TLAB有默认的符号自变量,但在各种情况下默认的自变量是不同的。系统默认的自变量主要有x、x1、y、y1、z、v、u、t、theta、alpha。对于这些变量MA TLAB 的默认规则与平时数学习惯大致相同,即: 当这些变量中的某一个与其他变量组成符号数学表达式时,这个变量即为默认的自变量; 当这些变量中的某几个组成符号数学表达式是,默认自变量的顺序是:x>x1>y>y1>z>v>u>t>theta>alpha 例如:

当数学表达式为cos(2*x*a^2)时,默认的自变量为x; 当数学表达式为cos(2*x*v)时,默认的自变量为x; 当数学表达式为cos(2*t*alpha)时,默认的自变量为t; 符号变量可以通过命令syms和sym定义,syms命令一个可以定义一个或多个符号变量。sym一个只能定义一个符号变量。 >> syms x y z t >> who Y our variables are: t x y z >> syms u >> who Y our variables are: t u x y z >> x=sym('x'); >> t=sym('t'); >> z=sym('z'); >> y=sym('y'); >> who Y our variables are: ans t x y z 符号表达式的定义 MA TLAB7.0当中,符号表达式可以通过基本赋值语句,采用单引号或sym/syms

MATLAB符号计算实验报告

实验六符号计算 学院:数计学院班级: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 =

第4章 符号运算

第4章符号运算 符号运算的对象是非数值的符号对象,对于像公式推导和因式分解等抽象的运算都可以通过符号运算来解决。 M A T L A B2006b对应的是S y m b o l i c M a t h T o o l b o x3.1.5。 符号工具箱能够实现微积分运算、线性代数、表达式的化简、求解代数方程和微分方程、不同精度转换和积分变换,符号计算的结果可以以图形化显示,M A T L A B 的符号运算功能十分完整和方便。 符号运算的特点: (1)符号运算以推理解析的方式进行,计算的结果不受计算累积误差影响; (2)符号计算可以得出完全正确的封闭解和任意精度的数值解; (3)符号计算命令调用简单; (4)符号计算所需要的时间较长。 4.1符号对象的创建和使用 创建符号对象都可以使用s y m和s y m s函数来实现。 1.s y m函数 S=s y m(s,参数)%由数值创建符号对象 S=s y m(…s?,参数)%由字符串创建符号对象 当被转换的s是数值时,参数可以是'd'、'f'、'e'或'r'四种格式,当被转换的's'是字符串时,参数可以是'r e a l'、'u n r e a l'和'p o s i t i v e'三种格式 2.s y m s函数 s y m s(s1,s2,s3,…,参数) 或s y m s s1,s2,s3,…,参数%创建多个符号变量 s y m s与s y m的关系是:s y m s(s1,s2,s3,…,参数)等同于s1=s y m('s1',参数),s2=s y m('s2',参数)…… 3.c l a s s函数 s=c l a s s(x)%返回对象x的数据类型 4.1.2符号常量和符号变量 符号常量是不含变量的符号表达式,用s y m函数来创建;符号变量使用s y m和s y m s 函数来创建。 例如: >>a1=s y m(s i n(2))%用数值创建符号常量 >>a2=s y m(s i n(2),'f')%用十六进制浮点表示 >>a1=s y m('a','u n r e a l')%用字符串创建符号变量 4.1.3符号表达式 符号表达式是由符号常量和符号变量等构成的表达式,使用s y m和s y m s函数来创建。 例4-3分别使用s y m和s y m s函数创建符号表达式。 >>s y m s a b c x

matlab实验五多项式和符号运算

实验五:Matlab多项式和符号运算 一、实验目的 1.掌握Matlab多项式的运算。 2.了解符号运算。 二、实验内容 1.将多项式()(2)(3)(7)(1) =-+-+化为x的降幂排列。 P x x x x x syms x; y=(x-2)*(x+3)*(x-7)*(x+1); expand(y) ans = x^4-5*x^3-19*x^2+29*x+42 2.求一元高次方程的根。 98765432 --++--++= 53015027313658204100576-28800 x x x x x x x x x syms x y; y=x^9-5*x^8-30*x^7+150*x^6-1365*x^4-820*x^3+410 0*x^2+576*x-2880; solve(y,x) ans = 6.81947687944124431946 1.42761488953013276419+.8192491831*i 2.865487219+2.49263348244446271927*i

-1.887673354+1.812452594*i -.9583509633 -5.922730991 -1.887673354-1.812452594*i 2.865487219-2.49263348244446271927*i 1.42761488953013276419-.8192491831*i 3.求一元高次方程的根,并画出左边多项式函数在[2,2] x∈-区间内的曲线。 42 -+= x x 210 a=[1 0 -2 0 1]; r=roots(a) syms x; x=-2:2; y=[1 0 -2 0 1]; plot(x,y) r = 1.0000 + 0.0000i 1.0000 - 0.0000i -1.0000 -1.0000

matlab符号计算实验报告

1. 已知x=6,y=5, 利用符号表达式求z =>> syms x >> z=(x+1)/(sqrt(x+3)-sqrt(y)); >> subs(z,x,5) ans =6/(8^(1/2)-y^(1/2)) >> subs(ans,6) ans = 15.8338 2. 分解因式。 (1)x y -44; >> syms x y >> factor(x^4-y^4) ans =(x-y)*(x+y)*(x^2+y^2) (2)x x x +++642 12575151 >> syms x >> factor(125*x^6+75*x^4+15*x^2+1) ans =(5*x^2+1)^3 3. 化简表达式 (1)sin cos cos sin ββββ-1212; >> syms x y >> f=sin(x).*cos(y)-cos(x).*sin(y); >> sfy1=simple(f) 结果:sfy1 =sin(x-y) (2)x x x +++248321 >> syms x >> f=(4*x^2+8*x+3)/(2*x+1);sfy1=simplify(f) sfy1 =2*x+3 4、求下列极限,将完成实验的程序写到文件sy1.m 中: (1) (2) (3) (4) (5) (1)>> syms x >> F1=atan(x)/(x); >> w=limit(F1) w =1 (2)>> syms x F2=((1+x)/(1-x))^(1/x); >> w=limit(F2) w =exp(2) (3)>> syms x F3=(x.*log(1+x))/(sin(x^2)); >> w=limit(F3) w =1 (4)>> syms x F4=atan(x)/(x); >> w=limit(F4,x,inf) w =0 (5)>> syms x F5=(1/(1-x)-1/(1-x^3)); >> w=limit(F5,x,1) w =NaN 5、求下列函数的导数,将完成实验的程序写到文件sy2.m 中: 1、 >> x = sym('x'); >> y1=(cos(x))^3-cos(3*x); >> diff(y1)ans =-3*cos(x)^2*sin(x)+3*sin(3*x) 2、 >> x = sym('x'); >> y2=x.*sin(x).*(log(x)); >> diff(y2)ans =sin(x)*log(x)+x*cos(x)*log(x)+sin(x) 3、 >> x = sym('x'); >> y3=(x.*exp(x)-1)/sin(x); >> diff(y3) ans =(exp(x)+x*exp(x))/sin(x)-(x*exp(x)-1)/sin(x)^2*cos(x) 4、 x x x x F 1011lim 2??? ??-+=→3 1115lim()11x F x x →=---20sin )1ln(lim 3x x x F x +=→x x F x arctan lim 10→=arctan 4lim x x F x →∞=x x y 3cos cos 13-=x x x y ln sin 2=x xe y x sin 13-=cos x y e x =

符号运算参考答案讲解

实验3 符号运算 一、实验目的 1.掌握符号对象的创建及符号表达式化简的基本方法;符号(symbol)运算的基本功能. 2.掌握符号微积分、符号方程的求解的基本方法。 二、实验内容与要求 1. 字符型变量、符号变量、符号表达式、符号方程的建立 用单引号设定字符串变量 >>a ='u+4'%定义a为字符型变量 a = u+4 用命令sym(‘’)创建单个符号变量、符号表达式、符号方程. >>x= sym('m+n+i') %定义x为符号型变量 x= m+n+i >>y = sym('d*x^2 + x – 4')%定义y为符号表达式 y= d*x^2 + x – 4 >>e = sym(' a*x^2+b*x+c=0') %定义e为符号方程 e= a*x^2+b*x+c=0 用命令syms创建多个符号变量、符号表达式. >>syms a b x y %定义a,b,x,y为符号变量,字母间必须用空格 >>s = a*x^4+b*cos(y)-x*y %定义s为符号表达式 s= a*x^4+b*cos(y)-x*y

基于MA TLAB的数学实验 16 注意:sym(‘’)中的单引号不要漏,syms后的符号变量之间不能用逗号,用syms不能建立符号方程. 2. 复合函数计算 格式:compose(f,g,x,y)%返回复合函数f [ g (y)],f = f (x),g = g (y). >>syms x y >>f = 1/(1 + x^2*y); g = sin(y); >>C = compose(f,g,x,y) % 结果为1/(1+sin(y)^2*y) 2 合并同类项 格式:collect(S) %是对S中的每一函数,按缺省变量x的次数合并系数. collect(S,v) %是对指定的变量v计算,操作同上. 【例1.18】 >> syms x y %定义x,y为符号变量 >> R1=collect((exp(x)+x)*(x+2)); %结果为x^2+(exp(x)+2)*x+2*exp(x) >> R2=collect((x+y)*(x^2+y^2+1),y);%结果为y^3+x*y^2+(x^2+1)*y+x*(x^2+1) 4.符号表达式的展开 格式:R=expand(S) %展开符号表达式S中每个因式的乘积。 【例1.20】 >>syms x y t >>E=expand((x-2)*(x-4)*(y-t)) % 结果为x^2*y-x^2*t-6*x*y+6*x*t+8*y-8*t 6. 符号表达式的通分 格式:[N,D]=numden(S) % 将符号表达式S中的每一元素进行通分,其中N为分子的表达式,D为分母的表达式。 【例1.22】 >>syms x y >>[N,D]=numden(x/y+y/x) % 结果为N =x^2+y^2, D =x*y

实验3 Matlab 符号运算及求函数极值

实验3 Matlab 符号运算及求函数极值一、实验目的和要求 掌握用Matlab软件进行符号运算以及求函数的极值。 二、实验环境 Windows系列操作系统,Matlab软件。 三、实验内容 1.用MATLAB进行符号运算; 2.编程求函数的极值。 四、实验步骤 3.开启软件平台——Matlab,开启Matlab编辑窗口; 4.根据求解步骤编写M文件; 5.保存文件并运行; 6.观察运行结果(数值或图形); 7.根据观察到的结果和体会写出实验报告。 五、示例 1.计算一元函数的极值 例1求 2 2 344 1 x x y x x ++ = ++ 的极值 解首先建立函数关系: s yms x y=(3*x^2+4*x+4)/( x^2+x+1); 然后求函数的驻点: dy=diff(y); xz=solve(dy) xz= [0] [-2] 知道函数有两个驻点x 1=0和x 2 =-2, 接下来我们通过考察函数的图形,则它的极值情况和许多其它特性是一目了然的。而借助MATLAB的作图功能,我们很容易做到这一点。 例2 画出上例中函数的图形

解 syms x y=(3*x^2+4*x+4)/( x^2+x+1); 得到如下图形 ezplot(y) 2.计算二元函数的极值 MATLAB 中主要用diff 求函数的偏导数,用jacobian 求Jacobian 矩阵。 例1 求函数42823z x xy y =-+-的极值点和极值. 首先用diff 命令求z 关于x,y 的偏导数 >>clear; syms x y; >>z=x^4-8*x*y+2*y^2-3; >>diff(z,x) >>diff(z,y) 结果为 ans =4*x^3-8*y ans =-8*x+4*y 即348,84z z x y x y x y ??=-=-+??再求解方程,求得各驻点的坐标。一般方程组的符号解用solve 命令,当方程组不存在符号解时,solve 将给出数值解。求解方程的MA TLAB 代码为:

实验 MATLAB符号运算功能

实验3 MATLAB 符号运算功能 实验目的:掌握MATLAB 符号运算功能的基本使用方法 1.符号矩阵的建立及符号矩阵的运算; 2.符号矩阵的简化; 3.符号矩阵的极限和微积分; 4.代数方程求解; 5.一元函数图象简易画法. 实验内容: 1. 设)1()(--=x e x x g x 1) 将)(x g 写成MATLAB 符号表达式; 2) 求出符号表达式)('x g ; 3) 利用"subs "命令求出)4(g 和)4('g ; 4) 利用"plot "命令画出函数)(x g 在区间[-3,3]上的光滑图象; 5) 利用"ezplot "命令画出函数)(x g 在区间[-3,3]上的图象并与4)所得结果进行比较. 比较. 运行命令: syms x; g=[x*(exp(x)-x-1)] diff(g) G=subs(g,[4]) G1=subs(diff(g),4) x=-3:0.01:3; y=x.*(exp(x)-x-1); plot(x,y) ezplot(g,[-3,3]) 程序运行结果: g = x*(exp(x)-x-1) ans = exp(x)-x-1+x*(exp(x)-1) G = 198.3926 G1 =

263.9908 2. 设)1()(1--=x e x x g x ,1)(22+=x x g 1)利用"ezplot "命令画图估计函数)(1x g 与)(2x g 图象交点的x 值; 2) 利用"solve "命令求出函数)(1x g 与)(2x g 图象交点处x 的精确值. 3. 说明下面程序中每个命令的作用: syms x h f = exp(sin(x)) m = (subs(f, x+h)-f)/h f1 = limit(m, h, 0) subs(f1, pi) X = -10:.05:10; F = subs(f, X); F1 = subs(f1, X); plot(X, F, ’b’, X, F1, ’r’) 解释程序运行的结果. 4. 设)3cos ()(+-=x e x x f x 1) 利用定积分的定义(无限求和)计算?3 0)(dx x f 的近似值(有限求和),改变求和的项数对结果的变化进行比较; 2) 利用符号积分的命令"int "计算?3 0)(dx x f 的值,并与1)所得结果进行比较。

MATLAB实验——符号运算讲解

实验一符号运算 班级:电气4班姓名:叶元亮学号:B2012052409 一、实验目的 1、了解符号、数值、字符等数据类型的差别 2、了解符号运算的特点、优缺点 3、掌握符号变量的创建和运算,以及其运算的基本应用 4、掌握基本的符号绘图指令 二、实验内容 1、指出下面的 M1,M2,M3 分别是什么,并上机验证。 取a=1、b=2、c=3、d=4,M1=[a,b;c,d],M2='[a,b;c,d]',M3=sym('[a,b;c,d]'); >> a=1,b=2,c=3,d=4 a = 1 b = 2 c = 3 d = 4 >> M1=[a,b;c,d] M1 =

1 2 3 4 >> M2='[a,b;c,d]' M2 = [a,b;c,d] >> M3=sym('[a,b;c,d]') M3 = [ a, b] [ c, d] 结论:M1是矩阵,2是字符串,M3是字符变量。 2、下面2种取值情况下,计算b a b a- + 并赋给相应情况下的c1、c2,问c1、c2相等吗,为什么?上机验证。 (1) a1=1010; b1=10-10; (2)将a1、a2作为符号变量赋给a2、b2; >> a1=1e10; b1=1e-10; >> c1=(a1+b1-a1)/b1 c1 = >> a2=sym(a1); b2=sym(b1); >> c2=(a2+b2-a2)/b2 c2 = 1

结果:c1~=c2,因为c1=0,c2=1,a1、b1是具体的数值,a2、b2是符号变量。 3、符号表达式中自由变量的确定生成符号变量a 、b 、x 、X 、Y 、 k=3、z=a y w c sin +,表达式为 Y k bx azX f )(2++=。 (1)找出f 中的全部自由符号变量 (2)在f 中确定最优先的自由符号变量 (3)在f 中确定2个和3个自由变量时的执行情况 (4)试通过对各符号变量与x 的ASCII 值做绝对差值,分析自 由变量优秀顺序,能得出什么结论? >> syms a b x X Y k=sym('3'); z=sym('c*sqrt(w)+y*sin(a)'); f=a*z*X+(b*x^2+k)*Y; >> findsym(f) ans = X, Y, a, b, c, w, x, y >> findsym(f,1) ans = x >> findsym(f,2) ans = x,y

实验二2MATLAB地符号计算与可视化

实验二MATLAB的符号计算与可视化 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 8 0 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794 0.6570 Columns 9 through 11 0.9894 0.4121 -0.5440 练习:用y替换x,查看结果及其数据类型。 z=subs(f,y) z = Columns 1 through 8

0 0.7456 0.7891 0.1407 -0.6866 -0.8186 -0.2758 0.6107 Columns 9 through 11 0.8357 0.4006 -0.5176 >> class(z) ans = double (4):符号对象与数值的转换和任意精度控制: >> f1=subs(f,'5') f1 = sin(5) >> y1=double(f1) y1 = -0.9589 >> y2=eval(f1) y2 = -0.9589 练习:将y1用sym函数转换为符号对象,并用’d’,’f’,’e’,’r’4种格式表示。>> y2=sym(y1,'d') y2 = -0.95892427466313845396683746002964

实验 MATLAB符号运算功能

实验3 MATLAB符号运算功能 实验目的:掌握MATLAB符号运算功能的基本使用方法 1.符号矩阵的建立及符号矩阵的运算; 2.符号矩阵的简化; 3.符号矩阵的极限和微积分; 4.代数方程求解; 5.一元函数图象简易画法. 实验内容: 1. 设)1 x e g x x (- ( ) - =x 1) 将) g写成MATLAB符号表达式; (x 2) 求出符号表达式) g; ('x 3) 利用"subs"命令求出)4(g和)4('g; 4) 利用"plot"命令画出函数) g在区间[-3,3]上的光滑图象; (x 5) 利用"ezplot"命令画出函数) g在区间[-3,3]上的图象并与4)所得结果 (x 进行比较. 比较. 运行命令: syms x; g=[x*(exp(x)-x-1)] diff(g) G=subs(g,[4]) G1=subs(diff(g),4) x=-3:0.01:3; y=x.*(exp(x)-x-1); plot(x,y) ezplot(g,[-3,3]) 程序运行结果: g = x*(exp(x)-x-1) ans = exp(x)-x-1+x*(exp(x)-1) G = 198.3926 G1 =

263.9908 2. 设)1()(1--=x e x x g x ,1)(22+=x x g 1)利用"ezplot "命令画图估计函数)(1x g 与)(2x g 图象交点的x 值; 2) 利用"solve "命令求出函数)(1x g 与)(2x g 图象交点处x 的精确值. 3. 说明下面程序中每个命令的作用: syms x h f = exp(sin(x)) m = (subs(f, x+h)-f)/h f1 = limit(m, h, 0) subs(f1, pi) X = -10:.05:10; F = subs(f, X); F1 = subs(f1, X); plot(X, F, ’b’, X, F1, ’r’) 解释程序运行的结果. 4. 设)3cos ()(+-=x e x x f x 1) 利用定积分的定义(无限求和)计算?3 0)(dx x f 的近似值(有限求和),改变求和的项数对结果的变化进行比较; 2) 利用符号积分的命令"int "计算?3 0)(dx x f 的值,并与1)所得结果进行比较。

实验四 MATLAB符号运算

实验四MATLAB符号运算 一、实验目的: 1、掌握定义符号对象的方法; 2、掌握符号表达式的运算法则以及符号矩阵运算。 3、掌握求符号函数极限及导数的方法。 4、掌握求符号函数定积分和不定积分的方法。 二、实验原理 1、符号常量、符号变量、符号表达式的创建 (1) 使用sym( )创建 输入以下命令,观察Workspace 中A、B、f是什么类型的数据,占用多少字节的内存空间。 >>A=sym('1') %符号常量 >>B=sym('x') %符号变量 >>f=sym('2*x^2+3y-1') %符号表达式 >>clear >>f1=sym('1+2') %有单引号,表示字符串 >>f2=sym(1+2) %无单引号 >>f3=sym('2*x+3') >>f4=sym(2*x+3) %为什么会出错 >>x=1 >>f4=sym(2*x+3) 通过看MATLAB 的帮助可知,sym( )的参数可以是字符串或数值类型,无论是哪种类型都会生成符号类型数据。 (2) 使用syms 创建 >>clear >>syms x y z %注意观察x,y,z都是什么类型的,它们的内容是什么 >>x,y,z >>f1=x^2+2*x+1 >>f2=exp(y)+exp(z)^2 >>f3=f1+f2 通过以上实验,知道生成符号表达式的第二种方法:由符号类型的变量经过运算(加减乘除等)得到。又如: >>f1=sym('x^2+y +sin(2)') >>syms x y >>f2=x^2+y+sin(2) >>x=sym('2') , y=sym('1') >>f3=x^2+y+sin(2)

matlab符号运算函数大全

3.1 算术符号操作 命令+、-、*、.*、\、.\、/、./、^、.^、’、.’ 功能符号矩阵的算术操作 用法如下: A+B、A-B 符号阵列的加法与减法。 若A与B为同型阵列时,A+B、A-B分别对对应分量进行加减;若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行加减。 A*B 符号矩阵乘法。 A*B为线性代数中定义的矩阵乘法。按乘法定义要求必须有矩阵A 的列数等于矩阵B的行数。即:若 A n*k* B k*m=(a ij)n*k.*(b ij)k*m= C n*m=(c ij)n*m,则,i=1,2,…,n; j=1,2,…,m。或者至少有一个为标量时,方可进行乘法操作,否则将 返回一出错信息。 A.*B 符号数组的乘法。 A.*B为按参量A与B对应的分量进行相乘。A与B必须为同型阵列, 或至少有一个为标量。即: A n*m.* B n*m=(a ij)n*m.*(b ij)n*m= C n*m=(c ij)n*m,则c ij= a ij* b ij, i=1,2,…,n;j=1,2,…,m。 A\B 矩阵的左除法。

X=A\B为符号线性方程组A*X=B的解。我们指出的是,A\B近似 地等于inv(A)*B。若X不存在或者不唯一,则产生一警告信息。矩 阵A可以是矩形矩阵(即非正方形矩阵),但此时要求方程组必须 是相容的。 A.\B 数组的左除法。 A.\B为按对应的分量进行相除。若A与B为同型阵列时, A n*m.\ B n*m=(a ij)n*m.\(b ij)n*m= C n*m=(c ij)n*m,则c ij= a ij\ b ij, i=1,2,…,n;j=1,2,…,m。若若A与B中至少有一个为标量,则把标 量扩大为与另外一个同型的阵列,再按对应的分量进行操作。 A/B 矩阵的右除法。 X=B/A为符号线性方程组X*A=B的解。我们指出的是,B/A粗略 地等于B*inv(A)。若X不存在或者不唯一,则产生一警告信息。矩 阵A可以是矩形矩阵(即非正方形矩阵),但此时要求方程组必须 是相容的。 A./B 数组的右除法。 A./B为按对应的分量进行相除。若A与B为同型阵列时, A n*m./ B n*m=(a ij)n*m./(b ij)n*m= C n*m=(c ij)n*m,则c ij= a ij/b ij,i=1,2,…,n; j=1,2,…,m。若A与B中至少有一个为标量,则把标量扩大为与另 外一个同型的阵列,再按对应的分量进行操作。 A^B 矩阵的方幂。

2014秋实验四_MATLAB的符号计算二

2014年10月26日星期日 湖北科技学院 MATLAB 专业:电气工程及其自动化班级:电气一班 姓名:尹锥(133521015)指导教师:刘芳华 电子与信息工程学院

实验四MATLAB的符号计算(二) 一、实验目的 1.掌握MATLAB7.0 subs、simple、simplify、finverse等函数的应用; 2.掌握利用MATLAB7.0计算极限和级数的方法,计算复合、反函数的方法; 3.了解利用MATLAB7.0计算taylor级数。 4.掌握利用MATLAB7.0来求解常微分方程的方法。 5.掌握利用MATLAB7.0符号计算中的ezplot及ezplot3绘图方法。 二、实验内容 1.设x为符号变量, 42 ()21 f x x x =++,32 ()635 g x x x x =+++,试进行如下运算。 (1) ()() f x g x +, (2) ()() f x g x ?, (3)对 () f x进行因式分解, (4)求 () g x的反函数。 2

2.(1)指出下面程序中的f1、f2、f3、f4、f5的值。f5=subs(f,{a,x},{0:6,0:pi/6:pi}) 3

(2)指出下面替换的结果。 3. 用符号计算验证三角等式: sin(?1)cos(?2)-cos(?1)sin(?2) =sin(?1-?2) 4

4.设,求 7.求微分方程的解:y'''-y''=x,y''(2)=4,y'(1)=7,y(1)=8 5

8.计算函数级数 2 1 n x S n ∞ = =∑ 9. f(x)=e x分别求5阶、6阶泰勒展开式 10.符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t的变化范围为[0,2π]。 6

MATLAB实验一——符号运算(学)

实验一 符号运算 要求:报告应写出相应的实验程序代码,相关绘图应截图保存。 一、实验目的 1、了解符号、数值、字符等数据类型的差别 2、了解符号运算的特点、优缺点 3、掌握符号变量的创建和运算,以及其运算的基本应用 4、掌握基本的符号绘图指令 二、实验内容 1、指出下面的 M1,M2,M3 分别是什么,并上机验证。 取a=1、b=2、c=3、d=4,M1=[a,b;c,d],M2='[a,b;c,d]',M3=sym('[a,b;c,d]'); 2、下面2种取值情况下,计算b a b a -+并赋给相应情况下的c1、 c2,问c1、c2相等吗,为什么?上机验证。 (1) a1=1010; b1=10-10; (2) 将a1、a2作为符号变量赋给a2、b2; 3、符号表达式中自由变量的确定生成符号变量a 、b 、x 、X 、Y 、 k=3、z=a y w c sin +,表达式为 Y k bx azX f )(2++=。 (1)找出f 中的全部自由符号变量

2 (2)在f 中确定最优先的自由符号变量 (3)在f 中确定2个和3个自由变量时的执行情况 (4)试通过对各符号变量与x 的ASCII 值做绝对差值,分析自 由变量优秀顺序,能得出什么结论? 4、已知432432)(x x x x x f +++-=, 965)(25+-=x x x g 。做符号运算,化简并计算: (1))()(x g x f ?;)(/)(x g x f ;)(\)(x g x f (2)?dx x f )(;?21)(dx x g ;22)(dx x f d ;)()(lim 0x g x f x → 5、用ezplot 命令绘出 2sin()y x x =在[-4,4]之间的图像。 6、用ezsurf 命令绘出单位球的曲面图像

相关文档
相关文档 最新文档