资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
实验四 MATLAB符号运算一、实验目的 掌握符号变量和符号表达式的创建, 掌握MATLAB的symbol工具箱的一些基本应用。 二、实验内容 (1) 符号变量、表达式、方程及函数的表示。 (2) 符号微积分运算。 (3) 符号微分方程求解。三、实验步骤 1. 符号运算的引入 在数值运算中如果求则可以不断地让 x 趋近0, 以求得表达式趋近什么数,但是终究不能令 x0,因为在数值运算中 0 是不能作除数的。MATLAB 的符号运算能解决这类问题。输入如下命令: f=sym(sin(pi*x)/x ) limit(f,x,0) 2. 符号常量、符号变量、符号表达式的创建 (1) 使用 sym( )创建 输入以下命令,观察 Workspace 中 A、B、f是什么类型的数据,占用多少字节的内存空间。 A=sym(1) %符号常量 B=sym(x) %符号变量 f=sym(2*x2+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,zf1=x2+2*x+1 f2=exp(y)+exp(z)2 f3=f1+f2 通过以上实验,知道生成符号表达式的第二种方法:由符号类型的变量经过运算(加减乘除等)得到。又如: f1=sym(x2+y +sin(2) syms x y f2=x2+y+sin(2) x=sym(2) , y=sym(1) f3=x2+y+sin(2) y=sym(w) f4=x2+y+sin(2) 3. 符号矩阵创建 syms a1 a2 a3 a4 A=a1 a2;a3 a4 A(1),A(3) 或者 B=sym( b1 b2 ;b3 b4 ) c1=sym(sin(x) ) c2=sym(x2) c3=sym(3*y+z) c4=sym(3 ) C=c1 c2; c3 c4 4. 符号算术运算 (1) 符号量相乘、相除 符号量相乘运算和数值量相乘一样,分成矩阵乘和数组乘。 a=sym(5);b=sym(7); c1=a*b c2=a/b a=sym(5);B=sym(3 4 5); C1=a*B, C2=aB syms a b A=5 a;b 3; B=2*a b;2*b a; C1=A*B, C2=A.*B C3=AB, C4=A./B (2) 符号数值任意精度控制和运算 任意精度的 VPA 运算可以使用命令 digits(设定默认的精度)和 vpa(对指定对象以新的精度进行计算)来实现。a=sym(2*sqrt(5)+pi) b=sym(2*sqrt(5)+pi) digits vpa(a) digits(15) vpa(a) c1=vpa(a,56) c2=vpa(b,56) 注意:观察 c1 和 c2 的数据类型,c1 和 c2 是否相等。5. 符号表达式的操作和转换 符号表达式化简主要包括表达式美化(pretty)、合并同类项(collect)、多项式展开(expand)、因式分解(factor)、化简(simple 或 simplify)等函数。 合并同类项(collect)。分别按x的同幂项和e指数同幂项合并表达式:syms x t; f=(x2+x*exp(-t)+1)*(x+exp(-t); f1=collect(f) f2=collect(f,exp(-t) 对显示格式加以美化(pretty)。针对上例,用格式美化函数可以使显示出的格式更符合数学书写习惯。pretty(f1) pretty(f2) 注意:与直接输出的 f1 和 f2 对比。 多项式展开(expand)。展开 (x-1)12 成 x 不同幂次的多项式。 clear all syms x; f=(x-1)12; pretty(expand(f) 因式分解(factor)。将表达式 x121作因式分解。 clear all syms x; f=x12-1; pretty(factor(f) 化简(simple 或 simplify)。 将函数 化简。clear all, syms x; f=(1/x3+6/x2+12/x+8)(1/3); g1=simple(f) g2=simplify(f) 6. 符号极限、符号积分与微分 (1) 求极限函数的调用格式 limit(F,x,a) %返回符号对象F当xa时的极限 limit(F,a) %返回符号对象F当独立变量*a时的极限 limit(F) %返回符号对象F当独立变量0(a=0)时的极限 limit(F,x,a,right) %返回符号对象F当xa时的右极限 limit(F,x,a,left) %返回符号对象F当xa时的左极限 (2) 求积分函数的调用格式 int(F) %求符号对象F关于默认变量的不定积分 int(F,v) %求符号对象F关于指定变量v的不定积分 int(F,a,b) %求符号对象F关于默认变量的从a到b的定积分 int(F,v,a,b) %求符号对象F关于指定变量v的从a到b的定积分 (3) 求微分函数的调用格式 diff(F) %求符号对象F关于默认变量的微分 diff(F,v) %求符号对象F关于指定变量v的微分 diff(F,n) %求符号对象F关于默认变量的n次微分,n为自然数1、2、3 diff(F, v,n) %求符号对象F关于指定变量v的n次微分 7. 符号方程的求解 (1) 常规方程求解函数的调用格式 g = solve(eq) %求方程(或表达式或字串)eq关于默认变量的解 g = solve(eq,var) %求方程(或表达式或字串)eq关于指定变量var的解 g = solve(eq1,eq2,.,eqn,var1,var2,.,varn) %求方程(或表达式或字串)组eq1,eq2,.,eqn关于指定变量组var1,var2,.,varn的解 (2) 常微分方程求解 求解常微分方程的函数是 dsolve。应用此函数可以求得常微分方程(组)的通解,以及给定边界条件(或初始条件)后的特解。 常微分方程求解函数的调用格式: r = dsolve(eq1,eq2,.,cond1,cond2,., v) r = dsolve(eq1,eq2,.,cond1,cond2,.,v)说明: 以上两式均可给出方程 eq1、eq2 .对应初始条件 cond1、cond2 .之下的以 v作为解变量的各微分方程的解。 常微分方程解的默认变量为 t。 第二式中最多可接受的输入式是 12 个。 微分方程的表达方法。在用MATLAB求解常微分方程时, 用大写字母Dy表示微分符号,用D2y表示,依次类推。 边界条件以类似于 y(a) = b 或 Dy(a) = b 的等式给出。其中 y为因变量,a、b 为常数。如果初始条件给得不够,求出的解则为含有 C1、C2 等待定常数的通解。例如:求微分方程为y=2x 的通解。四、实验要求1、求2、求函数的积分;求函数的导数。3、计算定积分。4、求下列线性方程组的解5、求解当y(0)=2,z(0)=7时,微分方程组的解表明解是一个结构数组,其中每个元素为一符号类型的量五、实验报告1、写出前面练习语句的注释;2、写出实验计算的程序与结果;3、写出实验体会。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号