1、北京交通大学matlab复习资料北京交通大学matlab复习资料P1051. 主程序:s1,kk=quad(f1,0,2);s2,kk=quad(f2,2,4);s=s1+s2 函数:function y=f1(x)y=log(x.2);function y=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+s2 3. syms x a taus=int(log(x.2),
2、0.5,tau)solve(s=10)4. 求解方程x5+6x4-3x2=10的5个根,并将其位置用五角星符号标记在复平面上,要求横纵坐标轴刻度等长,注明虚轴和实轴,在title位置上写出方程。clc;close all;clear all; factor=1 6 0 -3 0 -10; ro=roots(factor);disp(ro);scatter(real(ro),imag(ro),p);axis equal;title(x5+6x4-3x2=10);xlabel(real axis);ylabel(imagine axis(j); 6.某班同学成绩已经存放在矩阵A中,每行为某一位同学
3、的数据,第1列为学号,第2列至第4列为其三门课程的成绩,试编程按照3门课平均成绩由小到大的顺序重新排列成绩表,并放在矩阵B中。clc;clear all;close all;A=99234012,95,73,88; for i=1:5 x1,y1,button=ginput(1); if(button=1) break; end plot(x1,y1,o); x=x,x1;y=y,y1; text(x1,y1,num2str(x1); line(x,y); end hold off老师: figure (1)u,v,b=ginput(5);line(u,v);for i=1:5;str=(,n
4、um2str(u(i),);text(u(i),v(i),str);end油桶clc;clear;syms x y h;w=ezplot(x2/(2.52)+(y-2)2/4-1=0); %绘制椭圆.set(w,Color,k); hold on;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,-) %画出中间刻度线.hold on;s=int(100-25*(y-2).2)/16).0.5,0,h); %
5、用int函数求不定积分. for i=1:25 H(i)=solve(s-0.3125*i,h); %求得各个刻度的高度. end for i=1:25 if mod(i,4)=0 plot(-0.3,0.3,H(i),H(i),b) ; %每四格为一长刻度. else plot(-0.1,0.1,H(i),H(i),k) ; end end%标注长刻度分别为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
6、.35,3.64,120);用循环语句形成一个有20个分量的数组,满足fibonacci规则,令第K+2个元素满足a(k+2)=a(k)+a(k+1)a(1)=1;a(2)=1;for k=1:18a(k+2)=a(k)+a(k+1);enda在同一图形窗口上分成四个绘图区域,试分别绘制主视图,左视图,俯视图和默认视角的三位表面图。ttl=主视图,左视图,俯视图,三维图;angle=0,0,-90,0,0 90,-37.5,30;for i=1:4 subplot(2,2,i); ezmesh(关于x,y,z的关系表达式,取值范围); view(anglei);title(ttli);end
7、ttl=主视图,左视图,俯视图,三维图;angle=0,0,-90,0,0 90,-37.5,30;for i=1:4 subplot(2,2,i); ezmesh(1/(1-X)2+Y2)0.5+1/(1+X)2+Y2)0.5,-2 2); view(anglei);title(ttli);End试用文字和数学公式描述下面指令要完成的计算任务roots(11 0 -6 2 0 -3)roots为求多项式的根,其向量表达多项式的系数,对应降幂排列,那么就有本题对应求解11x5-6x3+2x2-3的根。试举例说明matlab语言中三位数组是如何定义的。在Matlab中习惯性的会将二维数组中的第一
8、维称为“行”第二维称为“列”,而对于三维数组的第三位则是习惯性的称为“页”。在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
9、,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试用多项式拟合其特性函数,求出和,把拟合曲线和各个标定点画在同一幅图上。解:将压力视为自变量,电压视为函数,编程如下: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
10、,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执行了 save x ):执行load x y即可得到y的数据2.画视图 P87页上3.roots的作用相当于求11s5+0s4-6s3+2s2+0s-3=0的根。4.三维数组的建立 P31下5.A=zeros(100000,1)的意义预先定维可以节约时间。1.求定积分函数程序1:函数名为jifen1.mfunction y=jifen1(x)y=e
11、xp(pi-x)函数程序2:函数名为 jifen2.mfunction y=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.mfunction xdot=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.1 0 0 -1;t,x=ode23(difeq,t
12、0,tf,x0)xx=x(:,3)yy=x(:,3)plot(yy,xx)3.求采样点的幅频、相频、条形、波形图(数据y和h存储在signaldata.mat文件中)。load signaldata y hN=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
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1