北京交通大学matlab复习资料P1051.主程序:[s1,kk]=quad('f1',0,2);[s2,kk]=quad('f2',2,4);s=s1+s2函数:functiony=f1(x)y=log(x.^2);functiony=f2(x)y=log(16)./(2+sin((x+1).*pi));f1=inline('log(x.^2)','x');f2=inline('log(16)./(2+sin((x+1).*pi))','x');[s1,kk]=quad(f1,0,2);[s2,kk]=quad(f2,2,4);s=s1+s23.symsxataus=int(log(x.^2),0.5,tau)solve(s==10)4.求解方程x5+6x4-3x2=10的5个根,并将其位置用五角星符号标记在复平面上,要求横纵坐标轴刻度等长,注明虚轴和实轴,在title位置上写出方程。clc;closeall;clearall;factor=[160-30-10];ro=roots(factor);disp(ro);scatter(real(ro),imag(ro),'p');axisequal;title('x^5+6x^4-3x^2=10');xlabel('realaxis');ylabel('imagineaxis(j)');6.某班同学成绩已经存放在矩阵A中,每行为某一位同学的数据,第1列为学号,第2列至第4列为其三门课程的成绩,试编程按照3门课平均成绩由小到大的顺序重新排列成绩表,并放在矩阵B中。clc;clearall;closeall;A=[99234012,95,73,88;p873.在同一坐标系下绘制t2,-t2,t2sint在t[0,2pi]内的曲线图;选择合适的“曲线线型”,“曲线颜色”、“标记符号”选项,并在图形上加注坐标轴名和图名。closeall;clearall;clc;t=linspace(0,2*pi,1024);y1=t.^2;y2=-t.^2;y3=(t.^2).*sin(t);figure(2);plot(t,y1,':y',t,y2,'--g',t,y3,'-r');legend('y=t^2','y=-t^2','y=t^2*sin(t)');title('三个函数图形');xlabel('t');ylabel('f(t)');4.theta=linspace(0,16*pi,2048);subplot(2,2,1);polar(theta,1.0013*theta.^2);subplot(2,2,2);polar(theta,cos(3.5*theta));subplot(2,2,3);polar(theta,sin(theta)./theta);subplot(2,2,4);polar(theta,1-(cos(7*theta)).^3);5.ttl={'主视图','左视图','俯视图','三维图'};angle={[0,0],[-90,0],[090],[-37.5,30]};fori=1:4subplot(2,2,i);x=0:0.01:1;y=0:0.02:2;[x,y]=meshgrid(x,y);z=1./sqrt((1-x.^2)+y.*2)+1./sqrt((1+x.^2)+y.^2);mesh(x,y,z)view(angle{i});title(ttl{i});end6.用鼠标左键在图形窗口上取5个点,在每个点的位置处写出一个字符串来显式鼠标点的横坐标值,然后将这些点连成折线。axis([0,5,0,5]);holdon;boxon;x=[];y=[];gtext('');fori=1:5[x1,y1,button]=ginput(1);if(button~=1)break;endplot(x1,y1,'o');x=[x,x1];y=[y,y1];text(x1,y1,num2str(x1));line(x,y);endholdoff老师:figure(1)[u,v,b]=ginput(5);line(u,v);fori=1:5;str=['(',num2str(u(i)),')'];text(u(i),v(i),str);end油桶clc;clear;symsxyh;w=ezplot('x^2/(2.5^2)+(y-2)^2/4-1=0');%绘制椭圆.set(w,'Color','k');holdon;axis([-2.55,2.55,0,4.05]);%设置坐标值.set(gca,'XTick',[],'XColor','w');%%%将坐标隐去.set(gca,'YTick',[],'YColor','w');line([0,0],[0,4],'Color','k','LineStyle','-')%画出中间刻度线.holdon;s=int(((100-25*(y-2).^2)/16).^0.5,0,h);%用int函数求不定积分.fori=1:25H(i)=solve(s-0.3125*i,h);%求得各个刻度的高度.endfori=1:25ifmod(i,4)==0plot([-0.3,0.3],[H(i),H(i)],'b');%每四格为一长刻度.elseplot([-0.1,0.1],[H(i),H(i)],'k');endend%标注长刻度分别为20,40,60,80,100,120.text(0.4,0.86,'20');text(0.4,1.42,'40');text(0.4,1.93,'60');text(0.4,2.43,'80');text(0.35,2.97,'100');text(0.35,3.64,'120');用循环语句形成一个有20个分量的数组,满足fibonacci规则,令第K+2个元素满足a(k+2)=a(k)+a(k+1)a(1)=1;a(2)=1;fork=1:18a(k+2)=a(k)+a(k+1);enda在同一图形窗口上分成四个绘图区域,试分别绘制主视图,左视图,俯视图和默认视角的三位表面图。ttl={'主视图','左视图','俯视图','三维图'};angle={[0,0],[-90,0],[090],[-37.5,30]};fori=1:4subplot(2,2,i);ezmesh('关于x,y,z的关系表达式',[取值范围]);view(angle{i});title(ttl{i});endttl={'主视图','左视图','俯视图','三维图'};angle={[0,0],[-90,0],[090],[-37.5,30]};fori=1:4subplot(2,2,i);ezmesh('1/((1-X)^2+Y^2)^0.5+1/((1+X)^2+Y^2)^0.5',[-22]);view(angle{i});title(ttl{i});End试用文字和数学公式描述下面指令要完成的计算任务roots([110-620-3])roots为求多项式的根,其向量表达多项式的系数,对应降幂排列,那么就有本题对应求解11x^5-6x^3+2x^2-3的根。试举例说明matlab语言中三位数组是如何定义的。在Matlab中习惯性的会将二维数组中的第一维称为“行”第二维称为“列”,而对于三维数组的第三位则是习惯性的称为“页”。在Matlab中将三维及三维以上的数组统称为高维数组,三维数组也是高级运算的基础。举例如课本31页。在程序段中插入语句A=zeros(10000,1);能显著缩短程序运行时间。因为插入本语句后,在循环语句前预先为变量A分配了足够的单元,循环时只需向各元素内填数,如果不插入的话则未预先定义A的大小,每次执行一次循环体便要扩充一次y的长度,增加了内部工作量。Matlab语言的基本编程单元为复数矩阵摄氏度转华氏度clc;clear;C=input('c=');f=32+C*1.8;disp(sprintf('f=%2.2f',f));华氏度转摄氏度clc;clear;f=input('f=');c=(f-32)/1.8;disp(sprintf('c=%2.2f',c));实例二:数据的多项式曲线拟合例:已知某压力传感器的标定数据见下表,p为电压值,u为电压值。p0.01.12.12.84.25.06.16.98.19.09.9u1011131417182224293439试用多项式dcpbpapu23拟合其特性函数,求出cba,,和d,把拟合曲线和各个标定点画在同一幅图上。解:将压力视为自变量,电压视为函数,编程如下:p=[0,1.1,2.1,2.8,4.2,5,6.1,6.9,8.1,9,9.9];u=[10,11,13,14,17,18,22,24,29,34,39];A=polyfit(p,u,3);a=A(1),b=A(2),c=A(3),d=A(4),p1=0:0.01:10;u1=polyval(A,p1);plot(p1,u1,p,u,'o')1.如何求未保存数据(上次matlab执行了savex):执行loadxy即可得到y的数据2.画视图P87页上3.roots的作用相当于求11s5+0s4-6s3+2s2+0s-3=0的根。4.三维数组的建立P31下012345678910510152025303540pu5.A=zeros(100000,1)的意义预先定维可以节约时间。1.求定积分函数程序1:函数名为jifen1.mfunctiony=jifen1(x)y=exp(pi-x)函数程序2:函数名为jifen2.mfunctiony=jifen2(x)y=log10(16)/(2+sin((x+1)*pi))主程序:y1=quad(’jifen1’,0,3.5);y2=quad(‘jifen2’,3.5,7);y=y1+y12.求解微分方程函数程序:函数名difen.mfunctionxdot=difeq(t,x)xdot=zeros(4,1)xdot(1)=x(2)xdot(2)=2*x(4)+x(1)xdot(3)=x(4)xdot(4)=-2*x(2)+x(3)主程序:t0=0;tf=20;x0=[1.100-1];[t,x]=ode23('difeq',[t0,tf],x0)xx=x(:,3)yy=x(:,3)plot(yy,xx)3.求采样点的幅频、相频、条形、波形图(数据y和h存储在signaldata.mat文件中)。loadsignaldatayhN=length(y);t=(0:(N-1))*h;Y=fft(y);f=t/h/((N-1)*h);n=floor(length(f)/2);subplot(2,2,1)plot(f(1:n),abs(Y(1:n)))subplot(2,2,3)plot(f(1:n),angle(Y(1:n)*180/pi))subplot(2,2,2)hist(y,20)subplot(2,2,4)plot(t,y)4.求多项式系数P104