MATLAB的符号解.ppt

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

3.1.1符号变量与符号表达式的生成3.1.2符号形式与数值形式的相互转换3.1.3符号表达式的初等运算3.1符号运算与符号表达式在MATLAB工具箱用来生成符号对象的函数有如下两种:sym来定义一个符号或符号表达式,syms可定义多个符号。符号运算是指运算的主要对象是符号、文字,或者是变量所进行的运算,自然是精确公式解中的运算。符号运算和符号表达式总称为符号对象。本节介绍MATLAB符号运算及相关的问题。要使符号变量有意义,必须首先生成符号变量,生成符号变量可用sym或syms。1.符号变量的生成3.1.1符号变量和符号表达式的生成用sym生成符号变量解输入:x=sym('x','real')%设定了变量x为实型变量a=sym('a')b=sym('b')r=sym('a+bsqrt(x)')运行后屏幕显示:x=a=b=xabr=a+bsqrt(x)形式一:x=sym(‘x’)%符号变量的值为单引号内的字符或字符串形式二:x=sym(‘x’,‘VariableFormat’)%同上,但设定变量x的类型[例1]试将中的系数,自变量和数学表达式分别生成符号变量,要求自变量为实型变量。xbayba,xxbax解输入:symsabxy=2*a-5*exp(sqrt(x-b))运行后屏幕显示:y=2*a-5*exp((x-b)^(1/2))syms可定义多个符号,用syms生成符号变量的常用形式请看下例。[例2]试将52ayebx中的系数ba,和自变量x生成符号变量。用syms生成符号变量当符号变量生成以后,就可以进一步生成含有这些变量符号的表达式,常用的形式有如下两种:方法一f=sym(‘数学表达式’)或f=‘数学表达式’方法二f=symsabcxf=含有a,b,c,x的数学表达式解方法一输入:f=sym(a*(2*x-t)^3+b*sin(4*y)),或f='a*(2*x-t)^3+b*sin(4*y)'[例3]试将)4sin()2(3ybtxaz生成为符号表达式。2.符号表达式的生成方法二输入:symsabcktyf=a*(2*x-t)^3+b*sin(4*y)运行后屏幕显示:f=a*(2*x-t)^3+b*sin(4*y)f=a*(2*x-t)^3+b*sin(4*y)运行后屏幕显示:f=a*(2*x-t)^3+b*sin(4*y)注意:如果要生成方程的符号表达式,则不能用方法二,只能用方法一解在MATLAB命令窗口输入命令:f=sym('8*x^9+17*x^3-3*x=-1'),x=solve(f)%solve是MATLAB软件解方程的函数方法一f='8*x^9+17*x^3-3*x=-1',x=solve(f)方法二x=solve('8*x^9+17*x^3-3*x=-1')方法三[例4]solve是MATLAB软件解方程的函数,调用格式为:x=solve(f)。试用函数solve解方程1317839xxx。则运行后输出相同的结果:x=[.96274843969420649872171548984002+.57475793354361098651731421962321*i][.26762926822201693804563287259316+.19580612317589362415618068133297*i]……………………………………………………………………………………………[.96274843969420649872171548984002-.57475793354361098651731421962321*i][例5]生成一个符号矩阵。则运行后输出结果:A=[a,b,c][d,e,f][g,h,i][j,k,l]解在MATLAB命令窗口输入命令:symsabcdefghijklA=[abc;def;ghi;jkl]将符号形式转换为数值形式常用的方法有两类,一类是将数的符号形式转换为数值形式;另一类是将多项式的符号形式转换为对应的系数的数值形式的向量。在用MATLAB软件处理数学问题时,经常需要符号形式与数值形式的相互转换。下面分别介绍它们的转换方法。1.将符号形式转换为数值形式将数的符号形式转换为数值形式主要用MATLAB函数eval和numeric来实现。将数的符号形式转换为数值形式3.1.2符号形式与数值形式的相互转换运行后屏幕显示的符号表达式为a=(1+sqrt(5))/2解首先输入:a='(1+sqrt(5))/2'[例6]首先将生成为符号表达式,然后再转换为数值形式。251a再输入:eval(a)或输入:numeric(a)运行后屏幕显示的相同数值形式为ans=1.6180251a251a将多项式的符号形式转换为对应的系数的数值形式的向量解输入:symsxy,y=5*x^2-6;yc=sym2poly(y)运行后屏幕显示的系数的数值形式的向量为yc=50-6将多项式的符号形式转换为对应的系数的数值形式的向量主要用MATLAB函数sym2poly来实现。[例7]将转换为对应的系数的数值形式的向量。652xy将数的数值形式转换为符号形式将数值形式转换为符号形式常用的方法有两类,一类是将数的数值形式转换为符号形式;另一类是将多项式的系数的数值形式的向量转换为对应的符号形式。解输入:pi=3.141593;pj=sym(pj)2.符号形式与数值形式相互转换将数的数值形式转换为符号形式主要用MATLAB函数sym来实现。[例8]将π的近似值pi=3.141593转化为符号形式。运行后屏幕显示:pi=7074238532074879*2^(-51)将多项式的符号形式转换为对应的系数的数值形式的向量主要用MATLAB函数poly2sym来实现。解输入:yc=[50-6];y=poly2sym(yc)运行后屏幕显示为y=5*x^2-6将多项式的系数的数值形式的向量转换为对应的符号形式[例9]将的系数的向量yc=[50-6]转换为对应的符号形式。652xy符号表达式的初等运算是指符号表达式的变换和化简、符号的代换、复合函数的运算和反函数的运算,包括加、减、乘、除、乘方和开方运算。有关加、减、乘、除运算、乘方和开方运算在第一章实验的内容中我们已经作了介绍。下面主要介绍符号表达式的变换和化简、符号的代换、复合函数和反函数的运算。在MATLAB中,这些运算的常用函数如下:expand(表达式)将表达式中的括号进行展开,即将乘积展开为和式factor(表达式)将表达式进行分解,即把多项式转换为乘积形式horner(表达式)将一般的表达式变为嵌套的形式collect(表达式)合并同类项3.1.3符号表达式的初等运算1.变换和化简simplify(表达式)利用各种恒等式关系、函数关系将表达式进行化简simple(表达式)(1)f=simple(S)对表达式S进行化简,输出长度最短的表达式f;(2)simple(S)对表达式S进行化简,输出用各种函数化简的结果及长度最短的表达式;(3)[f,how]=simple(S)对表达式S进行化简,输出长度最短的表达式f及f是哪一个函数作用的结果how。findsym(表达式)确认符号表达式中的符号代换subs(f,old,new)用符号new代替表达式f中的符号oldsubexpr(f)将表达式f中的公共部分用sigma表示复合函数运算y=compose(f,g)输出y=f(u)和u=g(x)的复合函数y=f(g(x))y=compose(f,g,t)输出y=f(u)和u=g(t)的复合函数y=f(g(t))2.代换和复合函数运算[例10]设函数和,试求关于的复合函数。652xyyz3解输入:symsxy,z=sqrt(3*y);y=5*x^2-6;z=compose(z,y)运行后屏幕显示为z=3^(1/2)*(5*x^2-6)^(1/2)3.反函数运算反函数g=finverse(f)输入函数y=f(x),其中y=f(x)和y=g(x)互为反函数,输出的y=g(x)是y=f(x)的反函数g=finverse(f,t)输入函数y=f(t),其中y=f(t)和y=g(t)互为反函数,输出的y=g(t)是y=f(t)的反函数解输入:symsxty1y2y1=exp(-x);g1=finverse(y1)y2=sin(t);g2=finverse(y2,t)运行后屏幕显示g1=g2=-log(x)asin(t)[例11]分别求函数e和的反函数。1ytysin2x

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功