北京交通大学matlab复习资料Word文档格式.docx
《北京交通大学matlab复习资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《北京交通大学matlab复习资料Word文档格式.docx(11页珍藏版)》请在冰点文库上搜索。
![北京交通大学matlab复习资料Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/9f3a62d8-5c06-4918-b1e8-7b4333d73b42/9f3a62d8-5c06-4918-b1e8-7b4333d73b421.gif)
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中。
A=[99234012,95,73,88;
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);
holdoff
老师:
figure
(1)
[u,v,b]=ginput(5);
line(u,v);
5;
str=['
('
num2str(u(i)),'
)'
];
text(u(i),v(i),str);
end
油桶
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'
%%%将坐标隐去.
YTick'
YColor'
line([0,0],[0,4],'
LineStyle'
-'
)%画出中间刻度线.
s=int(((100-25*(y-2).^2)/16).^0.5,0,h);
%用int函数求不定积分.
fori=1:
25
H(i)=solve(s-0.3125*i,h);
%求得各个刻度的高度.
ifmod(i,4)==0
plot([-0.3,0.3],[H(i),H(i)],'
b'
);
%每四格为一长刻度.
else
plot([-0.1,0.1],[H(i),H(i)],'
%标注长刻度分别为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);
a
在同一图形窗口上分成四个绘图区域,试分别绘制主视图,左视图,俯视图和默认视角的三位表面图。
ttl={'
主视图'
左视图'
俯视图'
三维图'
};
angle={[0,0],[-90,0],[090],[-37.5,30]};
4
subplot(2,2,i);
ezmesh('
关于x,y,z的关系表达式'
[取值范围]);
view(angle{i});
title(ttl{i});
1/((1-X)^2+Y^2)^0.5+1/((1+X)^2+Y^2)^0.5'
[-22]);
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语言的基本编程单元为复数矩阵
摄氏度转华氏度
C=input('
c='
f=32+C*1.8;
disp(sprintf('
f=%2.2f'
f));
华氏度转摄氏度
f=input('
f='
c=(f-32)/1.8;
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
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,'
)
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(:
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)
n),angle(Y(1:
n)*180/pi))
subplot(2,2,2)
hist(y,20)
subplot(2,2,4)
plot(t,y)
4.求多项式系数
P104