北京交通大学matlab复习资料.docx
- 文档编号:4513248
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:10
- 大小:25.43KB
北京交通大学matlab复习资料.docx
《北京交通大学matlab复习资料.docx》由会员分享,可在线阅读,更多相关《北京交通大学matlab复习资料.docx(10页珍藏版)》请在冰豆网上搜索。
北京交通大学matlab复习资料
P105
1.主程序:
[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+s2
3.symsxatau
s=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;
99234033,84,77,80;
99234009,66,80,72;
99234067,92,93,59];
[y,index]=sort(mean(A(:
2:
end),2));
B=A(index,:
);
disp(B);
9.figure
(1)
[u,v,b]=ginput(5);
line(u,v);
fori=1:
5;
str=['(',num2str(u(i)),')'];
text(u(i),v(i),str);
end
11.解如下微分方程,并绘制出图像y(x).
(1)functionydot=f(x,y)
ydot=zeros(2,1);
ydot
(1)=y
(2);
ydot
(2)=2*(y
(2).^2);
t0=0;tf=1;x0=[0,-1];
[t,x]=ode45('f',[t0,tf],x0);
plot(t,x);
title('y=f(x)');
xlabel('x');ylabel('y');
(2)t0=1;tf=2;x0=[1,0];
[t,x]=ode45('f',[t0,tf],x0);
plot(t,x);
title('y=f(x)');
xlabel('x');ylabel('y');
functionxdot=f(t,x)
xdot=zeros(2,1);
xdot
(1)=x
(2);
xdot
(2)=-1./(x
(1).^3);
p87
3.在同一坐标系下绘制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:
4
subplot(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});
end
6.用鼠标左键在图形窗口上取5个点,在每个点的位置处写出一个字符串来显式鼠标点的横坐标值,然后将这些点连成折线。
axis([0,5,0,5]);
holdon;
boxon;
x=[];y=[];
gtext('');
fori=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
holdoff
老师:
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:
25
H(i)=solve(s-0.3125*i,h);%求得各个刻度的高度.
end
fori=1:
25
ifmod(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.35,3.64,'120');
用循环语句形成一个有20个分量的数组,满足fibonacci规则,令第K+2个元素满足a(k+2)=a(k)+a(k+1)
a
(1)=1;
a
(2)=1;
fork=1:
18
a(k+2)=a(k)+a(k+1);
end
a
在同一图形窗口上分成四个绘图区域,试分别绘制主视图,左视图,俯视图和默认视角的三位表面图。
ttl={'主视图','左视图','俯视图','三维图'};
angle={[0,0],[-90,0],[090],[-37.5,30]};
fori=1:
4
subplot(2,2,i);
ezmesh('关于x,y,z的关系表达式',[取值范围]);
view(angle{i});title(ttl{i});
end
ttl={'主视图','左视图','俯视图','三维图'};
angle={[0,0],[-90,0],[090],[-37.5,30]};
fori=1:
4
subplot(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为电压值。
p
0.0
1.1
2.1
2.8
4.2
5.0
6.1
6.9
8.1
9.0
9.9
u
10
11
13
14
17
18
22
24
29
34
39
试用多项式
拟合其特性函数,求出
和
,把拟合曲线和各个标定点画在同一幅图上。
解:
将压力视为自变量,电压视为函数,编程如下:
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下
5.A=zeros(100000,1)的意义
预先定维可以节约时间。
1.求定积分
函数程序1:
函数名为jifen1.m
functiony=jifen1(x)
y=exp(pi-x)
函数程序2:
函数名为jifen2.m
functiony=jifen2(x)
y=log10(16)/(2+sin((x+1)*pi))
主程序:
y1=quad(’jifen1’,0,3.5);
y2=quad(‘jifen2’,3.5,7);
y=y1+y1
2.求解微分方程
函数程序:
函数名difen.m
functionxdot=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文件中)。
loadsignaldatayh
N=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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京 交通大学 matlab 复习资料