实验二2MATLAB地符号计算与可视化
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二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