您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 其它文档 > MATLAB在分段函数的应用要点
《MATLAB语言》课程论文MATLAB在分段函数的应用姓名:万治邦学号:12010245309专业:通信工程班级:2010级指导老师:汤全武学物理院:电气信息学院完成日期:2011年11月28日2MATLAB在分段函数中的应用(万治邦120102453092010级通信工程1班)[摘要]在数学中有很多关于分段函数的知识,我们通常所学的,也只是一些简单分段函数。当遇上一些多元多次线性方程组时,想要求解,是非常困难的。利用MATLAB编程语言就可以实现对一些复杂的分段喊数进行求解。将MATLAB语言运用到我们的学习中,就可以使我们对这方面的知识进行获取时简便起来。[关键词]数学分段函数MATLAB语言图形绘制一、问题的提出MATLAB语言作为一种简便实用的程序语言,将它的简便易操作运用到学习和教学中,会极大地简化学习中的复杂问题,这样就可以将我们从复杂的公式计算中解脱出来。MATLAB提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能.将MATLAB语言与数学结合起来,这无疑会弥补数学的复杂计算所带来的问题。二、数学分段函数中的应用1、分析一元二次函数分段函数的特性利用MATLAB解决一些数学中常见的分段函数性质问题,这样将MATLAB和数学结合起来可以提高学习效率,加深对函数的理解。下面我们就讨论利用MATLAB程序求解分段函数性质问题。问题一、定义分段函数下面分段函数0)ln(0)sin(32)(2xxxxxxxfMATLAB程序如下:functiony=f(x)%定义函数y=zeros(size(x));%产生与矩阵X同样大小的零矩阵[mn]=size(x);%定义矩阵fora=1:m%矩阵宽度forb=1:n%矩阵长度ifx(a,b)0%选择结构y(a,b)=log(-x(a,b))+x(a,b);elsey(a,b)=2*x(a,b)^2-3*sin(x(a,b));%选择结构end%结束if语句end%结束for语句end%结束for语句问题二:简单的绘图MATLAB程序如下:x1=0:0.01:1;%设置x1的变换范围x2=1:0.01:2;%设置x1的变换范围y1=x1;%定义y13y2=2-x2;%定义y2x=[x1,x2];%定义x矩阵y=[y1,y2];%定义y矩阵plot(x,y)%绘制关于x、y的曲线运行结果如图1所示图1问题三、一元二次分段函数的MATLAB实现)(xf定义如下其他且且,132,100,6540,6)(222xxxxxxxxxxxxf1、写出一个函数文件实现该函数2、做出函数图形3、求)(xf的零点与最值解:1、函数文件实现该函数编写M函数文件functiony=f(x)%定义分段函数n=length(x)%设置X的取值范围ifx0&x~4%选择结构y=x.^2+x-6;4elseifx=&x10&x~=2&x~3%选择结构y=x.^2+5*x+6;elsey=x.^2-x-1;end%结束if语句把文件f.m放置在搜索路径上运行命令:令x=5,则在命令窗口输入指令y=f(5)得到答案:y=562、图形MATLAB程序如下:x1=(-5):0.01:0;%设置X1的取值变化y1=x1.^2+x1-6;%定义函数f1(x)plot(x1,y1,'m-');%y1的平面线图holdon%设置图形保持状态x2=0:0.01:10;%设置X2的取值变化y2=x2.^2-5*x2+6;%定义函数f2(x)plot(x2,y2,'r:');%y2的平面线图holdon%设置图形保持状态x3=10:0.01:15;%设置X3的取值变化y3=x3.^2-x3-1;%定义函数f3(x)plot(x3,y3);%y3的平面线图x4=-4;%设置X4的值y4=x4.^2-x4-1;%定义函数f4(x)plot(x4,y4,'p');%y4的平面线图holdon%设置图形保持状态x5=2;%设置X5的值y5=x5.^2-x5-1;%定义函数y5plot(x5,y5,'b*')%y5的平面线图holdon%设置图形保持状态x6=3;%设置X6的值y6=x6.^2-x6-1;%定义函数y6plot(x6,y6,'g*');%y6的平面线图title('函数f(x)的图形');%加图形标题text(-4,-20,'曲线f1(x)=x^2+x-6');%在指定位置添加图形说明text(2,40,'曲线f2(x)=x^2-5x+6');%在指定位置添加图形说明text(10,146,'曲线f3(x)=x^2-x-1');%在指定位置添加图形说明legend('f1(x)','f2(x)','f3(x)','x=2','x=3');%加图例运行结果如图2所示5图23、)(xf的零点和最值)(xf的零点当4~&0xx时;62.^)(1xxxf;由函数的系数矩阵可得函数的根,即:pl=[1,1,-6];x1=roots(pl);x1=-32由题意可知,x的取值范围在)0,(,所以21x舍去,即)(xf的零点之一为31x.当3~&2~&10&0xxxx时;6*52.^)(2xxxf由函数的系数矩阵可得函数的根,即p2=[1,-5,6];x2=roots(p2);x2=3.00002.00006因为没有零点所以)(23~&2~xfxx当3&2&4&10xxxx时;12.^)(3xxxf由函数的系数矩阵可得函数的根,即:p3=[1,-1,-1];x2=roots(p3);X2=1.6180-0.6180有题意可知,)(xf在定义域内没有零点。综上所述,)(xf在定义域内只有一个零点,即3x.)(xf的最小值如图1所示,)(xf在定义域内之存在一个最小值,且处于最左段函数图形'62^)(1'xxxf曲线上,即当0x时,)(xf拥有最小值,因此,用fminbded函数可求出)(1xf函数的最小值,指令如下:x(l)=fminbnd('x(l).^2+x(l)-6',-5,0)y1=x(l).^2+x(l)-6x=-0.5000y1=-6.2500所以函数)(xf最小值为5.6)5.0(f.通过以上程序对一元二次分段函数的讨论,学会了能用MATLAB实现对函数的性质问题求解。下面进一步讨论利用在MATLAB函数文件绘制分段函数图形问题。四、在函数文件下绘制分段函数图形将MATLAB强大的绘图功能应用到数学图形的绘制上,当遇到一些复杂的函数图形时,就可以很好地解决图形绘制难的问题。这样我们在数学函数和图形的时候就可以有一个直观的参考,而MATLAB绘图功能的操作简单、功能强大就简化了一些复杂的操作。下面我们就讨论有关利用MATLAB程序绘图的问题。1一元分段函数的图形绘制问题四、用MATLAB绘制分段函数42),2/(21)),1(cos(10,)(22xxxxxxxxf图像7MATLAB程序如下:把下面的函数保存为Piecewise_x.m文件functionF=Piecewise_x(x)F=x.^2.*(x=0&x1)+cos(pi*(x-1)).*(x=1&x2)+(-x.^2./(x+2)).*(x=2&x=4);end运行:x=linspace(0,4);F=Piecewise_x(x);%计算相应函数值plot(x,F);%绘制曲线holdon;plot(1*ones(1,2),ylim,'r:');%画区间间隔线plot(2*ones(1,2),ylim,'r:');%画区间间隔线x=linspace(0,4);%设置线性等分向量F=Piecewise_x(x);%计算相应函数值plot(x,F);%绘制曲线holdon;%设置图形保持状态plot(1*ones(1,2),ylim,'r:');%画区间间隔线plot(2*ones(1,2),ylim,'r:');%画区间间间隔线运行结果如图3图3分段函数图2、二元二次分段函数函数的MATLAB绘图8问题五:函数1),*5.175.3*75.0exp(*5457.011),*6exp(*7575.01),*5.1*75.3*75.0exp(*5457.0),(222222yxxxyyxxyyxxxyyxp的图形绘制MATLAB程序如下:把下面的函数保存为Piecewise_xy.m文件functionPxy=Piecewise_xy(x,y)Pxy=0.5457*exp(-0.75*y^2-3.75*x^2-1.5*x).*(x+y1)+...0.7575*exp(-y^2-6*x^2).*(x+y-1)+...0.5457*exp(-0.75*y^2-3.75*x^2+1.5*x).*(x+y=-1);end运行:[x,y]=meshgrid(-3:0.1:3);%产生“格点”矩阵s=size(x)Pxy=zeros(s(1),s(2));%定义矩阵x是s(1)s(2)零矩阵fori=1:s(1)forj=1:s(2)Pxy(i,j)=Piecewise_xy(x(i,j),y(i,j));%定义分段函数endendmesh(x,y,Pxy)%定义网线图运行结果如图4图4问题七、绘制分段函数图形MATLAB程序如下:9Clear%清除内存变量和函数clc;%清楚指令窗x=0:0.01:1;%定义x的取值范围n=length(x);%加图例y=zeros(1,n);%产生1n零矩阵fori=1:101ifx(i)=0.25y(i)=100*x(i).^2;elseifx(i)=0.5y(i)=100*x(i).*(1-x(i))-12.5;elsey(i)=x(i).*(1-x(i));endendendFigure%创建图形窗口plot(x,y);%绘制关于x,y的曲线运行结果如图5所示图5通过以上利用MATLAB绘图功能绘制分段函数图形问题的讨论,我们就会在此基础上加深对MATLAB强大功能的认识,在利用MATLAB解决其他问题时就有了实际的参考,下面就对物理中的分段函数问题结合MATLAB程序语言进行解决。五、物理学中分段函数的应用10物理中经常会遇到一些复杂的分段函数图形,如果利用手工绘制或其他的绘制图形方式时,难免会造成图形与实际的偏差。这样在观察图形获取图形参数时就会造成不必要的误差。下面我们就讨论物理学中复杂分段函数利用MATLAB程序语言绘制图形的问题问题八、两个分段函数的MATLAB实现MATLAB程序如下:clear;%清除内存变量和函数t=0:0.01:18;%设置t的变化范围d1=zeros(size(t));%定义d1是矩阵t同样大小的零矩阵d2=zeros(size(t));%定义d2是矩阵t同样大小的零矩阵N=length(t);%加图例fori=1:Nif0=mod(t(i),6)&mod(t(i),6)3d1(i)=-(400/27)*(1/4*(mod(fix(t(i)),6)+t(i)-fix(t(i))).^4-2*(mod(fix(t(i)),6)+t(i)-fix(t(i))).^3+(9/2)*(mod(fix(t(i)),6)+t(i)-fix(t(i))).^2);elsed2(i)=(100/6.75)*(1/4*(mod(fix(t(i)),6)+t(i)-fix(t(i))).^4-5*(mod(fix(t(i)),6)+t(i)-fix(t(i))).^3+36*(mod(fix(t(i)),6)+t(i)-fix(t(i))).^2-108*(mod(fix(t(i)),6)+t(i)-fix(t(i)))+108);endendd=d1+d2;%定义d的表达式plot(t,d);%绘制关于t,d的
本文标题:MATLAB在分段函数的应用要点
链接地址:https://www.777doc.com/doc-1465111 .html