MATLAB基础与应用教程 习题答案 作者 蔡旭晖 刘卫国 蔡立燕 第1-8章答案
第1章
一、思考题
4. (1) B=A(2:5,1:2:5)
(2)A(7)=[]
(3) A=A+30
(4)size(A)
(5) t(find(t==0))=eps
(6)t=reshape(x,3,4)
(7)abs('matlab')
(8)char(93)
5. A=[97,67,34,10;-78,75,65,5;32,5,-23,-59;0,-12,54,7]
(1) B=A(1:3,:)
C=A(:,1:2)
D=A(2:4,3:4)
E=B*C
(2)A(find(A>=50 & A<=100))
二、实验题
1.x=-74/180*pi;y=-27/180*pi;
sin(x*x+y*y)/sqrt(tan(abs(x+y)))+pi
2.a=-
3.0:0.1:3.0;
exp(-0.3*a).*sin(a+0.3)
3.x=[2,4;-0.45,5];
log(x+sqrt(1+x.*x))/2
4. A=[3,54,2;34,-45,7;87,90,15];B=[1,-2,67;2,8,74;9,3,0]; (1)A*B
ans =
129 432 4197
7 -407 -1052
402 591 12489
A.*B
ans =
3 -108 134
68 -360 518
783 270 0
(2) A^3
ans =
-28917 240246 -4368
137883 -259101 27669
171333 252504 38673
A.^3
ans =
27 157464 8
39304 -91125 343
658503 729000 3375
(3)A/B
ans =
-5.8845 5.3549 -0.2028
6.3554 -5.6596 4.3293
-6.6325 6.2078 9.0241
B/A
ans =
30.2855 19.2643 -8.5614
33.4394 21.1547 -9.3974
-0.7443 -0.3938 0.2830
(4)[A,B]
ans =
3 5
4 2 1 -2 67
34 -45 7 2 8 74
87 90 15 9 3 0
[A([1,3],:);B^2]
ans =
3 5
4 2
87 90 15
600 183 -81
684 282 726
15 6 825
5.a=1+2i;b=3+4i;
c=exp(pi*i/6)
c =
0.8660 + 0.5000i
c+a*b/(a+b)
ans =
1.6353 + 1.8462i
第2章
一、思考题
3.s=0;
for n=0:63
s=s+2^n;
end
disp(s)
n=0:63;
s=sum(2.^n)
二、实验题
1.
x=input('输入一个四位整数:');
y=[fix(x/1000),mod(fix(x/100),10),mod(fix(x/10),10),mod(x,10)] z=mod((y+7),10)
x=z(3)*1000+z(4)*100+z(1)*10+z(2)
2.
gh=input('输入工号');
h=input('输入工时');
dj=84;
if h>120
gz=dj*120+1.15*dj*(h-120);
elseif h<60
gz=dj*h-700;
else
gz=dj*h;
end
format bank;
display([gh,gz])
3.
循环结构
n=input('input n:');
s=0;
for k=1:n
s=s+1/k^2;
end
display(sqrt(s*6))
向量运算
n=input('input n:');
k=1:n;
display(sqrt(sum(1./k.^2)*6))
4.
y=0;k=0;
while y<3
k=k+1;
y=y+1/(2*k-1);
end
display([k-1,y-1/(2*k-1)])
5.
x0=0;x=1;k=0;
a=input('a=');
b=input('b=');
while abs(x-x0)>=1e-5 && k<500
x0=x;
x=a/(b+x0);
k=k+1;
end
display([k,x]);
display([(-b+sqrt(b^2+4*a))/2,(-b-sqrt(b^2+4*a))/2]);
6.
y=fun(40)/(fun(30)+fun(20))
(1)函数文件fun.m
function f=fun(n)
f=n+log(n^2+5);
(2)函数文件fun.m
function f=fun(n)
a=1:n;
f=sum(a.*(a+1));
第3章
一、思考题
4.
t=0:0.01:1.5;
y=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3)*t+pi/3);
5.
x=-10:0.01:10;
y=linspace(-6,6,size(x,2))
z=x.^3+3*x.*y.^2;
plot3(x,y,z)
6.
x=100:100:400;
y=100:100:400;
z=[636,697,624,478;698,712,630,478;680,674,598,412;662,626,552,334]; [X,Y]=meshgrid(x,y);
mesh(X,Y,z)
二、实验题
1.
(1)x=-10:0.01:10;
plot(x,x-x.^3/3/2)
(2)plot(x,exp(-x.*x/2)/2/pi)
(3)x=-8:0.01:8;
plot(x,sqrt((64-x.*x)/2))
(4)t=0:pi/100:6*pi;
plot(t.*sin(t),t.*cos(t))
2. (1)
x1=linspace(0,1,100);
y1=2*x1-0.5;
t=linspace(0,pi,100);
x=sin(3*t).*cos(t);y=sin(3*t).*sin(t);
plot(x1,y1,'r-',x,y,'b:');
text(0.4,1,'y=2x-0.5');
text(-0.4,0.5,'x=sin(3t)cos(t)');
text(-0.4,0.3,'y=sin(3t)sin(t)');
(2)
subplot(1,2,1);
scatter(x1,y1,10)
title('y=2x-0.5');
subplot(1,2,2);
scatter(x,y,10)
3.
subplot(1,21);
x=1:1:100; y=sin(1./x);
plot(x,y)
subplot(1,2,2);
fplot('sin(1/x)',[1,100])
4.
subplot(2,2,1);
bar(t,y);
subplot(2,2,2);
stairs(t,y);
subplot(2,2,3);
stem(t,y)
subplot(2,2,4);
semilogy(t,y);
5.
theta=linspace(-pi,pi,100);
ro=5.*cos(theta)+4;
polar(theta,ro);
fi=linspace(0,2*pi,100);a=1
r=a.*(1+cos(fi));
polar(fi,r);
6.
t=0:pi/20:2*pi;
x=exp(-t./20).*cos(t);y=exp(-t./20).*sin(t);z=t; plot3(x,y,z);
t=0:0.01:1;
x=t;y=t.^2;z=t.^3;
plot3(x,y,z);
7.
x=-30:0.1:0;y=0:0.1:30;
[x,y]=meshgrid(x,y);
z=10.*sin(sqrt(x.^2+y.^2))./sqrt(1+x.^2+y.^2); meshc(x,y,z);
8.
x=linspace(-3,3,100);y=linspace(-3,3,100);
[x y]=meshgrid(x,y);
fxy=-5./(1+x.^2+y.^2);
i=find(abs(x)<=0.8 & abs(y)<=0.5);
fxy(i)=NaN;
surf(x,y,fxy)
9.
u=linspace(1,10,100);v=linspace(-pi,pi,100);
[u,v]=meshgrid(u,v);
x=3.*u.*sin(v);y=2.*u.*cos(v);z=4*u.^2;
x=3*u.*sin(v);y=2*u.*cos(v);z=4*u.^2;
surf(x,y,z);shading interp;
light('position',[1,0,1]);
10.
t=0:pi/100:2*pi;
y=sin(t);
comet(t,y)
第4章
一、思考题
5.
(1)A=eye(3);
(2)C=100+(200-100)*rand(5,6);
(3)D=1+sqrt(0.2)*randn(1,500);
(4)E=ones(size(A));
(5)A=A+30*eye(size(A));
(6)B=diag(diag(A))
二、实验题
1.
P=pascal(5);H=hilb(5);
Dp=det(P);Dh=det(H);
Kp=cond(P);Kh=cond(H);
P矩阵的性能更好,因为Kp较小
2.
A=[1,-1,2,3;0,9,3,3;7,-5,0,2;23,6,8,3]
B=[3,pi/2,45;32,-76,sqrt(37);5,72,4.5e-4;exp(2),0,97]
A1=diag(A);B1=diag(B);
A2=triu(A);B2=triu(B);
A3=tril(A);B3=tril(B);
rA=rank(A);rB=rank(B);
nA=norm(A);nb=norm(B);
cA=cond(A);cB=cond(B);
3.
A=[31,1,0;-4,-1,0;4,-8,-2];
[V,D]=eig(A);
4.
A=diag([-1,-1,-1,-1],-1)+diag([-1,-1,-1,-1],1)+diag([2,2,2,2,2]) b=[1,0,0,0,0]';
x1=inv(A)*b;
x2=A\b;
[L,U]=lu(A);
x3=U\(L\b);
[Q,R]=qr(a);
[Q,R]=qr(A);
x4=R\(Q\b)
R=chol(A);
x5=R\(R'\b)
5.
B=sparse(A);
x1=inv(B)*b;
x2=B\b;
[L,U]=lu(B);
x3=U\(L\b);
第5章
一、思考题
3.
A=randn(10,5);
mean(A)
std(A)
max(max(A))
min(min(A))
sum(A,2)
sum(sum(A))
sort(A,1)
sort(A,2,'descend')
二、实验题
1.
A=rand(1,30000);
mean(A)
std(A)
max(A)
min(A)
size(find(A>0.5))/size(A)
2.
h=[466,715,950,1422,1635];
w=[7.04,4.28,3.40,2.52,2.13];
hh=[500,900,1500];
ww=interp1(h,w,hh,'spline')
3.
x=linspace(1,10,50);
y=log(x);
f=polyfit(x,y,5);
yy=polyval(f,x);
plot(x,y,'r-',x,yy,'g.')
4.
N=64; % 采样点数
T=5; % 采样时间终点
t=linspace(0,T,N); % 给出N个采样时间ti(I=1:N) x=3*exp(-t); % 求各采样点样本值x
dt=t(2)-t(1); % 采样周期
f=1/dt; % 采样频率(Hz)
X=fft(x); % 计算x的快速傅立叶变换X
F=X(1:N/2+1); % F(k)=X(k)(k=1:N/2+1) f=f*(0:N/2)/N; % 使频率轴f从零开始
plot(f,abs(F),'-*') % 绘制振幅-频率图
xlabel('Frequency');
ylabel('|F(k)|')
5.
(1)p1=[1 2 0 0 7];p2=[1 -2];p3=[1 0 0 5 1];
p12=conv(p1,p2);
p=p12+[zeros(1,size(p12,2)-size(p3,2)),p3];
roots(p)
(2)A=[-1,4,3;2,1,5;0,5,6];
Px=polyval(p,A)
Pxm=polyvalm(p,A)
6.
(1)z=fzero('3*x-sin(x)+1',0)
(2)建立函数文件myfun.m
function F=myfun(X)
x=X(1);
y=X(2);
F(1)=x*x+y*y-9;
F(2)=x+y-1;
在命令窗口中输入以下命令:
x=fsolve(@myfun,[3,0]',optimset('Display','off')) 第6章
一、思考题
2.
fx=inline('1./(1+x.^2)');
[I,n]=quad(fx,-100000,100000,1e-3);
[I,n]=quadl(fx,-100000,100000,1e-3);
x=-100000:0.01:100000;
y=1./(1+x.*x);
trapz(x,y);
3.
(1)fx=inline('-2*y+2*x*x+2*x');
[t,y]=ode23(fx,[0,0.5],1)
(2)fx=inline('y-exp(x)*cos(x)');
[t,y]=ode23(fx,[0,3],1)
二、实验题
1.
for x=1:3
fx=[x,x^2,x^3;1,2*x,3*x;0,2,6*x];
diff(fx)
end
2.
(1)x=0:0.01:1;
y=x.^10+10.^x+1./log10(x);
dy=diff(y)/0.01;
(2)x=0:0.01:1;
y=log(1+x);
dy=diff(y,2)/0.01;
plot(x(1:99),dy)
3.
(1)fx=inline('x.^2.*sqrt(2*x.*x+3)');
quad(fx,1,5)
(2)fx=inline('x./sin(x).^2');
quad(fx,pi/4,pi/3)
(3)fx=inline('abs(cos(x+y))');
dblquad(fx,0,pi,0,pi)
(4)syms x y ;
fx=x*y;
int(int(fx,y^2,y+2),-1,2)
x 的积分区间为【0,2】时
fx=inline('x.*y');
dblquad(fx,0,2,-1,2)
4.
x=0.3:0.2:1.5;
y=[0.3895,0.6598,0.9147,1.1611,1.3971,1.6212,1.8325]; trapz(x,y)
5.
(1)
yp=inline('-(1.2+sin(10*x))*y');
[t,y]=ode23(yp,[0,5],1);
(2)令''3,,21y x y x y x ='==,则可写出原方程的状态方程形式:
1232332
21
sin 31)1(2cos 5cos x t
x x t t t x x x x x +--++='='='
??????????+????????????????
????????+-+-=????????????'''t x x x t t t x x x cos 00)1(2cos 51sin 3110
001
03212321 建立函数文件ztfun.m
function y=ztfun(t,x)
b=[0;0;cos(t)];
y=[0,1,0;0,0,1;-1/(3+sin(t)),-1,5*cos(2*t)/(t+1)^2]*x+b; 解微分方程组
[t,y]=ode23(@ztfun,[0,5],[1;0;2]);
6.
建立函数文件ztfun.m
function yy=ztfun(t,y)
yy=[y(2)*y(3);-y(1)*y(3);-0.51*y(1)*y(2)];
解微分方程组
[t,y]=ode23(@ztfun,[0,5],[0;1;1])
第7章
一、思考题
3.
(1)数值积分
fx=inline('exp(x).*(1+exp(x)).^2');
quad(fx,0,log(2))
符号积分
f=sym('exp(x)*(1+exp(x))^2');
v=int(f,0,log(2));
eval(v)
(2)略
二、实验题
1.
A=sym('[1,2,3;x,y,z;3,2,1]')
rank(A)
inv(A)
det(A)
2.
(1) y=sym('sqrt(x+sqrt(x+sqrt(x)))');
y1=diff(y)
y2=diff(y,'x',2)
(2) syms x y;
fxy=sin(x^2*y)*exp(-x^2-y);
diff(diff(fxy,x),y)
3.
(1) syms x
int(1/(1+x^4))
(2) syms x t
int((-2*x*x+1)/(2*x*x-3*x+1)^2,x,cos(t),exp(2*t)) 4.
syms n x
symsum(1/(2*n+1)/(2*x+1)^(2*n+1),n,0,inf)
symsum(1/(2*n+1)/(2*x+1)^(2*n+1),n,0,5)
5.
(1) syms x
taylor((exp(x)+exp(-x))/2,5,0)
(2) syms a x
taylor(exp(-5*x)*sin(3*x+pi/3),5,a)
6.
(1)x=solve(sym('x^3+a*x+1=0'))
(2)[x y]=solve('sqrt(x^2+y^2)-100=0,3*x+5*y-8=0')
7. 方程转化为: π
21'11't y y y y -=+=???
符号解
[y1,y11]=dsolve('Dy=y1,Dy1+y=1-t^2/pi','y(-2)=5,y1(-2)=5','t') 数值解
编写函数文件ztfun.m
function yy=ztfun(t,y)
yy=[y(2);1-t^2/pi-y(1)];
在命令窗口输入以下命令
[t,y]=ode45(@ztfun,[-2,7],[-5;5]);
t=linspace(-2,7,49)
y2=y
8.
[x,y]=dsolve('Dx=3*x+4*y,Dy=-4*x+3*y','x(0)=0,y(0)=1')
matlab基础与指导应用部分习题问题详解
作业一 4、写出完成下列操作的命令。 (1)将矩阵A第2~5行中第1,3,5列元素赋给矩阵B。>> M=[0:1:48]; >> A=reshape(M,7,7) A = 0 7 14 21 28 35 42 1 8 15 2 2 29 36 43 2 9 16 2 3 30 37 44 3 10 17 2 4 31 38 45 4 11 18 2 5 32 39 46 5 12 19 2 6 33 40 47 6 13 20 2 7 34 41 48 >> B=A(2:5,1:2:5) B = 1 15 29 2 16 30 3 17 31 4 18 32 (2)删除矩阵A的第七行元素。 >> A(7,:)=[] A = 0 7 14 21 28 35 42 1 8 15 2 2 29 36 43 2 9 16 2 3 30 37 44 3 10 17 2 4 31 38 45 4 11 18 2 5 32 39 46 5 12 19 2 6 33 40 4 7 (3)将矩阵A的每个元素值加30。 >> A=A+30 A = 30 37 44 51 58 65 72 31 38 45 52 59 66 73 32 39 46 53 60 67 74
33 40 47 54 61 68 75 34 41 48 55 62 69 76 35 42 49 56 63 70 77 (4求矩阵A的大小和维素。 sizeA = size(A) dA = ndims(A) sizeA = 6 7 dA = 2 (5)将向量t的0元素用机器零来代替。 >> t=[1 2 3 4 0 5]; t = 1 2 3 4 0 5 >> find(t==0) ans = 5 >> t(5)=eps t = 1.0000 2.0000 3.0000 4.0000 0.0000 5.0000 (6)将含有12个元素的向量x转换成3*4矩阵。 >> x=[0:11] x = 0 1 2 3 4 5 6 7 8 9 10 11 >> y=reshape(x,3,4) y =
MATLAB基础及应用实验指导书
MATLAB基础及应用实验指导书
MATLAB基础及应用课程实验指导书 实验一软件环境和基本操作熟悉 一、实验目的 ①熟悉MATLAB 主界面,并学会简单的菜单操作。 ②学会简单的矩阵输入与信号输入。 ③掌握部分绘图函数。 二、实验内容 熟悉MATLAB操作环境,通过简单操作熟悉MATLAB的基本使用方法。 三、实验要求与步骤 1、用户第一次使用MATLAB 时,建议首先在屏幕上键入demo 命令,它将启动MATLAB 的演试程序,用户可在此演示程序中领略MATLAB 所提供的强大的运算与绘图功能。也可以键入help 进行进一步了解。 MATLAB 启动界面如图所示: MATLAB 语言最基本的赋值语句结构为:变量名列表= 表达式。表达式由操作符或其它字符,函数和变量名组成,表达式的结果为一个矩阵,显示在屏幕上,同时输送到一个变量中并存放于工作空间中以备调用。如果变量名和“= ”省略,则ans 变量将自动建立,例如键入:1900/81 ,得到输出结果:ans =23.4568 。 MATLAB 中变量命名的原则要求必须以英文字母开头,文件夹名字中可以
还包括、下划线和数字,不要使用其他的字符,更不要单纯使用数字或者中文名命名,有时在运行MATLAB 中一些莫名的错误可能就是不规范的命名引起的。这种规则包括将来为自己编写的脚本文件、函数文件命名以及为使用的变量命名也应遵循这个规则。 2、用户工作目录和当前目录的建立和设置 1)为管理方便,每个用户在使用MATLAB 前,尽量为自己建立一个专门的工作目录,即“用户目录”,用来存放自己创建应用文件。例如首先打开资源管理器,在E 驱动器下可以根据自己喜好建立一个新文件夹,但应注意:该文件夹必须以英文开头,文件夹名字中可以包括字母、下划线和数字,不要使用其他的字符,更不要单纯使用数字或者中文名命名,有时在运行MATLAB 中一些莫名的错误可能就是不规范的命名引起的,这与MATLAB 中为变量和文件名命名原则是一致的。尽管MATLAB\work 允许用户存放用户文件,但最好把它仅作为临时工作目录来使用。 2)为了用户运行方便,在开始工作前可把用户定义的目录设置为当前目录,方法是可直接在MATLAB 命令窗口桌面上方通过目录设置栏来实现。 3)把自己的工作目录加到MATLAB 搜索路径上,这样可以在任何情况下方便地调用自己的编写文件。MATLAB 工作时,基本搜索过程为:首先在工作空间,即MATLAB 内存中进行检查,看输入的指令是不是变量;如不是,则检查输入指令是不是内建函数(比如sin 函数等);如不是,则在当前目录上,检查是否有与输入指令相同的M 文件存在;如还没有,则在MATLAB 定义的搜索路径其他目录中,检查是否有该M 文件存在。设置方法是通过File 菜单下设置路径对话框进行。 3、熟悉简单的矩阵输入 1)从屏幕上输入矩阵A=[1 2 3 ;4 5 6;7 8 9] 回车 A=[1,2,3;4,5,6;7,8,9] 回车 观察输出结果。 2)试用回车代替分号,观察输出结果。 3)输入size(A) ,观察结果。 4)输入矩阵B=[9,8,7;6,5,4;3,2,1];回车 输入矩阵C=[4,5,6;7,8,9;1,2,3];回车,然后分别键入 A B C 回车观察结果。 5)选择File | new 菜单中的M-file ,输入B=[9,8,7;6,5,4;3,2,1] ;保存为
MATLAB基础及应用论文
题目 : MATLAB 语言多项式计算的分析与概述 摘要 :数值计算在科学研究与工程应用中有着十分广泛的应用,MATLAB 向我们提供 了标准的多项式的常用函数,包括求根、相乘、相除等。这些功能在进行现代数字信号处理与分析时非常有用。本文主要通过示例的形式分析与概述MATLAB 多项式计算的基本内容。 关键词 : 多项式 ;运算 ; 函数 ; 拟合 ; MATLAB 。 一、 引言 : MATLAB 是由MATH WORKS 公司推出的一种面向科学与工程的计算软件。 如今MATLAB 语言发展速度非常快,涉及十分广阔,本文主要讨论MATLAB 多项式的计 算,可谓MATLAB 的冰山一角。读者若要了解MATLAB 语言的更多知识还应多读多看他人著作。 二、 多项式计算 : 1,多项式的创建方法 : 在MATLAB 里:多项式由一个行向量表示,它的系数是按降序排列。 例如: 由1×N 的向量 表示 多项式,如用poly2sym()可以查看这个多项式。 (1)直接输入法 在MATLAB 命令窗口中直接输入多项式的系数矢量,然后利用转换函数poly2sym 将多项式由系数矢量形式转换为符号新式。 (2)指令P=poly(AR)法 若AR 是方阵,多项式P 是该方阵的特征多项式 若AR=[a 1, a 2,…,a n-1,a n ],则AR 的元素认为是多项式P 的根 如果A 为二维矩阵, poly(A)给出A 的特征多项式。如果A 为一维矩阵, poly(A)表示由A 的元素为多项式的根所确定的多项式。 【例1】产生多项式的方法。 clear %方法一(由多项式的系数确定的多项式) p=[1 -2 3]%直接给出多项式p poly2sym(p)%给出p 多项式的表达式 %方法二(由矩阵所确定的多项式) a=[1 2;-2 4] ] ..[210n a a a a p =n n n n n a x a x a x a P ++++=-- (22110)
MATLAB基础及其应用教程周开利邓春晖课后答案
第三章习题及参考答案 解答: >> p=[1 -1 -1]; >> roots(p) ans = -0.6180 1.6180 解答: 取n=5,m=61 >> x=linspace(0,2*pi,5); y=sin(x); >> xi=linspace(0,2*pi,61); >> y0=sin(xi); >> y1=interp1(x,y,xi); >> y2=interp1(x,y,xi,'spline'); >> plot(xi,y0,'o',xi,y1,xi,y2,'-.'); >> subplot(2,1,1); plot(xi,y1-y0);grid on >> subplot(2,1,2); plot(xi,y2-y0);grid on
分段线性和三次样条插值方法与精确值之差取n=11,m=61 >> x=linspace(0,2*pi,11); y=sin(x); >> xi=linspace(0,2*pi,61); >> y0=sin(xi); >> y1=interp1(x,y,xi); >> y2=interp1(x,y,xi,'spline'); >> plot(xi,y0,'o',xi,y1,xi,y2,'-.'); >> subplot(2,1,1); plot(xi,y1-y0);grid on >> subplot(2,1,2); plot(xi,y2-y0);grid on 分段线性和三次样条插值方法与精确值之差
解答: >> x=[0,300,600,1000,1500,2000]; >> y=[0.9689,0.9322,0.8969,0.8519,0.7989,0.7491]; >> xi=0:100:2000; >> y0=1.0332*exp(-(xi+500)/7756); >> y1=interp1(x,y,xi,'spline'); >> p3=polyfit(x,y,3); >> y3=polyval(p3,xi); >> subplot(2,1,1);plot(xi,y0,'o',xi,y1,xi,y3,'-.'); >> subplot(2,1,2);plot(xi,y1-y0,xi,y3-y0);grid on 插值和拟合方法相比较,都合理,误差也相近。 解答: 梯形法积分 >> x=-3:0.01:3;
matlab基础与应用教程答案
8-1建立一个图形窗口,使之背景颜色为红色,并在窗口上保留原有的菜单项,而且在按下鼠标左键之后显示出Left Button Pressed 字样。 本体程序: clc; hf=figure('color','r','windowbuttondownfcn','axis off;text(0.1,0.5,''Left Button Pressed'',''fontsize'',30)') 运行结果: hf = 1 8-3利用图形对象绘制下列曲线,要求先利用默认属性绘制曲线,然后通过图形句柄操作来改变曲线的颜色、线型和线宽,并利用文字对象给曲线添加文字标注。 (1)2)cos(2.0+=-x e y x clc; x=0:5*pi; y=exp(-0.2*x).*cos(x)+2; h=plot(x,y); set(h,'Color',[1,0,0],'LineStyle',':','LineWidth',2);
(2)?????==325t y t x 程序: t=0:2:100; x=t.*t; y=5*t.^3; hf=plot(x,y); set(hf,'color','b','linestyle',':','marker','p','linewidth',0.3);
8-4利用图形对象绘制下列三维图形,要求与上题相同。 (1)?? ???===t z t y t x sin cos 程序: t=0:0.1:2*pi; x=cos(t); y=sin(t); z=t; hf=plot3(x,y,z); 运行结果:
8-5以任意位置子图形式绘制出正弦、余弦、正切和余切函数曲线。clc; x=-2*pi:0.01:2*pi; y1=sin(x); y2=cos(x); axes('Position',[0.1,0.6,0.2,0.2]) plot(x,y1); ht=get(gca,'Title');set(ht,'Color','r');title('y=sin(x)') hc=get(gca,'Children'),set(hc,'Color','b','LineWidth',1.5) axes('Position',[0.6,0.6,0.2,0.2]) plot(x,y2,'r'); ht=get(gca,'Title');set(ht,'Color','r');title('y=cos(x)') axes('Position',[0.1,0.1,0.2,0.2]) fplot('tan(x)',[-1.5,1.5]); ht=get(gca,'Title');set(ht,'Color','r');title('y=tan(x)') axes('Position',[0.6,0.1,0.2,0.2]) fplot('cot(x)',[0,1,3]); ht=get(gca,'Title');set(ht,'Color','r');title('y=cot(x)')
最新Matlab基础及应用的教学大纲资料
《Matlab基础及应用》教学大纲 执笔人:肖顺根课程编号: 总学时数:36学时(其中授课18学时,实验18学时) 学分:2 学分 一、本课程的地位、作用与任务: 本课程是电气工程及自动化专业基础的必修课程。是电气工程及自动化专业的重要实践性课程。通过本课程的学习,可以使得本专业学生掌握Matlab这一现代的科学计算和系统仿真语言的基本编程思想和方法,并利用Matlab对所学基础课程进行上机模拟实验和数值计算,从而通过Matlab编程实验来验证和巩固所学的数学和工程理论。 二、课程教学基本要求 MATLAB是MathWorks公司推出的一套高性能的数值计算和可视化软件,可以解决工程、科学计算和数字信号处理、通信、数学等学科中许多问题。本课程主要介绍MATLAB语言的应用环境、调试命令,各种基本命令和高级操作命令,绘图功能函数,循环和条件分支等控制流语句。课程最后简介MATLAB语言中的几个主要工具箱,为后续的专业课程提供有力的工具。本课程以讲课为主,结合上机实验,使学生通过编程实例掌握MATLAB语言的编程基础与技巧。三、先修课程的要求 《高等数学》、《线性代数》、《自动控制原理》等。 四、教学方法及建议 1、本课程是电气工程及其自动化专业的实践性基础课程,应采用多媒体教学方式,结合Matlab仿真软件进行课堂演示。力求生动有趣,并随时通过提问等方式调动学生的学习积极性。 2、MA TLAB软件在电气工程及自动化专业中的应用非常广泛和实用,应结合《自动控制原理》知识尽可能发挥MATLAB软件的功效。 五、教学要求的层次 了解Matlab 的特点; 理解Matlab 的数值计算、程序设计、绘图功能及在通信工程的科学计算和建模中的应用; 掌握Matlab语言的基本编程思想和方法。 六、教学内容、要求及学时安排 第一单元MATLAB 概述(2学时) 1. Matlab 的特点、绪论 2. Matlab 快速入门 要求:了解MATLAB的主要功能,熟悉MATLAB命令窗口及文件管理,MATLAB帮助系统。掌握命令行的输入及编辑,用户目录及搜索路径的设置。 重点和难点:命令行的输入,用户目录及搜索路径的设置 第二单元MATLAB数据和数值计算(4学时) 1.矩阵的生成 (1)标量的赋值和计算 (2)向量的赋值和计算 (3)矩阵的生成 2.数组运算 (1)数组的加法和减法运算
《matlab基础及其应用教程》笔记
《matlab基础及其应用教程》笔记 前提:已经学过matlab很久了,但是将近半年没有再碰,打算接下去继续学习matlab,并在帮忙增加国内关于matlab资料较少的simmechanics物理建模仿真部分,因此继续开始学matlab,打算重新看基本基础的书回顾一下,并做简单笔记。 plus:括号内是自己加的,自己的经验以及想法等 第一章:基础 1、b='Hi,Miss Black';可以直接用于表示字符串 2、cd可以设置路径;和DOS系统下一样,但是不够直观,推荐直接使用GUI的路径设置 3、clf:清除图像内容;cla:清除坐标内容(GUI会用到);clc,clear 4、lookfor:寻找函数名称;doc:直接打开某个函数的帮助文档(doc quad:打开积分的帮助文档) 第二章:matlab语言基础 1、matlab主要数据类型.pdf(matlab的数据类型,十分重要) 2、&与&&区别:&左右两边都比较;&&只要左边不对,就不进行比较(表示右边有错误也不会管) 3、各种函数比较的最好加上(),以防止因为优先级的问题而被吞 4、线性等分:linspace;对数等分:logspace 5、矩阵标志:①,单下标;②,多下标;③,:表示整行或者整列;④,删除直接使用[]; 6、cat:行/列拼接;reshape:矩阵变换;repmat:行列拼接; 7、一般的函数:matlab函数(自己总结).xls里面有 8、多维数组(三维,图片数组) 第三章:matlab运算 1、polyadd:相加;conv:相乘/卷积;deconv:相除 2、polyval:多项式带入求解;polyvalm:矩阵带入求解 3、roots:多项式求根; 4、poly2sym:多项式转为字符形式;poly:构造多项式 5、interpX:插值与拟合(和《数值计算方法》对应,X不同而采取不同的差值拟合方法) 6、polyfit:生成多项式拟合(偶尔两端会出现Roung现象,使整个设计出现偏差) 7、diff:微分;quad:积分 8、cumsum:积分矩形计算法;trapz:积分梯形计算法;quad:辛普森积分法;quad1:科茨积分法; 9、rref:解矩阵方程 10、jacobi:雅克比迭代法;gseidel:Gauss-Seidel 迭代法; 11、sparse:稀疏矩阵;full:全矩阵;spdiags:对角稀疏矩阵 12、spalloc:分配存储空间(对稀疏矩阵而言) 13、Euler:欧拉法解微分(1:前插;2:后插) 14、ode23:二三阶龙科库塔公式解偏微分;ode45:三四阶龙科库塔公式 第四章:结构数组与细胞数组(感觉暂时用到比较少,所以只是简单浏览了一下) 1、结构数组和C语言的一样,后面加. 2、或者使用struct构建结构数组
MATLAB基础教程 薛山第二版 课后复习题答案
《MATLAB及应用》实验指导书《MATLAB及应用》实验指导书 班级: T1243-7 姓名:柏元强 学号: 20120430724 总评成绩: 汽车工程学院 电测与汽车数字应用中心
目录 实验04051001 MATLAB语言基础 (1) 实验04051002 MATLAB科学计算及绘图 (18) 实验04051003 MATLAB综合实例编程 (31)
实验04051001 MATLAB语言基础 1实验目的 1)熟悉MATLAB的运行环境 2)掌握MATLAB的矩阵和数组的运算 3)掌握MATLAB符号表达式的创建 4)熟悉符号方程的求解 2实验内容 第二章 1.创建double的变量,并进行计算。 (1)a=87,b=190,计算 a+b、a-b、a*b。 clear,clc a=double(87); b=double(190); a+b,a-b,a*b (2)创建 uint8 类型的变量,数值与(1)中相同,进行相同的计算。 clear,clc a=uint8(87); b=uint8(190); a+b,a-b,a*b 2.计算: (1) () sin60o
(2) e3 (3) 3cos 4??π ??? clear,clc a=sind(60) b=exp(3) c=cos(3*pi/4) 3.设2u =,3v =,计算: (1) 4 log uv v (2) () 2 2 e u v v u +- (3) clear,clc u=2;v=3; a=(4*u*v)/log(v) b=((exp(u)+v)^2)/(v^2-u) c=(sqrt(u-3*v))/(u*v) 4.计算如下表达式: (1) ()() 3542i i -+ (2) () sin 28i - clear,clc (3-5*i)*(4+2*i) sin(2-8*i) 5.判断下面语句的运算结果。 (1) 4 < 20 (2) 4 <= 20
MATLAB基础及应用教程
第4章程序设计 在前面我们已经看到,MATLAB不但可以在命令窗直接输入命令并运行,而且还可以生成自己的程序文件,这就是我们通常说的一类以M为后缀的M文件,本章我们就来研究这类文件的形成方法。 M文件可分分为两大类,一是命令式M文件(也称为脚本文件,script),二是函数式M 文件(function)。两类文件的区别在于: (1)命令式文件可以直接运行,函数式文件不能直接运行,只能调用。 (2)命令式文件运行时没有输入输出参量,函数式文件在调用时需要进行输入输出参量设置。 (3)命令式文件运行中可以调用工作空间的数据,运行中产生的所有变量为全局变量。 (4)函数式文件不能调用工作空间的数据,运行中产生的所有变量为局部变量。命令式文件运行中产生的所有变量为全局变量,可以调用和存储到工作空间的数据。 4.1 MATLAB的程序文件-M文件 4.1.1 脚本文件(Scripts) 当我们需要在命令窗进行大量的命令集合运行时,直接从命令窗口输入比较麻烦,这时就可以将这些命令集合存放在一个脚本文件(Scripts)中,运行时只需要输入其文件名就可以自动执行这些命令集合。需要注意的是,脚本文件运行所产生的变量都驻留在MATLAB 的工作空间中,同时脚本文件也可以调用工作空间中的数据。因此,脚本文件所涉及的变量是全局变量。前几章所涉及到的M文件都是这类脚本文件。 编辑一个脚本文件可以直接在命令窗口的左上角打开编辑窗进行编辑。 4.1.2 函数文件(function) 函数式文件(function)的构成 (1)函数定义行: Function [输出参量]=gauss(输入参量) (2): 完成函数的功能。 (3)函数说明。 (4)函数行注。 从上面构成的情况看,函数式文件实际上是完成输入参量与输出参量的转换,这样的转换是由函数文件名为gauss的文件来完成的。函数体的功能必须说明清楚输入参量与输出参量的关系。函数说明是用来解释该函数的功能的,函数行注是对程序行进行说明的。上面(1)和(2)是必须的。 【例4-1】分析下面函数文件。 %一个数列,任意项等于前两项之和,输入项数可以给出这个数列
MATLAB基础与应用教程 习题答案 作者 蔡旭晖 刘卫国 蔡立燕 第1-8章答案
第1章 一、思考题 4. (1) B=A(2:5,1:2:5) (2)A(7)=[] (3) A=A+30 (4)size(A) (5) t(find(t==0))=eps (6)t=reshape(x,3,4) (7)abs('matlab') (8)char(93) 5. A=[97,67,34,10;-78,75,65,5;32,5,-23,-59;0,-12,54,7] (1) B=A(1:3,:) C=A(:,1:2) D=A(2:4,3:4) E=B*C (2)A(find(A>=50 & A<=100)) 二、实验题 =-74/180*pi;y=-27/180*pi; sin(x*x+y*y)/sqrt(tan(abs(x+y)))+pi =::; exp*a).*sin(a+ =[2,4;,5]; log(x+sqrt(1+x.*x))/2 4. A=[3,54,2;34,-45,7;87,90,15];B=[1,-2,67;2,8,74;9,3,0];(1)A*B ans = 129 432 4197 7 -407 -1052
402 591 12489 A.*B ans = 3 -108 134 68 -360 518 783 270 0 (2) A^3 ans = -28917 240246 -4368 137883 -259101 27669 171333 252504 38673 A.^3 ans = 27 157464 8 39304 -91125 343 658503 729000 3375(3)A/B ans = B/A ans = (4)[A,B] ans = 3 5 4 2 1 -2 67
MATLAB基础及其应用教程-周开利-邓春晖课后答案 第七章
1. (1) theta=0:pi/100:2*pi; polar(theta,3*(1-cos(theta))) (点击看大图) (2)t=-3:0.1:3;plot(1.25*exp(-0.25*t)+cos(3*t))
(点击看大图) 2.t=0:0.1:8;plot(1-2*exp(-t).*sin(t));xlabel('Time');ylabel('Amplitude');title('Decaying Ocsillating Exponential')
(点击看大图) 3.x=0:0.1:25;y1=2.6*exp(-0.5*x).*cos(0.6*x)+0.8;y2=1.6*cos(3*x)+sin(x);plot(x,y1,' r--',x,y2)
(点击看大图) 4. x=-3:0.1:3; subplot(1,2,1); y1=sin(2*x).*cos(3*x); plot(x,y1);xlabel('x'); ylabel('y'); title('y=sin2xcos3x'); subplot(1,2,2); y2=0.4*x; plot(x,y2); xlabel('x'); ylabel('y'); title('y=0.4x')
(点击看大图) 5. ezmesh('1/((x+1)^2+(y+1)^2+1)-1/((x-1)^2+(y-1)^2+1)',[-3,3])
(点击看大图) 6. subplot(1,2,1); ezmesh('3*sqrt(1-x*x/25-y*y/16)',[-15,15]); subplot(1,2,2); ezmesh('3*sqrt(1+x*x/25-y*y/16)',[-15,15])
MATLAB基础及其应用教程-周开利-邓春晖课后答案 第六章
第6章习题解答 1. 在命令窗口中输入,一次只能执行一行命令,脚本文件是命令的集中,只需输入脚本文件名,就可以按顺序一次执行所有命令。 2.脚本文件是命令的集中,只需输入脚本文件名,就可以一次执行所有命令,没有输入参数,没有输出参数。文件名可任意取,只需符合变量的定义要求即可。脚本文件中生成的变量是全局变量。 函数文件可以接受参数,也可以返回参数,一般需要由其他语句调用。首行语句必须以function开始,有函数名,文件名必须与函数名一致。函数空间中生成的变量是局部变量。 3. function result=project1(year) if mod(year,400)==0 || (mod(year,4)==0 && mod(year,100)~=0) result='是闰年'; else result='不是闰年'; end 4. function min=comp(x1,x2) min=x1; if x1>x2 min=x2; end 5. (1)在命令窗口输入:k=0;for i=-1000:1000;k=k+1;end;k 即可得出:2001步。 (2)方法同上,10步 6. (1)循环进行的条件是var不是10的倍数,循环结束时,var必是10的倍数,即10 (2)每次循环的结果是:4,16,256,此时,不满足循环条件而退出循环,即var为256 (3)循环条件是var>100,而var的值为3,不满足条件,循环不执行,所以var值不变。 7. 方法1: clear; A=[1 2 3;4 5 6]; fid=fopen('c:\a1.txt','wt'); fprintf(fid,'%d ',A(1,:)); fprintf(fid,'\n'); fprintf(fid,'%d ',A(2,:)); fclose(fid);
MATLAB基础及其应用教程-周开利-邓春晖课后标准答案
MATLAB基础及其应用教程-周开利-邓春晖课后答案
————————————————————————————————作者:————————————————————————————————日期:
第三章习题及参考答案 解答: >> p=[1 -1 -1]; >> roots(p) ans = -0.6180 1.6180 解答: 取n=5,m=61 >> x=linspace(0,2*pi,5); y=sin(x); >> xi=linspace(0,2*pi,61); >> y0=sin(xi); >> y1=interp1(x,y,xi); >> y2=interp1(x,y,xi,'spline'); >> plot(xi,y0,'o',xi,y1,xi,y2,'-.'); >> subplot(2,1,1); plot(xi,y1-y0);grid on >> subplot(2,1,2); plot(xi,y2-y0);grid on
分段线性和三次样条插值方法与精确值之差取n=11,m=61 >> x=linspace(0,2*pi,11); y=sin(x); >> xi=linspace(0,2*pi,61); >> y0=sin(xi); >> y1=interp1(x,y,xi); >> y2=interp1(x,y,xi,'spline'); >> plot(xi,y0,'o',xi,y1,xi,y2,'-.'); >> subplot(2,1,1); plot(xi,y1-y0);grid on >> subplot(2,1,2); plot(xi,y2-y0);grid on 分段线性和三次样条插值方法与精确值之差
MATLAB基础及其应用教程-周开利-邓春晖课后答案
第三章 习题及参考答案 解答: >> p=[1 -1 -1]; >> roots(p) ans = -0.6180 1.6180 解答: 取n=5,m=61 >> x=linspace(0,2*pi,5); y=sin(x); >> xi=linspace(0,2*pi,61); >> y0=sin(xi); >> y1=interp1(x,y,xi); >> y2=interp1(x,y,xi,'spline'); >> plot(xi,y0,'o',xi,y1,xi,y2,'-.'); 01234567 -1.5 -1 -0.5 0.5 1 1.5 >> subplot(2,1,1); plot(xi,y1-y0);grid on >> subplot(2,1,2); plot(xi,y2-y0);grid on
1 2 3 4 5 6 7 -0.4 -0.200.20.4 1 2 3 4 5 6 7 -0.2 -0.100.10.2 分段线性和三次样条插值方法与精确值之差 取n=11,m=61 >> x=linspace(0,2*pi,11); y=sin(x); >> xi=linspace(0,2*pi,61); >> y0=sin(xi); >> y1=interp1(x,y,xi); >> y2=interp1(x,y,xi,'spline'); >> plot(xi,y0,'o',xi,y1,xi,y2,'-.'); 01234567 -1 -0.5 0.5 1 >> subplot(2,1,1); plot(xi,y1-y0);grid on >> subplot(2,1,2); plot(xi,y2-y0);grid on 01234567 -0.05 0.05 01234567 -0.05 0.05 分段线性和三次样条插值方法与精确值之差