实验MATLAB符号计算

合集下载

Matlab上机操作2——符号计算

Matlab上机操作2——符号计算

Matlab上机操作2——符号计算1、%创建数值常量和符号常量a1=2*sqrt(5)+pi %创建数值常量a2=sym('2*sqrt(5)+pi') %按符号表达式创建符号常量a3=sym(2*sqrt(5)+pi) %按最接近的两个正整数表示符号常量a4=sym(2*sqrt(5)+pi,'d') %按最接近的十进制浮点数表示符号常量a31=a3-a1 %数值常量和符号常量的计算a5='2*sqrt(5)+pi' %字符串常量2、%创建符号变量和符号表达式f1=sym('a*x^2+b*x+c') %创建符号表达式syms a b c x %创建符号变量f2=a*x^2+b*x+c %创建符号表达式syms('a','b','c','x') %注意这里是syms,不是sym>> sym('a','b','c','x')错误使用sym输入参数太多。

f3=a*x^2+b*x+c; %创建符号表达式syms x y real %创建实数符号变量z=x+i*y; %创建z为复数符号变量real(z) %复数z的实部是实数xsym('x','unreal'); %清除符号变量的实数特性real(z) %复数z的实部3、%比较符号矩阵与字符串矩阵A=sym('[a,b;c,d]') %创建符号矩阵B='[a,b;c,d]' %创建字符串矩阵C=[a,b;c,d] %创建数值矩阵C=sym(B) %转换为符号矩阵whos4、%计算符号矩阵的行列式值、非共轭转置和特征值syms a11 a12 a21 a22A=[a11 a12;a21 a22] %创建符号矩阵det(A) %计算行列式A.' %计算非共轭转置eig(A)%计算特征值5、%符号表达式的代数运算f=sym('2*x^2+3*x+4')g=sym('5*x+6')f+g %符号表达式相加f*g %符号表达式相乘6、%对符号表达式进行任意精度控制并用三种运算方式表示同一符号常量a=sym('2*sqrt(5)+pi')digits %显示默认的有效位数vpa(a) %用默认的位数计算并显示vpa(a,20) %按指定的精度计算并显示digits(15) %改变默认的有效位数vpa(a) %按digits指定的精度计算并显示a1 =2/3 %数值型a2 = sym(2/3) %有理数型digitsa3 =vpa('2/3',32) %VPA型format longa17、%符号变量与数值变量进行转换a1=sym('2*sqrt(5)+pi')b1=double(a1) %转换为数值变量a2=vpa(sym('2*sqrt(5)+pi'),32)b2=numeric(a2) %转换为数值变量b2=numeric(a2)未定义函数或变量'numeric'。

实验四MATLAB数值计算与符号计算

实验四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基础:符号计算:符号矩阵的生成+符号矩阵的运算+符号函数及相关操作

大学数学实验Matlab基础:符号计算:符号矩阵的生成+符号矩阵的运算+符号函数及相关操作
• 符号对象 • 符号函数
第 5 章 符号计算
• 符号矩阵的生成
– 用 sym 定义 – 用 syms 定义
• 符号矩阵的计算 • 符号函数及其常见的运算
– 多项式函数 – 一般函数2、符号矩阵的计算– 与数值型矩阵类似
• 四则运算和阵列运算 • 转置 • 求行列式 • 求逆 • 求特征值与特征向量 •等
式化简、求反函数、求复合函数,等。
第 5 章 符号计算
• 符号矩阵的生成
– 用 sym 定义 – 用 syms 定义
• 符号矩阵的计算 • 符号函数及其常见的运算
– 多项式函数 – 一般函数
3、符号函数及其常见的运算
– 多项式函数
• 生成 • 相关运算:四则运算、合并同类项、展开、因式分
解,等。
– 一般函数
• 定义 • 相关运算:找出符号变量、找出分子和分母、表达
大学数学实验 ( Matlab 版 )
第 5 章 符号计算
• 符号矩阵的生成
– 用 sym 定义 – 用 syms 定义
• 符号矩阵的计算 • 符号函数及其常见的运算
– 多项式函数 – 一般函数
1、符号矩阵的生成
– 用 sym
• 定义符号对象(标量) • 将数值矩阵转换为符号矩阵
– 用 syms 定义

MATLAB的符号计算

MATLAB的符号计算

diff(s,’v’,n)
【例】求导数: 2 d s in x dx x = sym('x'); diff(sin(x^2),x) ans = 2*cos(x^2)*x
%定义符号变量 %求导运算
3.积分函数 积分函数int(s ,v,a,b)可以对被积函 数或符号表达式s求积分。其引用格式为: int(s ,v,a,b) 说明:
1、建立m-文件rigid.m如下: function dy=rigid(t,y) dy=zeros(3,1); dy(1)=y(2)*y(3); dy(2)=-y(1)*y(3); dy(3)=-0.51*y(1)*y(2);
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 2 4 6 8 10 12
例1

d2y dx
2
0 应表达为:D2y=0.

du 1 u 2 的通解. dt
输入命令:dsolve('Du=1+u^2','t')
结 果:u = tg(t-c)
例2
求微分方程的特解.
d 2 y dy 2 4 29 y 0 dx dx y (0) 0, y ' (0) 15

2、取t0=0,tf=12,输入命令: [T,Y]=ode45('rigid',[0 12],[0 1 1]); plot(T,Y(:,1),'-',T,Y(:,2),'*',T,Y(:,3),'+')
3、结果如图 图中,y1的图形为实线,y2的图形为“*”线,y3的图形为“+”线.

matlab符号计算实验报告

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.83382. 分解因式。

(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 +++64212575151 >> syms x >> factor(125*x^6+75*x^4+15*x^2+1) ans =(5*x^2+1)^33. 化简表达式(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+34、求下列极限,将完成实验的程序写到文件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 =NaN5、求下列函数的导数,将完成实验的程序写到文件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⎪⎭⎫ ⎝⎛-+=→31115lim()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 →∞=xx y 3cos cos 13-=xx x y ln sin 2=x xe y xsin 13-=cos x y e x =>> x = sym('x');y=cos(x).*exp(x); >> diff(y) ans =-sin(x)*exp(x)+cos(x)*exp(x)5、 >> x = sym('x');y=x^2.*sin(x); >> diff(y) ans = 2*x*sin(x)+x^2*cos(x)6、求下列函数的积分1、syms x a b c;int(sin(a*x).*sin(b*x).*sin(c*x)) ans =-1/4/(c+a-b)*cos((c+a-b)*x)+1/4/(-c+a-b)*cos((-c+a-b)*x)+1/4/(c+a+b)*cos((c+a+b)*x)-1/4/(-c +a+b)*cos((-c+a+b)*x) 2、>> syms x ;int(x^5+x^3-sqrt(x)/4) ans =1/6*x^6+1/4*x^4-1/6*x^(3/2)3、>> syms x ;int(x.*exp(x)/(x+1)^2,x,0,1) ans =1/2*exp(1)-1 4、 >> syms x y;F=int(int('x/(1+x*y)',x,0,1),y,0,1) F =2*log(2)-15、 由曲面22y x z +=,1=z ,2=z 所围成 >> syms x y z;F=int(int(int('x^2+y^2',x,-inf,inf),y,-inf,inf),z,1,2) F =Inf7、求下列级数的和(1) (2)(1)>> syms n;symsum(2*n-1/2^n,1,Inf) ans =Inf(2)syms n;symsum(1/n*(2*n-1),1,Inf) ans =Inf8、将函数 展开成2-x 的幂级数>> syms x;mtaylor(1/(x^2+5*x-3),x-2) 2sin 2y x x=⎰cxdx bx ax sin sin sin dx x x x )4(35⎰-+⎰+102)1(dx x xe x ⎰⎰+D dxdy xy x 1]1,0[]1,0[⨯=D ⎰⎰⎰Vzdxdydz 11212n n n I ∞=-=∑211(21)n I n n ∞==+∑21()53f x x x =+-。

matlab符号计算实验总结

matlab符号计算实验总结

matlab符号计算实验总结
在这个实验中,我们使用了MATLAB中的符号计算工具,通过创建符号变量和符号表达式来进行数学计算和推导。

这些符号计算工具能够处理代数运算、微积分、方程求解等复杂的数学问题。

在实验过程中,我们首先学习了如何创建符号变量。

通过使用
'sym'函数,我们可以将常规变量转换为符号变量,从而进行符号计算。

例如,我们可以定义一个符号变量x:x = sym('x')。

接下来,我们学习了如何使用符号变量进行代数运算。

通过将符号变量组合成符号表达式,我们可以进行加减乘除等代数运算。

例如,我们可以定义一个符号表达式y = x^2 + 2*x + 1,并对其进行简化或展开操作。

除了代数运算,我们还学习了如何进行微积分计算。

通过使用符号变量和符号表达式,我们可以对函数进行求导和积分操作。

例如,我们可以对一个符号表达式y = x^3求导,并得到其导数表达式。

在实验中,我们还学习了如何使用符号计算工具解方程。

通过使用'solve'函数,我们可以求解方程的根。

例如,我们可以解一个一元二次方程,找到其根的解析解。

通过这个实验,我深刻理解了符号计算在数学问题中的重要性。

它能够帮助我们更好地理解数学概念和定理,并能够进行复杂的数学推导和计算。

MATLAB中的符号计算工具提供了强大的功能和简便的操作,使得数学问题的解决变得更加高效和准确。

总的来说,这个实验让我对MATLAB中的符号计算有了更深入的
了解和掌握。

我相信在今后的学习和研究中,这些符号计算工具将对我有很大的帮助。

MATLAB实验报告3-符号运算

MATLAB实验报告3-符号运算
>> F=subs(gy,{x,y},{x-1,y-2})
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进行符号计算

如何使用MATLAB进行符号计算1. 引言在科学计算和工程应用中,符号计算是一项重要的任务。

符号计算可以帮助我们推导数学公式、解方程、进行代数化简等等。

MATLAB作为一种强大的科学计算工具,也提供了符号计算的功能。

本文将介绍如何使用MATLAB进行符号计算。

2. 符号计算基础在MATLAB中,符号计算通过符号工具箱提供。

首先需要将变量声明为符号变量,使用`syms`关键字来完成。

例如,下面的代码将变量x和y声明为符号变量:```syms x y```其次,我们可以使用`sym`函数将数值转换为符号类型。

例如,下面的代码将整数2转换为符号类型:```a = sym(2)```最后,我们可以使用各种符号运算进行符号计算。

例如,下面的代码演示了符号变量之间的加法运算:```x + y```3. 推导数学公式符号计算的一个常见用途是推导数学公式。

MATLAB提供了一系列函数来进行推导,如`diff`、`int`等。

例如,下面的代码计算了函数sin(x)的导数: ```syms xf = sin(x);df = diff(f, x);```在这个例子中,`diff`函数用于计算导数,第一个参数是要计算导数的函数,第二个参数是相对于哪个变量求导数。

4. 解方程另一个常见的符号计算任务是解方程。

MATLAB提供了`solve`函数来解方程。

例如,下面的代码解了方程x^2 - 2 = 0:```syms xsol = solve(x^2 - 2);```解方程的结果是一个结构体数组,每个元素代表一个解。

5. 代数化简符号计算还可以用于代数化简。

MATLAB提供了`simplify`函数来进行代数化简。

例如,下面的代码对表达式(x+1)^2进行化简:```syms xexpr = (x+1)^2;simplified_expr = simplify(expr);````simplify`函数将表达式化简为最简形式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB的升级和符号计算内核Maple的升级,决定着符号计算工具包的升级。但从用户使用角度看,这些升级所引起的变化相当细微。即使这样,本章还是及时作了相应的更新和说明。如MATLAB 6.5+版开始启用MapleVIII的计算引擎,从而克服了MapleV计算“广义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>
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)');
[ 1/3, 0.2+sqrt(2), pi]
a1_a2 =
[0, 1.4142135623730951010657008737326-2^(1/2), 0]
【例5.1.1-3】把字符表达式转换为符号变量
y=sym('2*sin(x)*cos(x)')
y=simple(y)
y =
2*sin(x)*cos(x)
实验四
符号计算的特点:一,运算以推理解析的方式进行,因此不受计算误差积累问题困扰;二,符号计算,或给出完全正确的封闭解,或给出任意精度的数值解(当封闭解不存在时);三,符号计算指令的调用比较简单,经典教科书公式相近;四,计算所需时间较长,有时难以忍受。
在MATLAB中,符号计算虽以数值计算的补充身份出现,但涉及符号计算的指令使用、运算符操作、计算结果可视化、程序编制以及在线帮助系统都是十分完整、便捷的。
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)]
EXPR=a*z*X+(b*x^2+k)*Y;
(2)
findsym(EXPR)
ans =
X, Y, a, b, c, delta, theta, x, y
(3)
findsym(EXPR,1)
ans =
x
(4)
findsym(EXPR,2),findsym(EXPR,3)
ans =
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 =
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)
【例5.1.1-6】验证积分 。
syms A t tao w;yf=int(A*exp(-i*w*t),t,-tao/2,tao/2);Yf=simple(yf)
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>
y =
sin(2*x)
【例5.1.1-4】用符号计算验证三角等式 。
syms fai1fai2;y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2))
y =
sin(fai1-fai2)
【例5.1.1-5】求矩阵 的行列式值、逆和特征根
syms a11 a12 a21 a22;A=[a11,a12;a21,a22]
[ c, d]
(2)
SizeMn=size(Mn),SizeMc=size(Mc),SizeMs=size(Ms)
SizeMn =
2 2
SizeMc =
1 9
SizeMs =
2
(3)
CMn=class(Mn),CMc=class(Mc),CMs=class(Ms)
CMn =
double
CMc =
Yf =
2*A*sin(1/2*w*tao)/w
5.1.2
5.1.3
【例5.1.3-1】数据对象及其识别指令的使用。
(1)
clear,a=1;b=2;c=3;d=4;
Mn=[a,b;c,d]
Mc='[a,b;c,d]'
Ms=sym(Mc)
Mn =
1 2
3 4
Mc =
[a,b;c,d]
Ms =
[ a, b]
DA=det(A),IA=inv(A),EA=eig(A)
A =
[ a11, a12]
[ a21, a22]
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)]
相关文档
最新文档