实验MATLAB符号计算
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数值计算与符号计算一、实验目的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基础:符号计算:符号矩阵的生成+符号矩阵的运算+符号函数及相关操作
第 5 章 符号计算
• 符号矩阵的生成
– 用 sym 定义 – 用 syms 定义
• 符号矩阵的计算 • 符号函数及其常见的运算
– 多项式函数 – 一般函数2、符号矩阵的计算– 与数值型矩阵类似
• 四则运算和阵列运算 • 转置 • 求行列式 • 求逆 • 求特征值与特征向量 •等
式化简、求反函数、求复合函数,等。
第 5 章 符号计算
• 符号矩阵的生成
– 用 sym 定义 – 用 syms 定义
• 符号矩阵的计算 • 符号函数及其常见的运算
– 多项式函数 – 一般函数
3、符号函数及其常见的运算
– 多项式函数
• 生成 • 相关运算:四则运算、合并同类项、展开、因式分
解,等。
– 一般函数
• 定义 • 相关运算:找出符号变量、找出分子和分母、表达
大学数学实验 ( Matlab 版 )
第 5 章 符号计算
• 符号矩阵的生成
– 用 sym 定义 – 用 syms 定义
• 符号矩阵的计算 • 符号函数及其常见的运算
– 多项式函数 – 一般函数
1、符号矩阵的生成
– 用 sym
• 定义符号对象(标量) • 将数值矩阵转换为符号矩阵
– 用 syms 定义
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符号计算实验报告
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中的符号计算工具,通过创建符号变量和符号表达式来进行数学计算和推导。
这些符号计算工具能够处理代数运算、微积分、方程求解等复杂的数学问题。
在实验过程中,我们首先学习了如何创建符号变量。
通过使用
'sym'函数,我们可以将常规变量转换为符号变量,从而进行符号计算。
例如,我们可以定义一个符号变量x:x = sym('x')。
接下来,我们学习了如何使用符号变量进行代数运算。
通过将符号变量组合成符号表达式,我们可以进行加减乘除等代数运算。
例如,我们可以定义一个符号表达式y = x^2 + 2*x + 1,并对其进行简化或展开操作。
除了代数运算,我们还学习了如何进行微积分计算。
通过使用符号变量和符号表达式,我们可以对函数进行求导和积分操作。
例如,我们可以对一个符号表达式y = x^3求导,并得到其导数表达式。
在实验中,我们还学习了如何使用符号计算工具解方程。
通过使用'solve'函数,我们可以求解方程的根。
例如,我们可以解一个一元二次方程,找到其根的解析解。
通过这个实验,我深刻理解了符号计算在数学问题中的重要性。
它能够帮助我们更好地理解数学概念和定理,并能够进行复杂的数学推导和计算。
MATLAB中的符号计算工具提供了强大的功能和简便的操作,使得数学问题的解决变得更加高效和准确。
总的来说,这个实验让我对MATLAB中的符号计算有了更深入的
了解和掌握。
我相信在今后的学习和研究中,这些符号计算工具将对我有很大的帮助。
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. 引言在科学计算和工程应用中,符号计算是一项重要的任务。
符号计算可以帮助我们推导数学公式、解方程、进行代数化简等等。
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`函数将表达式化简为最简形式。
实验三MATLAB的符号运算
实验三 MATLAB 的符号运算一 实验目的:1.掌握符号对象的创建及符号表达式化简的基本方法;2.掌握符号微积分、符号方程的求解的基本方法。
二 实验装置:计算机三 实验内容:1.符号对象的创建(1) 建立符号变量使用sym 函数把字符表达式'2*sin(x)*cos(x)'转换为符号变量。
2.符号表达式的化简(1)因式分解对表达式f=x 3-1 进行因式分解。
(2) 符号表达式的展开对符号表达式f=cos(x+y)进行展开。
(3)符号表达式的同类项合并对于表达式f=(2x 2*(x+3)-10)*t ,分别将自变量x 和t 的同类项合并。
(4)符号表达式的化简(5)符号表达式的分式通分对表达式 进行通分。
(6)符号表达式的替换用新变量替换表达式a+b 中变量b 。
3.符号微积分(1) 符号极限计算表达式 的极限。
(2)符号微分计算表达式f=sinx 的微分。
(3)符号积分。
例:简化32381261+++=xx x f 22x y y x f +=xtgx x lim 0→()⎰+dzz x31计算表达式 的积分。
(4)符号求和计算表达式 4.符号方程的求解求解代数方程组 四 实验要求:1.按照要求预习实验;2.在MATLAB 中运行实验程序验证仿真结果;3. 按照要求完成实验报告。
.10005∑k⎪⎩⎪⎨⎧=--=-+=+-043035218472z y x z y x z y x。
四MATLAB符号运算
实验四 MATLAB符号运算一.实验目的掌握符号变量和符号表达式的创建,掌握matlab的symbol工具箱的一些基本应用。
二.实验内容(1)符号变量、表达式、方程及函数的表示。
(2)符号为积分运算。
(3)符号表达式的操作和转换。
(4)符号微分方程求解。
三.实验步骤1.符号运算的引入在数值运算中如果求lim(sin(pi*x)/x(x-0),则可以不断让x趋近0,一球的表达式趋近什么数,但是终究不能令x=0,在数值运算中0不能做除数。
Matlab的符号运算能解决这类问题。
输入如下命令:>> f=sym('sin(pi*x)/x')f =sin(pi*x)/x>> limit(f,'x',0)ans =pi2.符号常量、符号变量、符号表达式的创建1)使用sym()创建输入以下命令,观察workspace中a,b,f是什么类型的数据,占用多少字节的内存空间。
>> 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'),f2=sym(1+2),f3=sym('2*x+3'),f4=sym(2*x+3)f1 =1+2f2 =3f3 =2*x+3??? Undefined function or variable 'x'.>> x=2,f4=sym(2*x+3)x =2f4 =7Sym()的参数可以是字符串或数值类型,无论你是哪种类型都会生成符号类型数据。
2)使用syms创建>> clear>> syms x y z>> x,y,zx =xy =yz =z>> f1=x^2+2*x+1f1 =x^2+2*x+1>> f2=exp(y)+exp(z)^2f2 =exp(y)+exp(z)^2>> f3=f1+f2f3 =x^2+2*x+1+exp(y)+exp(z)^2用符号类型的变量经过运算(加减乘除)得到。
实验三 MATLAB符号计算
expr1 =
x^3+2*exp(-t)*x^2+(1+exp(-t)^2)*x+exp(-t) expr2 = x*exp(-t)^2+(2*x^2+1)*exp(-t)+(x^2+1)*x
expand使用指令 y=0.14-(1.2e+002)*(-2.4005*(0.445-x)^7+4.2505*(0.445x)^6-2.2336*(0.445-x)^5+0.4993*(0.445-x)^40.0514*(0.445-x)^3+0.0025*(0.445-x)^2);
符号矩阵的生成
符号矩阵可通过函数sym来生成。符号矩阵中的元素是任何不带等号的符 号表达式,各符号表达式的长度可以不相同;符号矩阵中,以空格或逗号 分隔的元素指定的是不同列的元素而分号分隔的元素指定的是不同行的元 素。 例:
syms x; A=sym(‘[cos(x),sin(x),x;-x+1 x^2+x+1 tan(x)]’) A= [ cos(x), sin(x), x] [ -x+1, x^2+x+1, tan(x)] >> size(A) %求符号矩阵的大小 ans = 2 3 > a=[1 2 3 4;4 5 6 7]; >> b=sym(a) b= [ 1, 2, 3, 4] [ 4, 5, 6, 7]
matlab符号运算实验报告
>> a2=sym(a1); b2=sym(b1);
>> c2=(a2+b2-a2)/b2;c2=1
c1=0
c2=1
变量类型不一样
3.设A是一个符号矩阵(定义如下),试指出findsym(A,1)的输出结果,并由此能得出什么结论?
>> symsa b t u v x y;
>> factor(‘12345678901234567890’)错误
ans =
(2)*(3)^2*(5)*(101)*(3803)*(3607)*(27961)*(3541)
syms x;f=-x+2*x^2+3*x^3+4*x^4;g=5*x^5-6*x^2+9;
A=simple(f*g)
B=simple(f/g)
>> A=[a+b*x,sin(t)+u; x*exp(-t),log(y)+v]
A =
[ a+b*x, sin(t)+u]
[ x*exp(-t), log(y)+v]
试指出下面两条命令的结果是否相同,如果不同,哪个是正确的?为什么?
>> factor(sym('12345678901234567890'))
C=simple(f\g)
int(f)
int(g,1,2)
diff(f,x,2)
D=f/g
limit(D,x,0)
用ezplot命令绘出 在[-4,4]之间的图像。
ezplot('x^2*sin(x)',[-4,4])
matlab符号计算实验总结
matlab符号计算实验总结
MATLAB 是一种广泛使用的数学软件,其中包括符号计算功能。
符号计算实验可以帮助用户了解如何使用 MATLAB 进行符号计算,以及如何解决实际问题。
以下是 MATLAB 符号计算实验的总结:
1. 熟悉 MATLAB 符号计算环境:MATLAB 符号计算环境包括Symbolic and Algebraic Calculator(SAC) 和 Symbolic Math Kernel(SMK)。
SAC 是一个交互式计算器,可用于符号计算和代数计算。
SMK 是一个内核,可嵌入到 MATLAB 主程序中,用于符号计算和数学推理。
2. 掌握 MATLAB 符号计算基本语法:MATLAB 符号计算的基本语法包括变量名、符号表达式、对数、指数、三角函数、反函数等。
此外,MATLAB 还支持特殊的符号运算符,如+、-、*、/和^。
3. 熟悉 MATLAB 符号计算工具箱:MATLAB 提供了许多符号计算工具箱,包括高级代数、符号微积分、符号微分方程、符号计算物理等。
使用这些工具箱可以更高效地进行符号计算。
4. 掌握 MATLAB 符号计算算法:MATLAB 符号计算算法包括对称群、对称矩阵、雅可比矩阵、特征值和特征向量等。
掌握这些算法可以更好地理解符号计算的原理和实现方法。
5. 实践 MATLAB 符号计算:通过实践 MATLAB 符号计算,可以更好地掌握其语法和算法。
可以尝试解决一些简单的符号计算问题,如求根、解方程、求导、积分等。
MATLAB 符号计算实验可以帮助用户了解符号计算的原理和实现
方法,提高其符号计算技能。
matlab符号计算实验总结
matlab符号计算实验总结
在本次实验中,我们学习了 Matlab 符号计算工具箱,并进行了一些基本的符号计算实验,总结如下:
1. Matlab 符号计算工具箱提供了方便的符号计算环境,可以进行代数运算、微积分、线性代数等操作,适合数学建模、符号计算、科学计算等领域。
2. 在 Matlab 符号计算工具箱中,可以使用符号变量来表示数学表达式,这些可以包含未知量、函数、常数以及一些特殊符号等。
3. 不同于数值计算,符号计算可以处理精确的数学表达式,因此可以应用于一些需要保证精度的计算,比如微分方程、符号积分、级数求和等问题。
4. 在 Matlab 中,我们可以使用符号表达式来进行计算。
需要注意的是,在使用符号计算工具进行复杂运算时,计算速度较慢,因此需要谨慎考虑计算的复杂度。
5. Matlab 符号计算工具箱提供了多种符号计算函数,如求导函数、积分函数、解代数方程函数、解微分方程函数等。
学习和掌握这些函数对于进行符号计算实验非常有帮助。
6. Matlab 符号计算工具箱的应用范围广泛,在数学、物理、化学、工程等领域都有应用。
学习和熟练掌握 Matlab 的符号计算工具箱对于各类科学计算工作都是很有帮助的。
总之,本次实验学习了 Matlab 符号计算工具箱,了解了符号计算基本原理和方法,并进行了一些简单的符号计算实验。
这对于进一步掌握 Matlab 符号计算工具箱有很大帮助,也有益于我们将来的科学计算工作。
matlab符号运算实验原理
matlab符号运算实验原理
MATLAB中的符号运算是一种使用符号变量和表达式的运算方式,与数值
运算不同。
其原理主要基于以下方面:
1. 符号表达式的创建:MATLAB中的符号运算使用符号常量、符号变量和
符号表达式。
这些都可以通过`sym`函数创建。
例如,`A=sym('1')`会创建
一个符号常量,`B=sym('x')`会创建一个符号变量,而`f=sym('2x^2+3y-
1')`则会创建一个符号表达式。
2. 符号运算的执行:符号运算主要包括基本的四则运算(加、减、乘、除)、复合运算、求导和积分等。
对于初等函数,这些运算可以直接使用基本的数学公式进行。
例如,求导和积分可以使用基本的初等函数导数公式和积分公式,以及四则运算法则和复合函数链式求导法则。
3. 结果的表示:符号运算的结果可以是数值或者符号。
对于数值结果,MATLAB会自动进行数值化表示。
对于符号结果,MATLAB会以符号形式
表示。
4. 特殊情况的处理:对于一些特殊情况,如求高次多项式的零点或者对一些特殊函数进行积分等,可能需要特殊的处理方法或者预存的求根或求积套路。
总的来说,MATLAB的符号运算实验原理主要基于符号表达式的创建、使
用基本的数学公式进行运算以及对特殊情况的处理。
这些原理使得
MATLAB能够方便地进行数学上的符号运算,为数学研究和工程计算提供了强大的工具。
matlab2022实验2参考答案
matlab2022实验2参考答案报告名称:MATLAB试验二符号计算姓名:学号:专业:班级:MATLAB实验二MATLAB符号计算试验报告说明:1做试验前请先预习,并独立完成试验和试验报告。
2报告解答方式:将MATLAB执行命令和最后运行结果从命令窗口拷贝到每题的题目下面,请将报告解答部分的底纹设置为灰色,以便于批阅。
3在页眉上写清报告名称,学生姓名,学号,专业以及班级。
3报告以Word文档书写。
一目的和要求1熟练掌握MATLAB符号表达式的创建2熟练掌握符号表达式的代数运算3掌握符号表达式的化简和替换4熟练掌握符号微积分5熟练掌握符号方程的求解二试验内容1多项式运算(必做)1.1解方程:f(某)=某^4-10某某^3+34某某^2-50某某+25=0%采用数值方法:>>f=[1-1034-5025];>>root(f)%采用符号计算方法:f1=ym('某^4-10某某^3+34某某^2-50某某+25')olve(f1)1.2求有理分式R=(3某^3+某)(某^3+2)/((某^2+2某-2)(5某^3+2某^2+1))的商多项式和余多项式.a1=[3010];a2=[1002];a=conv(a1,a2);b1=[12-2];b2=[5201];b=conv(b1,b2);[p,r]=deconv(a,b);%注意:ab秩序不可颠倒。
%reidue用于实现多项式的部分分式展开,此处用deconv函数报告名称:MATLAB试验二符号计算姓名:学号:专业:班级:%%此题,有同学程序如下:某1=[3010],某2=[1002],某3=[12-2],某4=[5201]某5=conv(某1,某2)[y6,r]=deconv(某5,某3)R=deconv(y6,某4)%%这种方法较第一种解法缺点:在除法运算中,会产生误差,故此题应先将分母的多项式相乘后,再与分子部分的多项式进行运算。
matlab符号运算
实验五符号工具箱一实验目的掌握符号运算基本用法,重点掌握使用符号解法求解带代数方程组,以及常微分方程解析解及数值解。
二实验原理与方法1.符号变量与符号表达式MATLAB符号运算工具箱处理的对象主要是符号变量与符号表达式。
要实现其符号运算,首先需要将处理对象定义为符号变量或符号表达式,其定义格式如下:格式1:sym (‘变量名’) 或sym (‘表达式’)功能:定义一个符号变量或符号表达式。
例如:sym (‘x’)% 定义变量x为符号变量sym(‘x+1’) % 定义表达式x+1为符号表达式格式2:syms 变量名1 变量名2 …… 变量名n功能:定义变量名1、变量2 ……、变量名n为符号变量。
例如:syms a b x t % 定义a,b, x,t 均为符号变量2.从一符号表达式中或矩阵中找出符号变量格式r = findsym(S) %以字母表的顺序返回表达式S中的所有符号变量(注:符号变量为由字母(除了i与j)与数字构成的、字母打头的字符串)。
若S中没有任何的符号变量,则findsym返回一空字符串。
r = findsym(S,n) %返回字母表中接近x的n个符号变量例syms a x y z t alpha beta>>S1 = findsym(sin(pi*t*alpha+beta))>>S2 = findsym(x+i*y-j*z+eps-nan)>>S3 = findsym(a+y,pi)计算结果为;S1 =pi, alpha, beta, tS2 = NaN, x, y, zS3 = a, y2 符号微积分运算(1)极限格式limit(F,x,a) %计算符号表达式F=F(x)的极限值,当x→a时。
limit(F,a) %用命令findsym(F)确定F中的自变量,设为变量x,再计算F的极限值,当x→a时。
limit(F) %用命令findsym(F)确定F中的自变量,设为变量x,再计算F的极限值,当x→0时。
Matlab实验二符号计算
实验二 符号计算一、实验目的1.理解符号计算的本质,掌握符号计算的常规步骤;2.学习认定符号表达式中独立变量;3.学习求极限,符号积分;4.掌握如何求微分方程解,代数方程的解。
二、实验任务1.定义2sin ()(1cos(2*))/2y x x =+-,要求编写程序化简该表达式,理解符号计算实质。
y =sin(x)^2+1/2-1/2*cos(2*x)>> f=simple(y)f =1-cos(2*x)2.练习课后习题2第1题,说出以下四条指令产生的结果各属于哪种数据类型,是“双精度”对象,还是“符号”对象?体验符号常量和符号数字区别。
3/7+0.1;sym(3/7+0.1);vpa(sym(3/7+0.1));vpa(sym(3/7+0.1),4)练习时,可使用class 、whos 、isa 函数检验。
下图为不同类型之间的转换。
以数值矩阵A=[1/3,2.5;1/0.7,2/5]为例,进行符号矩阵和数值矩阵之间转换。
3.编写程序,求解sin(x)/x 趋于0时的极限。
limit(f,x,0)数值型 符号结符号常数 符号量(表达式) 数值 字符串(表达式)ASCIIvpa vpadoubledouble sym char sym double charstr2num str2double int2str num2str mat2strans =14.编写程序求解下面的微分方程''''()5*()6*()(),(0)1,(0)2,()3*sin()2*y t y t y t f t y y f t t t -+==-==+。
2.4 dsolve('D2y-5*Dy+6*y=3*sin(t)+2*t','Dy(0)=-1','y(0)=2')5.已知方程组x+y+z=1,x-y+z=2,2x-y-z=1,编写程序求解符号方程组2.6。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)]