还剩20页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第5章符号运算__TLAB的工具包Symbolic__thToolbox以__PLE为内核,实现了符号计算,如符号表达式与矩阵的操作、微积分、线性代数、方程求解、化简与展开、特殊数学函数等
5.1符号表达式和符号矩阵的创建
1、用字符串创建符号表达式如f=sinx^2;%创建函数sin2x赋给fq1=a*x^2+b*x+c=0;%创建方程赋给q1de=Dy+y^2=1;%创建微分方程y+y2=1并赋给de
2、创建符号矩阵的方法1)直接使用Sym命令矩阵如k=sym[ab;cd]运行结果如下k=[ab][cd]msy=sym[1/a+xsinxb-x/a+x;2*x1/8+x^2expx]运行结果如下msy=[1/a+xsinxb-x/a+x][2*x1/8+x^2expx]1)使用Sym命令创建符号变量,再利用数组运算生成符号矩阵如,下面的命令生成5阶符号矩阵t=symt;%创建符号变量t[IJ]=meshgrid1:5H=
1./I+J-t运行结果如下I=1234512345123451234512345J=1111122222333334444455555H=[1/2-t1/3-t1/4-t1/5-t1/6-t][1/3-t1/4-t1/5-t1/6-t1/7-t][1/4-t1/5-t1/6-t1/7-t1/8-t][1/5-t1/6-t1/7-t1/8-t1/9-t][1/6-t1/7-t1/8-t1/9-t1/10-t]3)使用Sym命令把数值矩阵化成符号矩阵设A为数值矩阵,则:msy=SymA将A转化为符号矩阵msy如:A=[123;789;456]M=symA运行结果如下A=123789456M=
[123]
[789]
[456]
3、符号矩阵元素的引用和修改SymSij%引用符号矩阵元素SijA=[123;789;456]M=symAdisp第3行2列的元素为:symM32运行结果如下A=123789456M=
[123]
[789]
[456]第3行2列的元素为:ans=
55.2符号表达式与矩阵的基本运算
1、加、减、乘、除Sy__ddAB%A+B与symA+symB等价SymSubAB%A–B与symA-symB等价SymmulAB%A×B与symA*symB等价SymdivAB%A/B与symA/symB等价
2、幂sympowSp%Sp与symS^symp等价若S为标量符号表达式,p可为标量符号或数值表达式;若S为符号矩阵,p必须为整数
5.3因式分解、展开和简化及微积分设s是一个符号表达式
1、因式分解factors如f=symx^4-5*x^3+5*x^2+5*x-6factorf运行结果如下f=x^4-5*x^3+5*x^2+5*x-6ans=-1+x*x-2*x-3*x+
12、展开expands如f=symx^4-5*x^3+5*x^2+5*x-6g=factorfexpandg运行结果如下f=x^4-5*x^3+5*x^2+5*x-6g=-1+x*x-2*x-3*x+1ans=x^4-5*x^3+5*x^2+5*x-
63、化简simplifys如simplifysinx^2+3*x+cosx^2-5运行结果如下ans=-4+3*x
4、微分diffS%对符号S关于缺省变量x求微分diffSv%对符号S关于变量v求微分diffSvn%对符号S关于变量的n次微分如f=x^4-a^3*sinx^3+b*x^2+c*x-ddifffdifffadifffa2运行结果如下f=x^4-a^3*sinx^3+b*x^2+c*x-dans=4*x^3-3*a^3*sinx^2*cosx+2*b*x+cans=-3*a^2*sinx^3ans=-6*a*sinx^
35、积分intS求不定积分intSvintSab求定积分intSvab如f=sinx^3+b*x-dintfdifffbF=sym[a*xb*x^2;c*x^3d*x]disp对x求微分diffFdisp对x求积分intF运行结果如下f=sinx^3+b*x-dans=-1/3*sinx^2*cosx-2/3*cosx+1/2*b*x^2-d*xans=xF=[a*xb*x^2][c*x^3d*x]对x求微分ans=[a2*b*x][3*c*x^2d]对x求积分ans=[1/2*a*x^21/3*b*x^3][1/4*c*x^41/2*d*x^2]
6、泰勒级数展开taylorS求泰勒级数前6项taylorSvtaylorSn求泰数级数前n项如f=taylorsymlogx+1/x-5disp整理为prettyf运行结果如下f=-1/5*x+3/50*x^2-41/750*x^3+293/7500*x^4-1207/37500*x^5整理为2413293412075-1/5x+3/50x----x+----x------x
7507500375007.求解常微分方程DSOLVEeqn1eqn
2...其中eqn1eqn2为单个的常微分方程在这些常微分方程中用字母D表示微分,D2,D3等表示二重、三重微分任何D后所跟的字母为因变量自变量缺省为t例如1求单个常微分方程的解dsolveD2y-21-x^2*Dy+x=0ans=1/2*x*t+C1+C2*exp2*t2求带初值的单个常微分方程的解y=dsolveDy^2+y^2=1y0=0y=[sint][-sint]3求常微分方程组的解[fg]=dsolveDf=3*f+4*gDg=-4*f+3*gf=exp3*t*cos4*t*C1+sin4*t*C2g=exp3*t*-sin4*t*C1+cos4*t*C24求带初值的常微分方程组的解[fg]=dsolveDf=f+gDg=-f+g...f0=1g0=2f=expt*cost+2*sintg=expt*-sint+2*cost此外还有求解线性代数等函数请自学第6章__TLAB应用__在__TLAB中可将C或Fortran源程序转换为m文件还可以在MSVisualC++、MSVisualBASIC、MSFortranPowerStation
4.
0、DigitalVisualFortran
5.0等__环境中执行__TLAB命令或m文件也可使用其编译程序MCC将m文件转换为C或C++程序,从而生成__于__TLAB执行环境的应用程序
6.1将C或Fortran源程序转换为m文件
1、设置C或Fortran编译程序的目录mex–setup
2、生成.DLL文件mex源程序如mexyprimef.foryprimefg.formexyprime.c
6.2在其它语言中调用__TLAB以VisualBasic为例DimSaso__ectDimtasstringDimxasstringSetS=createo__ect__TLAB.applicationt=s.executesurfpeaksx=imputbox输入
6.3__TLAB应用界面__工具的使用__TLAB的应用界面__工具有下面五个属性编辑器propedit菜单编辑器menuedit对象排列工具align回调命令编辑器cbedit控制面板guide在建立一图形窗口后,拍入上面的前四个命令可分别使用相应工具使用guide命令可启动界面__控制面板,它包含属性编辑器,菜单编辑器,对象排列工具,回调命令编辑器的全部功能使用这些工具,系统会引导用户逐步完成图形用户界面的设计设计完成后,会自动生成一个m文件下面简介控制面板的使用1建立一图形窗口例如:surfpeaks;color__photshadinginterptitlehot色图函数效果建立一图形窗口如下:2启动控制面板拍入命令:guide出现如下的GuideControlPanel窗口:单击PropertyEditor按钮出现属性编辑器窗口设置对象的属性:单击MenuEditor按钮出现菜单编辑器窗口设计所需要的菜单:单击CallbackEditor按钮出现回调编辑器窗口设置菜单和按钮被选中时的动作:单击Alig__entTool按钮出现对齐工具窗口:在增加菜单axis及其子菜单Boxon和Boxoff、设置XLABEL为“深度”后,图形窗口如下所示当退出Guide窗口、并保存变化的结果,生成了如下的m文件functionfig=guidemo%Thisisthe__chine-generatedrepresentationofaHandleGraphicso__ect%anditschildren.Notethathandlevalues__ychangewhentheseo__ects%arere-created.This__ycauseproblemswithanycallbackswrittento%dependonthevalueofthehandleatthetimetheo__ectwass__ed.%Thisproblemissolvedbys__ingtheoutputasaFIG-file.%%Toreopenthiso__ectjusttypethenameoftheM-fileatthe__TLAB%prompt.TheM-fileanditsassociated__T-filemustbeonyourpath.%%NOTE:__rtainnewerfeaturesin__TLAB__ynoth__ebeens__edinthis%M-fileduetolimitationsofthisfor__twhichhasbeensupersededby%FIG-files.Figureswhichh__ebeenannotatedusingtheploteditortools%areincompatiblewiththeM-file/__T-filefor__tandshouldbes__edas%FIG-files.loadguidemoh0=figureColor[
0.
80.
80.8]...Color__p__t
0...FileNameD:\__tlabcai\guidemo.m...PaperPosition
[18180576432]...PaperUnitspoints...Position
[469237338280]...Rendererzbuffer...TagFig
1...ToolBarnone;h1=uimenuParenth
0...Labelaxis...Tagaxisuimenu1;h2=uimenuParenth
1...Callbackset__aBoxon...LabelBoxon...TagSubuimenu1;h2=uimenuParenth
1...Callbackset__aBoxoff...LabelBoxoff...Tagaxi__oxoff;h1=axesParenth
0...View[-
37.530]...CameraUpVector
[001]...Color
[111]...ColorOrder__t
1...Position[
0.130177514792__
940.
11071428571428570.77514792__
9408280.8142857142857143]...TagAxes
1...XColor
[000]...XGridon...YColor
[000]...YGridon...ZColor
[000]...ZGridon;h2=su_____Parenth
1...CData__t
2...EdgeColornone...Fa__Colorinterp...TagAxes1Su_____
1...VertexNor__ls__t
3...XData__t
4...YData__t
5...ZData__t6;h2=textParenth
1...Color
[000]...HandleVisibilityoff...HorizontalAlig__ent__nter...Position[-
228.8782724349788-
307.
1119945659601101.0108740618285]...Stringhot色图函数效果...TagAxes1Text
4...VerticalAlig__entbottom;setgeth2ParentTitleh2;h2=textParenth
1...Color
[000]...HandleVisibilityoff...Position[-
246.6029180022339-
356.
685057254068172.07463546117215]...String深度...TagAxes1Text
3...VerticalAlig__enttop;setgeth2ParentXLabelh2;h2=textParenth
1...Color
[000]...HandleVisibilityoff...HorizontalAlig__entright...Position[-
278.70084__87954-
331.
272303985345272.43334916283318]...TagAxes1Text
2...VerticalAlig__enttop;setgeth2ParentYLabelh2;h2=textParenth
1...Color
[000]...HandleVisibilityoff...HorizontalAlig__ent__nter...Position[-
284.8033645023182-
294.
219703779407487.26018216482238]...Rotation
90...TagAxes1Text
1...VerticalAlig__entbaseline;setgeth2ParentZLabelh2;ifnargout0fig=h0;end。