版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MATLAB 7.0MATLAB 7.0从入从入门到精通门到精通哈尔滨工业大学哈尔滨工业大学( (威海威海) )汽车工程学院汽车工程学院2021-12-152课程主要内容课程主要内容 第1章 MATLAB简介 第2章 数值运算 第3章 单元数组和结构 第4章 字符串 第5章 符号运算 第6章 MATLAB绘图基础 第7章 程序设计 第8章 计算方法的MATLAB实现 第9章 优化设计 第10章 SIMULINK仿真初探2021-12-153第第5章章 符号运算符号运算 数学问题的求解通常有两条途径可循,一是求它的解析解,二是求它的数值解。求解析解的主要工具是符号运算。所谓符号运算是指运算的主要
2、对象是符号、文字,或说是变量。2021-12-1545.1 符号表达式的生成 符号表达式是代表数字、函数、算子和变量的MATLAB字符串,或字符串数组。不要求变量有预先确定的值,符号方程式是含有等号的符号表达式。符号算数是使用已知的规则和给定符号恒等式求解这些符号方程的实践,它与代数和微积分所学到的求解方法完全一样。符号矩阵式数组,其元素是符号表达式。 符号表达式的生成可采用sym和syms函数生成。2021-12-1555.1.1 符号常量 符号常量是一种符号对象。可用sym函数生成,可用class函数来检测其数据类型。2021-12-156程序实例 a=sqrt(2) a = 1.4142
3、 b=sym(sqrt(2) b = sqrt(2) c=sqrt(sym(2) c = 2(1/2)2021-12-157程序实例 a=sqrt(2) a = 1.4142 b=sym(sqrt(2) b = sqrt(2) class(a) ans = double class(b) ans = sym2021-12-1585.1.2 符号变量及符号表达式 使用sym函数也可定义符号表达式,一是将每一个变量定义为符号变量,二是将整个表达式集体定义。也可以直接用单引号生成。 函数syms功能比sym更为强大,它可以一次创建任意多个符号变量。使用格式如下: syms var1 var2.202
4、1-12-159程序实例 a=sym(a); b=sym(b); c=sym(c); x=sym(x); f=a*x2+b*x+c f = a*x2 + b*x + c2021-12-1510程序实例 f=sym(a*x2+b*x+c) f = a*x2+b*x+c g=sym(a*sin(b*x+c) g = a*sin(b*x+c)2021-12-1511程序实例 syms a b c x f=a*x2+b*x+c f = a*x2 + b*x + c g=a*sin(b*x+c) g = a*sin(c + b*x)2021-12-15125.1.3 符号矩阵 元素是符号对象的矩阵叫做符
5、号矩阵。在MATLAB7.0语言中,符号矩阵的生成与数值矩阵的相关操作很相似。 使用sym函数直接生成符号矩阵,各符号表达式长度相同。2021-12-1513程序实例 m1=sym(asd we;re as) m1 = asd, we re, as m2=sym(5 6;1 2) m2 = 5, 6 1, 22021-12-15145.2 符号变量的基本操作 符号变量的基本操作主要包括符号变量的查找、符号变量的精度设置、数值型变量与符号型变量的转换。2021-12-15155.2.1 符号变量查询 函数findsym用于找出一个表达式中存在哪些符号变量。 findsym(s)列出全部符号变量,
6、findsym(s,n)列出靠x最近的n个符号变量。2021-12-1516程序实例 f=sym(a*x2+b*x+c); m1=findsym(f) m1 = a,b,c,x m2=findsym(f,2) m2 = x,c m3=findsym(f,3) m3 = x,c,b2021-12-15175.2.2 符号变量精度设置 单独使用digits或d=digits在命令窗口显示当前设定的数值精度。 digits(d)命令设置数值的精度为d位。 r=vpa(s)命令将显示符号表达式s在当前精度下的值。 r=vpa(s,d)命令将显示符号表达式s在精度d下的值。显示的数字个数为d。2021-
7、12-1518程序实例 digits Digits = 32 digits(100) digits Digits = 100 digits(32) digits Digits = 322021-12-1519程序实例 r1=vpa(pi) r1 = 3.1415926535897932384626433832795 r2=vpa(pi,4) r2 = 3.142 r2=vpa(pi,5) r2 = 3.14162021-12-15205.2.3 数值型变量与符号型变量的转换 将数值形式转换为符号形式:将数值形式转换为符号形式: 对于任意数值型变量t,使用sym函数可以将其转换为4种形式的符号变
8、量,分别为:有理数形式sym(t)或sym(t,r)、浮点数形式sym(t,f)、指数形式 sym(t,e)和数值精度形式 sym(t,d)。 也可以采用这种方法将数值型矩阵转换为符号型矩阵,但此时只能把它转换成有理数形式。 另外,函数poly2sym实现将某一向量转化为它对应的多项式。2021-12-1521程序实例 t=0.1; sym(t,r) ans = 1/10 sym(t,f) ans = 1.999999999999a*2(-4) sym(t,e) ans = 1/10+eps/40 sym(t,d) ans = .10000000000000000555111512312578
9、2021-12-1522程序实例 a=1 2 3 4 5; f=poly2sym(a) f = x4+2*x3+3*x2+4*x+52021-12-1523 将符号形式转换为数值形式:将符号形式转换为数值形式: 将符号形式转化为数值形式主要用函数eval来实现。另外,使用sym2poly函数实现将多项式转化为它对应的系数向量。2021-12-1524程序实例 a=sym(sqrt(5) a = sqrt(5) b=eval(a) b = 2.23612021-12-1525程序实例 syms x f=x3-4*x+5; c=sym2poly(f) c = 1 0 -4 52021-12-152
10、65.3 符号表达式的操作 用户可以对符号表达式进行各种操作,包括四则运算、合并同类项、多项式分解和简化等。2021-12-15275.3.1 符号表达式的四则运算 符号表达式也与通常的算术式一样,可以进行四则运算。 在符号对象的比较中只有相等与否,没有大小关系比较; 三角函数的符号运算与数值运算法则基本相同; 符号运算的指数函数运算与前面数值运算法则相同,对数运算对于符号运算来说只能使用log函数,因此log2(sym(a)=log(a)/log(2)。 符号运算的复数运算与数值复数运算相同。2021-12-1528程序实例 syms x y a b f1=sin(x)+cos(y); f2
11、=a+b; f=f1*f2 f = (a + b)*(cos(y) + sin(x)2021-12-15295.3.2 符号表达式合并同类项 collect(s,v)命令将符号矩阵s中所有同类项合并,并以v为符号变量输出。 collect(s)命令使用findsym函数规定的默认变量代替上式中的v。2021-12-1530程序实例 syms x y collect(x2*y+y*x-x2-2*x,x) ans = (y-1)*x2+(y-2)*x collect(x2*y+y*x-x2-2*x,y) ans = (x2+x)*y-x2-2*x collect(x2*y+y*x-x2-2*x)
12、ans = (y-1)*x2+(y-2)*x2021-12-15315.3.3 符号多项式的因式分解 使用expand函数将表达式中的括号进行展开;使用factor函数将表达式进行因式分解;使用horner函数将一般的表达式变换为嵌套的形式,默认x为第一变量。2021-12-1532程序实例 syms x y f=(x-1)*(x-2)*(x-3)*(y-4); g=expand(f) g = x3*y-4*x3-6*x2*y+24*x2+11*x*y-44*x-6*y+242021-12-1533程序实例 syms x y g =x3*y-4*x3-6*x2*y+24*x2+11*x*y-4
13、4*x-6*y+24; f=factor(g) f = (x-1)*(x-2)*(x-3)*(y-4)2021-12-1534程序实例 syms x y g =x3*y-4*x3-6*x2*y+24*x2+11*x*y-44*x-6*y+24; f=horner(g) f = -6*y+24+(11*y-44+(-6*y+24+(y-4)*x)*x)*x2021-12-1535程序实例 syms x y f=x2-2*x+y2-3*y*x; horner(f) ans = y2+(-2-3*y+x)*x2021-12-15365.3.4 符号表达式的简化 使用simplify函数和simple
14、函数进行符号表达式的简化。 simplify(s)命令将符号表达式s中的每一个元素都进行简化,该函数的缺点是即使多次运用此函数也不一定得到最简形式。 simple(s)命令使用多种代数简化方法对符号表达式s进行简化,并显示其中最简单的结果。 r,how=simple命令在返回最简单的结果的同时,返回一个描述得到该最简结果所用简化方法的字符串how。2021-12-1537程序实例 syms x f=(x-2).2+3*(x-3); simplify(f) ans = x2-x-52021-12-1538程序实例 syms x f=(x-2).2+3*(x-3); r,how=simple(f)
15、 r = x2-x-5 how = simplify2021-12-1539程序实例 syms x f=(x-3).3-3*x+(x-1)/(x+2).2-2*x.2; simplify(f) ans = (x5-7*x4-16*x3+25*x2-109-11*x)/(x+2)22021-12-1540程序实例 syms x f=(x-3).3-3*x+(x-1)/(x+2).2-2*x.2; simple(f) simplify: (x5-7*x4-16*x3+25*x2-109-11*x)/(x+2)2 radsimp: (x5-7*x4-16*x3+25*x2-109-11*x)/(x+
16、2)2 combine(trig): (x5-7*x4-16*x3+25*x2-109-11*x)/(x2+4*x+4)2021-12-1541 factor: (x5-7*x4-16*x3+25*x2-109-11*x)/(x+2)2 expand: x3-11*x2+24*x-27+1/(x+2)2*x-1/(x+2)2 combine: (x-3)3-3*x+(x-1)/(x+2)2-2*x2 convert(exp): (x-3)3-3*x+(x-1)/(x+2)2-2*x2 convert(sincos): (x-3)3-3*x+(x-1)/(x+2)2-2*x2 convert(t
17、an): (x-3)3-3*x+(x-1)/(x+2)2-2*x22021-12-1542 collect(x): (x-3)3-3*x+(x-1)/(x+2)2-2*x2 mwcos2sin: (x-3)3-3*x+(x-1)/(x+2)2-2*x2 ans = (x-3)3-3*x+(x-1)/(x+2)2-2*x2 syms x f=(x-3).3-3*x+(x-1)/(x+2).2-2*x.2; r,how=simple(f) r = (x-3)3-3*x+(x-1)/(x+2)2-2*x2 how = 2021-12-15435.3.5 书写形式的转化 pretty函数的使用 pre
18、tty(s)将符号表达式用书写方式表示出来,默认宽度为79。 pretty(s,n)将符号表达式用书写方式表示出来,宽度指定为n。2021-12-1544程序实例 p=sym(x2-1)/(x+2)+(2*x+5)/(3*x-2) p = (x2-1)/(x+2)+(2*x+5)/(3*x-2) pretty(p) 2 x - 1 2 x + 5 - + - x + 2 3 x - 22021-12-15455.3.6 subs函数用于替换求值 subs(s)命令将符号表达式s中的所有符号变量用调用函数中的值或matlab工作区间的值替代。 subs(s,new)命令将符号表达式s中的自由符号
19、变量用数值型变量或表达式new替换。 subs(s,old,new)命令将符号表达式s中的符号变量old用数值型变量或表达式new替换。 如没指定被替换的变量,则默认选择与x最接近的字母。2021-12-1546程序实例 syms x y f=x2*y+5*x*sqrt(y); subs(f) ans = x2*y+5*x*y(1/2) subs(f,2) ans = 4*y+10*y(1/2) subs(f,y,2) ans = 2*x2+5*x*2(1/2) subs(f,x,y,2,3)或subs(f,x,y,2,3) ans = 29.32052021-12-1547程序实例 syms
20、 a x y f=x2*y+5*x*sqrt(y); subs(f,a) ans = a2*y+5*a*y(1/2) subs(f,y,a) ans = a*x2+5*x*a(1/2)2021-12-15485.3.7 反函数的运算 g=finverse(f)命令用于求函数f的反函数。 g=finverse(f,v)指定对变量v求反函数。2021-12-1549程序实例 syms x y f=x2+y; finverse(f,x) Warning: finverse(x2+y) is not unique. In sym.finverse at 43 ans = (-y+x)(1/2) fin
21、verse(f,y) ans = -x2+y2021-12-15505.3.8 复合函数的运算 compose(f,g)返回f=f(x)和g=g(y)时的复合函数f(g(y),就是原来的默认变量用函数g完整替代。 compose(f,g,z)返回f=f(x)和g=g(y)时的复合函数f(g(z),z为指定变量,代替复合函数中默认变量,即先用z替代默认变量再复合。 compose(f,g,x,z)返回复合函数f(g(z)。即指定变量x用g(z)替代,如果g(z)中有z,则g(z)函数保持原形不变,如没有,则默认变量用z替代。 compose(f,g,x,y,z)返回复合函数f(g(y)。首先g(
22、y)中的指定变量y用z代替,原有的z不变,然后f(x)中的指定变量x用g(z)代替。2021-12-1551程序实例 syms x y z t u f=1/(1+x2); g=sin(y); h=xt; p=exp(-y/u); compose(f,g) ans = 1/(1+sin(y)2) compose(f,g,t) ans = 1/(1+sin(t)2)2021-12-1552程序实例 compose(h,g,x,z) ans = sin(z)t compose(h,g,t,z) ans = xsin(z) compose(h,p,x,y,z) ans = exp(-z/u)t com
23、pose(h,p,t,u,z) ans = xexp(-y/z)2021-12-1553程序实例 syms x y z t u f=1/(1+x2)+y-z*t+sin(u); g=x+z*sin(y)-t*u; h=xt-y*z+zu; p=x*z+exp(-y/u)-log(t); compose(f,g) ans = 1/(1+(x+z*sin(y)-t*u)2)+y-z*t+sin(u) compose(f,g,t) ans = 1/(1+(t+z*sin(y)-t*u)2)+y-z*t+sin(u)2021-12-1554程序实例 syms x y z t u f=1/(1+x2)+
24、y-z*t+sin(u); g=x+z*sin(y)-t*u; h=xt-y*z+zu; p=x*z+exp(-y/u)-log(t); compose(h,g,x,z) ans = (x+z*sin(y)-t*u)t-y*z+zu compose(h,g,t,z) ans = x(x+z*sin(y)-t*u)-y*z+zu 2021-12-1555程序实例 syms x y z t u f=1/(1+x2)+y-z*t+sin(u); g=x+z*sin(y)-t*u; h=xt-y*z+zu; p=x*z+exp(-y/u)-log(t); compose(h,p,x,y,z) ans
25、= (x*z+exp(-z/u)-log(t)t-y*z+zu compose(h,p,t,u,z) ans = x(x*z+exp(-y/z)-log(t)-y*z+zu2021-12-15565.3.9 提取分子、分母 如果符号表达式是有理式形式或可展开为有理分式的形式,则可通过函数numden来提取符号表达式中的分子与分母。numden函数可将符号表达式合并、有理化,并返回所得的分子与分母。其调格式如下: n,d=numden(a)提取符号表达式a的分子与分母,并分别把其存放在n与d中; n=numden(a)提取符号表达式a的分子与分母,但只把分子存放在n中。2021-12-1557程
26、序实例 f=sym(a*x2/(b-x); n,d=numden(f) n = -a*x2 d = -b+x k=numden(f) k = -a*x22021-12-15585.4 符号微积分 微积分是高等数学中最重要的基础内容之一,它被广泛地应用于许多的工程学科中。MATLAB的符号数学工具箱为我们提供了快速、简便地计算微积分的工具。MATLAB符号数学工具箱中的符号微积分包括符号极限、符号微分、符号积分等。2021-12-15595.4.1 符号极限 极限是高等数学的出发点,同时它也是微积分学的基础。在MATLAB中,符号极限由函数“limit”来实现的。Limit函数的调用格式如下:
27、limit(f,x,a)计算符号表达式当xa时f=f(x)的极限值。 limit(f,a)命令使用命令findsym(f)确定f中的自变量当其a时f的极限。 limit(f)命令使用命令findsym(f)确定f中的自变量当其0时f的极限。 limit(f,x,a,right(left)求xa的左、右极限。 limit(f,x,inf)计算符号表达式当x正负无穷时f=f(x)的极限值。2021-12-1560程序实例 syms x y t f=sin(x*y)+cos(y*t); a=limit(f) a = cos(t*y) b=limit(f,t) b = cos(t*y) + sin(t
28、*y)2021-12-1561程序实例 syms x y t f=sin(x*y)+cos(y*t); c=limit(f,t,0) c = sin(x*y) + 1 d=limit(f,t,pi) d = cos(pi*y) + sin(x*y)2021-12-1562程序实例 syms x y t f=sin(x*y)+cos(y*t); a=limit(f,y,3,left) a = cos(3*t) + sin(3*x) b=limit(f,x,2,right) b = sin(2*y) + cos(t*y)2021-12-1563程序实例 syms x n f1=limit(1+x/
29、n)n,n,inf) f1 = exp(x) f2=limit(1-x/n)n,n,inf) f2 = 1/exp(x)2021-12-15645.4.2 符号微分和求导 微分是高等数学中最基础的内容之一。在MATLAB中,符号微分由函数“diff”来实现的。diff函数可同时计算数值微分与符号微分。diff函数的调用格式如下: diff(f)对f中默认的符号变量求导。 diff(f,n)对f中默认的符号变量求n阶导。 diff(f,x)对f中指定的自变量x求导。 diff(f,x,n)对f中指定的自变量x求n阶导。 说明:n是正整数时,对指定的变量求n阶导,当n是小数时,按四舍五入原则先取整
30、,然后求导,当n是负数时,默认求指定变量的一阶导数。n还可以是字符串,相当于对新指定的符号变量求导,结果为0。小于1的数将对函数求一阶导。2021-12-1565程序实例 syms x y t f=sin(x*y)+cos(y*t); a=diff(f) a = y*cos(x*y) b=diff(f,3) b = -y3*cos(x*y)2021-12-1566程序实例 syms x y t f=sin(x*y)+cos(y*t); c=diff(f,t) c = -y*sin(t*y) d=diff(f,t,3) d = y3*sin(t*y)2021-12-1567程序实例 syms x
31、 y t f=sin(x*y)+cos(y*t); a=diff(f,7.5) a = y8*sin(x*y) b=diff(f,pi) b = -y3*cos(x*y)2021-12-1568程序实例 syms x y t f=sin(x*y)+cos(y*t); a=diff(f,-3) a = y*cos(x*y) b=diff(f,-5.2) b = y*cos(x*y)2021-12-1569程序实例 syms x y t f=sin(x*y)+cos(y*t); diff(f,a) ? Illegal right hand side in assignment. Too many
32、elements. Error in = sym.diff at 30 x = a.s; diff(f,a) ans = 02021-12-1570程序实例 syms x y a=x2+x*y;sin(x)*cos(y); diff(a) ans = 2*x+y cos(x)*cos(y) diff(a,y) ans = x -sin(x)*sin(y)2021-12-1571 jacobian(f,v)命令用于计算数量或向量f对于向量v的jacobi矩阵,所得结果的第i行第j列的数是df(i)/df(j)。f是数量时返回f的梯度。2021-12-1572程序实例 syms x y z a=x
33、2+x*y;sin(x)*cos(y); jacobian(a,x,y) ans = 2*x+y, x cos(x)*cos(y), -sin(x)*sin(y)2021-12-1573程序实例 syms x y z a=x2+x*y,sin(x)*cos(y); jacobian(a,x,y,z) ans = 2*x+y, x, 0 cos(x)*cos(y), -sin(x)*sin(y), 02021-12-1574程序实例 syms x y z a=x2+x*y,sin(x)*cos(y);x+sin(y),sin(x*y)-cos(x); jacobian(a,x,y) ans =
34、2*x+y, x 1, cos(y) cos(x)*cos(y), -sin(x)*sin(y) cos(x*y)*y+sin(x), cos(x*y)*x2021-12-1575程序实例 syms x y z a=x2+x*y,sin(x)*cos(y);x+sin(y),sin(x*y)-cos(x); jacobian(a,x,y,z) ans = 2*x+y, x, 0 1, cos(y), 0 cos(x)*cos(y), -sin(x)*sin(y), 0 cos(x*y)*y+sin(x), cos(x*y)*x, 02021-12-15765.4.3 符号积分 由高等数学可知,
35、积分比微分复杂得多。很多情况下,积分不一定能成功。当在MATLAB中进行符号积分,找不到原函数时,它将返回未经计算的命令。符号积分由函数int来实现。int函数的调用格式如下所示: int(f)命令对f求不定积分,常数项默认为0。 int(f,v)命令对f中的变量v求不定积分。 int(f,a,b)命令对f进行a,b上求定积分。 int(f,v,a,b)命令对f中的变量v进行a,b上求定积分。 MATLAB还提供了一个交互性的近似积分命令rsums,该命令可以计算一元函数在某有限的闭区间上的积分数值。调用格式为rsums(f,a,b)其中f为积分表达式,a,b为积分上下限。2021-12-15
36、77程序实例 syms x y t f=x2+y2+t2; a=int(f) a = x3/3 + (t2 + y2)*x b=int(f,y) b = y3/3 + (t2 + x2)*y2021-12-1578程序实例 syms x y t f=x2+y2+t2; c=int(f,1,2) c = t2 + y2 + 7/3 d=int(f,y,1,2) d = t2 + x2 + 7/32021-12-1579程序实例 syms x y t a b f=x2+y2+t2; m1=int(f,a,b) m1 = -(a - b)*(a2 + a*b + b2 + 3*t2 + 3*y2)/
37、3 m2=int(f,t,a,b) m2 = -(a - b)*(a2 + a*b + b2 + 3*x2 + 3*y2)/32021-12-1580程序实例 syms x f=(x-1)3+x2+4*x; rsums(f,-1,2)2021-12-15812021-12-15822021-12-15835.4.4 符号级数求和 在数学分析中,级数求和是一个重要内容,MATLAB中使用symsum函数求解符号表达式的和。调用格式如下: R= symsum(s,a,b)将符号表达式s中默认变量从a到b时的有限和。 R= symsum(s,v,a,b)将符号表达式s中指定变量从a到b时的有限和。2
38、021-12-1584程序实例 验证下列结果xkkkekxk0212!612021-12-1585程序实例 syms x k a=symsum(1/k2,1,inf) a = pi2/6 b=symsum(xk/sym(k!),k,0,inf) b = exp(x)2021-12-15865.5 符号代数方程的求解 在MATLAB符号数学工具箱中,符号方程式是含有等号的符号表达式。符号方程的求解包括符号线性方程的求解、非线性方程的求解和符号微分方程的求解等。2021-12-15875.5.1 符号非线性方程组的求解 符号代数非线性方程的求解可以通过函数fsolve来实现。fsolve函数以最小
39、二乘法求解非线性方程,其调用格式如下: x=fsolve(fun,x0)命令以x0为初始矩阵来求解方程fun。 x,fval=fsolve(fun,x0)命令以x0为初始矩阵来求解方程fun,同时输出方程根对应的函数值。其中fun可以是函数名也可以是符号表达式。2021-12-1588程序实例 x1=fsolve(x(1).2-2*x(2),1 2) x1 = 1.6462 1.3551 x2=fsolve(x(1).2-sin(x(2),1 2) x2 = 0.9556 1.99082021-12-1589程序实例 使用fsolve函数求解下面非线性方程组。01303212212221xxx
40、xx2021-12-1590程序实例 首先编写方程组的M文件。 function y=myfun2(x) y(1)=3*x(1)2-x(2)2; y(2)=3*x(1)*x(2)2-x(1)2-1;2021-12-1591程序实例 在命令窗口输入 x0=0.8 0.4; x=fsolve(myfun2,x0) Optimization terminated: first-order optimality is less than options.TolFun. x = 0.5208 0.90202021-12-1592程序实例 x0=0.8 0.4; x,fval=fsolve(myfun2,
41、x0) Optimization terminated: first-order optimality is less than options.TolFun. x = 0.5208 0.9020 fval = 1.0e-006 * -0.0209 0.19282021-12-15935.5.2 一般符号代数方程求解 在MATLAB7.0语言中,使用solve函数求解一般的符号代数方程组。其使用格式为: solve(eq1,eq2,eqn)求解由符号表达式或不带等号的字符串eq1,eq2,eqn组成的方程组。自变量为默认自变量。 solve(eq1,eq2,eqn,var1,var2,varn
42、)求解由符号表达式或不带等号的字符eq1,eq2,eqn组成的方程组。自变量由var1,var2,varn来指定。得到结构体形式的解。当方程组中的符号变量个数大于求解的变量个数时只求解靠x最近的n个变量的解,其他变量作为常量对待。 输出结果时,可采用解的结构体输出方式自动判断求解变量。2021-12-1594程序实例 x=solve(p*sin(x)=r) x = asin(r/p) r=solve(p*sin(x)=r) r = asin(r/p) x=solve(p*sin(x)-r) x = asin(r/p)2021-12-1595程序实例 x=solve(p*sin(x)=r,p)
43、x = r/sin(x) p=solve(p*sin(x)=r,p) p = r/sin(x) p=solve(p*sin(x)-r,p) p = r/sin(x)2021-12-1596程序实例 x,y=solve(x+y=5,x-y=1) x = 3 y = 2 y,x=solve(x+y=5,x-y=1) y = 3 x = 22021-12-1597程序实例 s=solve(x+y=5,x-y=1) s = x: 1x1 sym y: 1x1 sym s.x ans = 3 s.y ans = 22021-12-1598程序实例 x=solve(x+y=5,x-y=1,x) Warni
44、ng: 2 equations in 1 variables. In solve at 113 Warning: Explicit solution could not be found. In solve at 140 x = empty sym 2021-12-1599程序实例 x,y,z=solve(x+y+z=5,x-y-z=1) ? Error using = solve 2 variables does not match 3 outputs. x,y,z=solve(x+y+z=5,x-y-z=1,x-y+z=7) x = 3 y = -1 z = 32021-12-15100程
45、序实例 x,y,z=solve(a+b+c=15,a+b-c=3,a-b+c=5) x = 4 y = 5 z = 62021-12-15101程序实例 a,b,c=solve(a+b+c=15,a+b-c=3,a-b+c=5) a = 4 b = 5 c = 62021-12-15102程序实例 s=solve(a+b+c=15,a+b-c=3,a-b+c=5) s = a: 1x1 sym b: 1x1 sym c: 1x1 sym s.a ans = 4 s.b ans = 5 s.c ans = 62021-12-15103程序实例 a,b=solve(a+b+c=15,a+b-c=3
46、,a-b+c=5) ? Error using = solve 3 variables does not match 2 outputs. a,b=solve(a+b+c=15,a+b-c=3) a = -a+9 b = 62021-12-15104程序实例 s=solve(a+b+c=15,a+b-c=3) s = b: 1x1 sym c: 1x1 sym s.b ans = -a+9 s.c ans = 6 s.a ? Reference to non-existent field a.2021-12-15105工程实例 问题描述:一圆半径为2,并以x=3,y=5为圆心,另一圆半径为b,
47、并以x=5,y=3为圆心。找两圆的交点。且当b=3时的解。 解题过程:首先建立两个圆的方程,然后采用符号方程求解计算出交点坐标,左后采用符号代换计算出焦点的具体坐标。 第一圆方程 (x-3)*(x-3)+(y-5)*(y-5)=2*2 第二圆方程 (x-3)*(x-3)+(y-5)*(y-5)=b*b2021-12-15106求解过程 syms x y b x,y=solve(x-3).2+(y-5).2-4,(x-5).2+(y-3).2-b.2) x = 9/2-1/8*b2+1/8*(-16+24*b2-b4)(1/2) 9/2-1/8*b2-1/8*(-16+24*b2-b4)(1/2
48、) y = 7/2+1/8*b2+1/8*(-16+24*b2-b4)(1/2) 7/2+1/8*b2-1/8*(-16+24*b2-b4)(1/2) subs(x,b,3) ans = 4.7386 2.0114 subs(y,b,3) ans = 5.9886 3.26142021-12-151075.6 符号微分方程的求解 符号微分方程求解可以通过函数dsolve来实现,dsolve函数的调用格式如下: dsolve(eqn1,eqn2,.,cond1,cond2,v),其中,对给定的常微分方程(组)eq1、eq2.中指定的符号自变量v,与给定的边界条件和初始条件cond1、cond2.
49、求符号解。若没有指定变量v,则默认变量为t,在微分方程表达式中,D=d/dt、D2=d2/dt2.。微分算子D后面的字母就是待求解的未知函数。初始和边界条件由字符串表示,若边界条件少于方程组的阶数,则结果中会出现任意常数c。2021-12-15108 函数的输出结果可能存在三种情况: (1)一个方程和一个输出,则返回符号向量中非线性方程的联立解; (2)几个方程与相同个数的输出,返回的结果是按字母顺序排序,并且分配给输出参数; (3)几个方程和一个输出,则返回解的结构。 如果解不是显式形式,则被认为是隐式形式。当一个隐式形式的解返回时,会给出警告。 如果解既不是显式形式,也不是隐式形式,也会给
50、出警告,同时返回的是一个空字符串。在一些非线性方程中,输出结果可能是降阶的微分方程或是积分方程。2021-12-15109程序实例 y1=dsolve(Dx=-a*x) y1 = C1*exp(-a*t) y2=dsolve(Dy)2+y2=1,y(0)=0) y2 = sin(t) -sin(t)2021-12-15110程序实例 f,g=dsolve(Df=f+g,Dg=-f+g,f(0)=1,g(0)=2) f = exp(t)*(2*sin(t)+cos(t) g = exp(t)*(2*cos(t)-sin(t) f,g=dsolve(Df=f+g,Dg=-f+g,f(0)=1,g(
51、0)=2,x) f = exp(x)*(2*sin(x)+cos(x) g = exp(x)*(2*cos(x)-sin(x)2021-12-15111程序实例 s=dsolve(Df=f+g,Dg=-f+g,f(0)=1,g(0)=2) s = f: 1x1 sym g: 1x1 sym s.f ans = exp(t)*(2*sin(t)+cos(t) s.g ans = exp(t)*(2*cos(t)-sin(t)2021-12-151125.7 符号函数画图 MATLAB的符号工具箱也为用户对符号函数进行画图提供了方便。符号函数画图可以通过函数ezplot或fplot来实现。其中,函
52、数ezplot的调用格式如下: ezplot(f)表示在默认区间-2*pix2*pi绘制f=f(x)的函数图或在默认区间-2*pix2*pi和-2*piy2*pi绘制f(x,y)=0的函数图。 ezplot(f,a,b)同上,绘图区间变为a,b。 ezplot(f,xmin,xmax,ymin,ymax)同上,绘图区间变为x为xmin,xmax,y为ymin,ymax。 ezplot(x,y)表示在区间0t2*pi绘制x=x(t)和y=y(t)的函数图。 ezplot(x,y,tmin,tmax)表示在区间tmint syms x f=x2-9; ezplot(f)2021-12-15114结
53、果图形2021-12-15115程序实例 syms x y f=x2+y2-9; ezplot(f)2021-12-15116结果图形2021-12-15117 ezplot(x.2+y.2-9)2021-12-15118 ezplot(x.2+y.2-9=0)2021-12-15119程序实例 syms x y f=x2+y2-9; ezplot(f,-3,3)2021-12-15120结果图形2021-12-15121程序实例 syms x y f=x2+y2-9; ezplot(f,-3,3,-4,5)2021-12-15122结果图形2021-12-15123 ezplot(sin(x)-x2+2*y2=9)2021-12-15124程序实例 syms x y t x=sin(3*t)*cos(t); y=sin(3*t)*sin(t); ezplot(x,y,0,pi)2021-12-15125结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肱骨外固定装置去除术后护理查房
- 采购订单更改请求函6篇范文
- 全面性安全管理制度与流程模板
- 企业员工绩效考核体系工具
- 企业工作台功能扩展指南
- 产品品质完好退换承诺书3篇
- 健康生活行为自律承诺书模板5篇
- 江苏省南京师大附中树人校2026届中考英语试题一轮复习高中总复习含解析
- 四川省宜宾市达标名校2025-2026学年初三下学期周练一(2.15)数学试题含解析
- 2026年黑龙江省鸡西市鸡东县重点名校全国初三冲刺考(四)全国I卷英语试题含解析
- 2026贵州省气象部门第二批公开招聘应届毕业生22人考试参考题库及答案解析
- 2026年咸宁职业技术学院单招职业倾向性测试题库及答案详解(网校专用)
- 2026年上半年新疆维吾尔自治区招聘事业单位人员考试参考试题及答案解析
- 浙江省名校协作体2024-2025学年高三下学期联考英语试题+答案
- 2026年上饶职业技术学院单招职业技能测试模拟测试卷附答案解析
- 2026年浙江机电职业技术学院单招综合素质考试模拟试题含详细答案解析
- 黑龙江2025年黑龙江省疾病预防控制中心招聘27人笔试历年参考题库附带答案详解
- (2025年)室内装修三级安全教育试卷及答案
- 器材仓库制度规范
- 电厂设备刷漆制度规范
- 金太阳山西省名校三晋联盟2025-2026学年高三上学期12月联合考试语文(26-177C)(含答案)
评论
0/150
提交评论