




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Matlab输入输出格式及多项式函数,在运算式中常需要做数据的输入及输出,采用的方式可以是交谈式的或是指定格式。,输入及输出交谈式的输入输出格式,Matlab输入及输出格式,我们来看一个例子,计算面积Area=可利用指令input在荧幕印出提示文字做为交谈式的输入。r=input(Typeradius:)%在两个单引号之间键入提示文字Typeradius:%现在键入2做为半径值r=2area=pi*r2;%键入面积算式,交谈式的输入,name=input(Yournameplease:,s)%要键入文字则须在加上s,s是代表字串(string)Yournameplease:%键入名字J.C.Wuname=J.C.Wu,输出格式,至于输出有二种格式:自由格式(disp)和格式化输出(fprintf)。要直接输出文字或是一数值,可使用disp,例如temp=20;disp(temp);disp(degreesC);disp(度C)%中文也接受呢!20degreesC度C,而指令fprintf则是用来控制输出数据及文字的格式,它的基本格式如fprintf(Theareais%8.5fn,area)在二个单引号间包括输出的字串Theareais,接着是输出数据的格式%8.5f,再来是跳行符号以避免下一个输出数据或是提示符号也挤在同一行,最后键入要输出的数据名area。Theareais12.56637%输出值为8位数含5位小数注意输出格式前须有%符号,跳行符号须有符号,在此要稍加说明的是输出数据的格式,以下的例子各说明了不同型态的输出格式fprintf(f_form:%12.5fn,12345.2)%输出值为12位数,含5位小数f_form:12345.20000fprintf(f_form:%12.3fn,1.23452)%输出值为12位数,含3位小数f_form:1.235,fprintf(e_form:%12.5en,12345.2)%输出值为指数格式的12位数,含5位小数e_form:1.23452e+004fprintf(f_form:%12.0fn,12345.2)%输出值为整数格式的12位数f_form:12345,MATLAB常用的三角函数sin(x):正弦函数asin(x):反正弦函数cos(x):余弦函数acos(x):反余弦函数tan(x):正切函数atan(x):反正切函数sinh(x):超越正弦函数asinh(x):反超越正弦cosh(x):超越余弦函数acosh(x):反超越馀弦函数tanh(x):超越正切函数函数atanh(x):反超越正切函数,Matlab多项式函数,多项式常被用来模拟一个物理现象的解析函数,之所以采用多项式,是因为它很容易计算。在这里我们将说明如何做多项式的计算及解多项式的根。,令p(x)代表一个多项式如下MATLAB以一最简便方式代表上述的多项式p=14-7-10,其中的数值是多项式的各阶项(从高到低)的各个系数,其实p也是一个阵列不过是用以代表这个多项式。有了多项式的表示式后,我们即可来计算其函数值。假设要计算一组数据x对应的多项式值,依照一般的函数计算须以下列式子计算:,p=x.3+4*x.2-7*x-10为了能直接运用多项式,可以用函数polyval直接做运算,语法为polyval(p,x),其中p即是代表多项式各阶系数的阵列。因此x=linspace(-1,3,N);p=147-10;v=polyval(p,x);,y=polyval(p,x)返回n次多项式p在x处的值。输入变量p=p0p1p2pn是一个长度为n+1的向量,其元素为按降排列的多项式系数。y=pn+pn-1*x+p0*xnx可以是一个矩阵或者一个向量,在这两种情况下,polyval计算在X中任意元素处的多项式p的估值。,用法:linspace(x1,x2,N)功能:linspace是Matlab中的一个指令,用于产生x1,x2之间的N点行矢量。其中x1、x2、N分别为起始值、终止值、元素个数。若缺省N,默认点数为100。在matlab的命令窗口下输入helplinspace或者doclinspace可以获得该函数的帮助信息。,我们接着说明如何对二个多项式做加减乘除运算。当二个多项式间要做加减乘除时,加减运算可以直接进行。假设有二个多项式a(x)和b(x)定义如下:,如果多项式c(x)为上述二多项式相加,即c(x)=a(x)+b(x),因此,如果是二多项式相减得到的多项式为d(x)=a(x)-b(x),则,以下就介绍相关范例,来说明二个多项式的加减运算:,a=1234;b=14916;c=a+bc=261220d=a-bd=0-2-6-12,而将两个多项式相乘可以得到一新的多项式e(x)=a(x)b(x),如果是两个多项式相除,即:,上述二个运算式不能直接运算,须要另外定义函数conv做乘法运算以及函数deconv做除法运算。当二多项式相乘,在数学上等于二个阵列做卷积(convolution)运算(因为我们是以阵列来代表一个多项式的各阶系数),因此可利用conv函数做乘法运算,其语法为conv(a,b),其中a,b代表二个多项式的阵列。而二多项式相除就相当于反卷积(de-convolution)运算,因此有deconv函数,其语法稍有不同q,r=deconv(a,b),其中q,r分别代表整除多项式及余数多项式。,以下就介绍相关范例,来说明二个多项式的乘除运算:a=1234;b=14916;,e=conv(a,b)e=162050758464g=e+000cg=162052819684,(c=261220),f,r=deconv(e,b)f=1234r=0000000%因为是整除所以余数多项式的各系数皆为零,h,r=deconv(g,a)h=14918r=00002612%余数多项式为2*x2+6*x+12,多项式的根,一个多项式视其阶数而定,它的根可以有一个到数个,可能为实数也可能是复数。要求一高阶多项式的根往往须借助数值方法,所幸MATLAB已将这些数值方法写成一函数roots(p),我们只要输入多项式的各阶系数(以p代表)即可求解到对应的根,p=132;r=roots(p)r=-2-1p=1-12025116;%注意二阶项系数为零须要输入,否则多项式的阶数就不对r=roots(p)%有实数根及复数根r=11.74732.7028-1.2251+1.4672i-1.2251-1.4672i,与roots相关的函数尚有poly,real,这二个函数的用途是要验算求解的根展开能求得原多项式。例如有一个二次方程式的根为-2,-1,则以下式计算原多项式p(x)=(x+2)(x+1)=x2+3x+2poly函数就是在求出多项式的各阶系数,其语法为poly(r),其中r是代表根的阵列。而real则是用来去除因计算时产生的假虚部系数,为何会有此种情形请参考以下的例子。,r=-2-1;pp=poly(r)%pp=(x+2)(x+1)=x2+3x+2pp=132p=1-46-4;r=roots(p)r=2.00001.0000+1.0000i1.0000-1.0000ipp=poly(r)%这个多项式的系数与原多项式p相同pp=1-46-4,pp=17129;%再看另一个多项式r=roots(pp)r=-4.9395-1.0303+0.8721i-1.0303-0.8721ipp=poly(r)%注意因计算的误差会有假虚部产生pp=1.00007.000012.00009.0000+0.0000ipp=real(pp)%可以real将假虚部去除,将原多项式还原pp=1.00007.000012.00009.0000,非线性方程的实根,如果求根的方程不为多项式的形式,就不能用roots函数。而这类的方程多半是非线性方程,其函数形式变化很大。对于解这类方程的根,可以用fzero函数,它其实是用来找一函数f(x)的x值代入时,会使该函数值为零(f(x)=0);而这也就是根的特性,因此我们可以用fzero求根。,要求任一方程的根有三步骤:(1)先定义方程。要注意必须将方程安排成f(x)=0的形式,例如一方程为sin(x)=3,则该方程式应表示为f(x)=sin(x)-3。可以用m-file定义方程。(2)代入适当范围的x,y(x)值,将该函数的分布图画出,藉以了解该方程的长相。,(3)由图中决定y(x)在何处附近(x0)与x轴相交,以fzero的语法fzero(function,x0)即可求出在x0附近的根,其中function是先前已定义的函数名称。如果从函数分布图看出根不只一个,则须再代入另一个在根附近的x0,再求出下一个根。以下分别介绍几个方程式,来说明如何求解它们的根。,例一、方程为sin(x)=0我们知道上式的根有,求根方式如下:r=fzero(sin,3)%因为sin(x)是内建函数,其名称为sin,%因此无须定义它选择x=3附近求根r=3.1416r=fzero(sin,6)%选择x=6附近求根r=6.2832,例二、方程为MATLAB内建函数humps,我们不须要知道这个方程的形态为何,不过我们可以将它画出来,再找出根的位置。求根方式如下:x=linspace(-2,3);y=humps(x);plot(x,y),grid%由图中可看出在0和1附近有二个根r=fzero(humps,1.2)r=1.2995,例三、方程式为这个方程式其实是个多项式,我们说明除了用roots函数找出它的根外,也可以用这节介绍的方法求根,注意二者的解法及结果有所不同。求根方式如下:,%m-function,f_1.mfunctiony=f_1(x)%定义f_1.m函数y=x.3-2*x-5;x=linspace(-2,3);y=f_1(x);plot(x,y),grid%由图中可看出在2和-1附近有二个根,r=fzero(f_1,2);%决定在2附近的根r=2.0946p=10-2-5r=roots(p)%以求解多项式根方式验证r=2.0946-1.0473+1.1359i-1.0473-1.1359i,例四、方程式为求根方式如下:%m-function,f_2.mfunctiony=f_2(x)%定义f_2.m函数y=x.2.*sin(x)+cos(x);x=linspace(-3,3);y=f_2(x);plot(x,y),grid%由图中可看出在-1和3附近有二个根r=fzero(f_2,-1);%决定在-1附近的根,r=-0.8952r=fzero(f_2,3);%决定在3附近的根r=3.0333,例五、方程式为求根方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025河南豫矿资源开发集团有限公司招聘12人考前自测高频考点模拟试题及参考答案详解一套
- 广东省湛江市雷州市市级名校2026届中考一模语文试题含解析
- 2025年甘肃中医药大学附属医院(第三期)考核招聘编外专业技术人考前自测高频考点模拟试题含答案详解(精练)
- 2025浙江中科迈金节能技术(浙江)有限公司招聘考前自测高频考点模拟试题参考答案详解
- 2025年海南省万宁中学和兴隆实验学校(筹备开学)招聘中小学教职模拟试卷含答案详解(夺分金卷)
- 2025年国家公务员考试时事政治必考试题库必背及参考答案详解一套
- 2025年上半年浙江温州市泰顺县事业单位招聘(第3号)考前自测高频考点模拟试题及完整答案详解
- 2025昌国(浙江)科技发展有限公司招聘1人模拟试卷及完整答案详解1套
- 2025年广东省梅州市蕉岭县专场招聘紧缺学科教师(8人)笔试备考试题含答案详解(能力提升)
- 2025年襄阳市第三十六中学招聘第二批急需专业技术人才(2人)考前自测高频考点模拟试题及参考答案详解
- 婚庆合伙人合同协议
- 公司6s检查管理制度
- 标杆管理制度
- 1 《子路 曾皙 冉有 公西华侍坐》公开课一等奖创新教案统编版高中语文必修下册
- 小学生医疗卫生小知识
- 胆总管结石术后个案护理
- DB11∕T380-2024桥面防水工程技术规程
- 农产品质量安全保障合同
- 妊娠合并重度肺动脉高压死亡病例分析
- 员工内部冲突管理
- 冰粉制作流程
评论
0/150
提交评论