admin 管理员组文章数量: 1086019
2024年3月29日发(作者:数组相对排序java)
Matlab例题汇总:
【例2-4】两个矩阵分别为[1 2 3;4 5 6;7 8 9]和[1 1 1;2 2 2;3 3
3],求两者相加的和。
a=[1 2 3;4 5 6;7 8 9];
b=[1 1 1;2 2 2;3 3 3];
c=a+b
【例2-5】两个矩阵分别为[1 2 3;4 5 6;7 8 9]和[1 1 1],阶数
不同, 求两者相减的差。
a=[1 2 3;4 5 6;7 8 9];
b=[1 1 1];
c=a-b
【例2-6】两个矩阵相乘,矩阵a为 ,矩阵b为,分别计算
c=a*b和d=b*a。
a=[1 2 3;4 5 6;7 8 9];
b=[1 2 3];
c=a*b
% 将第三句c=a*b改成d=b*a,再运行一次
% 【例2-7】两个数组相乘,数组a为 ,数组b为 ,求两
数组的乘法。
% 在命令窗口输入两数组,计算c=a.*b:
a=[1 2 3];
b=[4 5 6];
c=a.*b
% 【例2-8】两个矩阵相除,矩阵a和b均为3×3阶矩阵。
a=rand(3)
b=rand(3)
c=a/b
d=ba
% 【例2-9】数组a为 ,数组b为 ,求两数组的除法。
a=[1 2 3];
b=[4 5 6];
c=a.b
c=b./a
% 【例2-10】矩阵a为[1 2;3 4],求它的1.5次幂。
a=[1 2;3 4];
c=a^1.5
% 【例2-11】数组a为[1 2 3],数组b为[4 5 6],求数组的
幂c=a.^b。
a=[1 2 3];
b=[4 5 6];
c=a.^b
% 【例2-12】数组a为[1 2 3],求数组的幂c=a.^2。
a=[1 2 3];
c=a.^2
% 【例2-13】数组a为[1 2 3],求数组的幂运算c=2.^a。
a=[1 2 3];
c=2.^a
% 【例2-14】矩阵a为[1 2 3;4 5 6;7 8 9],计算a的转置。
a=[1 2 3;4 5 6;7 8 9];
c=a'
% 【例2-15】矩阵a为[1+2i 3+4i],计算a的转置。
a=[1+2i 3+4i];
c=a'
c=a.'
% 【例2-16】矩阵a和b均为1×3阶矩阵,使用关系运算
符对对应元素进行比较。
a=[0 -1 2];
b=[-3 1 2];
a
a<=b
a>b
a>=b
a==b
a~=b
% 【例2-17】矩阵a和b均为2×3阶矩阵,使用逻辑运算
符计算对应元素。
a=[1 0 3;0 -1 6];
b=[-1 0 0;0 5 0.3];
a&b
a|b
~a
~b
% 【例2-18】矩阵a为[1 2 3;4 5 6;7 8 9],计算a的特征值
和特征矢量。
a=[1 2 3;4 5 6;7 8 9];
[c,d]=eig(a)
% 【例2-19】矩阵a为[1 2 3;4 5 6;7 8 9],计算a的逆矩阵
和伪逆矩阵。
a=[1 2 3;4 5 6;7 8 9];
c=inv(a)
c=pinv(a)
% 【例2-20】矩阵a为[1 2 3;4 5 6;7 8 9],矩阵b为[-2 1 3;1
4 -2;2 -1 2],
% 计算a和b的广义特征值分解。
a=[1 2 3;4 5 6;7 8 9];
b=[-2 1 3;1 4 -2;2 -1 2];
[v,d]=eig(a,b)
%【例2-21】矩阵a为[1 1],对矩阵a进行奇异值分解。
a=[1 1];
[u,s,v]=svd(a)
% 【例2-22】矩阵a为[1 2 3;4 5 6;7 8 9],求a的LU分解。
a=[1 2 3;4 5 6;7 8 9];
[l,u]=lu(a)
% 【例2-23】矩阵a为4阶pascal矩阵,求a的Chollesky
分解。
a=pascal(4)
c=chol(a)
% 【例2-24】矩阵a为4阶pascal矩阵,求a的QR分解。
a=pascal(4)
[q,r]=qr(a)
% 【例2-25】矩阵a为4阶pascal矩阵,将其重新排列为
1×16阶的一维矢量
% 和2×4×2阶的三维数组。
a=pascal(4)
c=reshape(a,1,16)
c=reshape(a,2,4,2)
% 【例2-26】矩阵a为4阶pascal矩阵,分别将其左右翻
转、上下翻转和旋转。
a=pascal(4)
c=fliplr(a)
c=flipud(a)
c=rot90(a)
% 【例2-27】矩阵a为4阶pascal矩阵,分别抽取其对角
线元素、创建对角
% 矩阵、抽取上三角矩阵和下三角矩阵。
a=pascal(4)
c=diag(a,1)
b=diag(c,1)
c=tril(a)
c=triu(a,-1)
%【例3-1】输入系数矢量,创建多项式x^3-4*x^2+3*x+2。
poly2sym([1 -4 3 2])
%【例3-1】输入系数矢量,创建多项式x^3-4*x^2+3*x+2。
poly2sym([1 -4 3 2])
% 【例3-3】根据根矢量[-0.5 -0.3+0.4i -0.3-0.4i],创建多项
式。
r=[-0.5 -0.3+0.4i -0.3-0.4i];
p=poly(r)
pr=real(p)
ppr=poly2sym(pr)
% 【例3-4】求多项式3x^2+2x+1在5、7和9处的值。
p = [3 2 1];
polyval(p,[5 7 9])
% 【例3-5】求多项式3x^2+2x+1对于矩阵[2 5;7 9]的值。
p = [3 2 1];
polyvalm(p,[2 5;7 9])
% 【例3-6】分别用两种方法求多项式
x^5-5x^4+3x-6x2+4x-10的根。
a=[1 -5 3 -6 4 -10];
r=roots(a)
s=compan(a)
r=eig(s)
% 【例3-7】计算两多项式x^4-5x^3+3x^2-4x+2和
x^3+2x^2-5x+3的乘法。
a=[1 -5 3 -4 2];
b=[1 2 -5 3];
c=conv(a,b)
% 【例3-8】计算例3-7中求得的乘积被x^3+2x^2-5x+3除
所得结果。
c=[1 -3 -12 30 -36 33 -22 6];
b=[1 2 -5 3];
d=deconv(c,b)
% 【例3-9】计算多项式3x^4-5x^3+2x^2-6x+10的微分。
p=[3 -5 2 -6 10];
polyder(p)
poly2sym(ans)
% 【例3-10】计算多项式12x^3-15x^2+4x-6的积分。
p=[12 -15 4 -6];
polyint(p)
% b(x) 5x^3+3x^2-2x+7
% 【例3-11】两多项式的比为—— = ——————— ,
求部分分式展开。
% a(x) -4x^3+8x+3
a = [-4 0 8 3];
b = [ 5 3 -2 7];
[r, p, k] = residue(b,a)
% 【例3-12】 利用在例3-11中求得的部分分式展开结果转
换回多项式表达式b(x)
% 和a(x)的系数。
[b,a] = residue(r,p,k)
% 【例3-13】 求误差函数的6阶拟合多项式。
x = (0: 0.1: 2.5)'; % 生成0至2.5间隔为
0.1的自变量
y = erf(x); % 计算误差函数
p = polyfit(x,y,6) % 求6阶拟合多项式
x = (0: 0.1: 5)'; % 生成0至5间隔为
- 1 -
0.1的自变量
y = erf(x); % 计算误差函数
f = polyval(p,x); % 计算拟合函数的值
plot(x,y,'o',x,f,'-') % 绘图函数
axis([0 5 0 2])
% 【例3-14】 a为方阵,b为矢量,求方阵系统的根。
a=fix(15*rand(3,3))
b=fix(15*rand(3,1))
x=ab
% 【例3-15】 a和b均为方阵,求方阵系统的根。
a=fix(15*rand(3,3))
b=fix(15*rand(3,3))
x=ab
% 【例3-16】求表中数据的最小二乘解。
% -----------------------------------------
% t | 0 0.3 0.8 1.1 1.6 2.3
% ---+-------------------------------------
% y | 0.82 0.72 0.63 0.60 0.55 0.50
% -----------------------------------------
t=[0 0.3 0.8 1.1 1.6 2.3]';
y=[0.82 0.72 0.63 0.60 0.55 0.50]';
e=[ones(size(t)) exp(-t)]
c=ey
t1=[0:0.1:2.5]';
y1=[ones(size(t1)),exp(-t1)]*c;
plot(t1,y1,t,y,'ro')
% 【例3-17】求解欠定系统。
a=fix(15*rand(3,3))
b=fix(15*rand(3,1))
p=ab
% 【例3-18】使用两种方法求解欠定系统。
a=[1 1 1;1 1 -1]
b=[10 6]'
p=ab
q=pinv(a)*b
% 【例3-19】基本统计函数的应用。
A=randn(100,4);
Amax=max(A)
Amed=median(A)
Amean=mean(A)
Astd=std(A)
% 【例3-20】计算协方差和相关系数矩阵。
x=rand(10,3);
y=rand(10,3);
cx=cov(x)
cy=cov(y)
cxy=cov(x,y)
px=corrcoef(x)
pxy= corrcoef(x,y)
% 【例3-26】三维插值实例。
[x,y,z,v] = flow(10);
slice(x,y,z,v,[6 9.5],2,[-2 .2])
[xi,yi,zi] = meshgrid(.1:.25:10, -3:.25:3, -3:.25:3);
vi = interp3(x,y,z,v,xi,yi,zi);
figure,slice(xi,yi,zi,vi,[6 9.5],2,[-2 .2]);
shading flat
% 【例3-21】计算三维数组的差分。
a=rand(3,3,2)
diff(a)
diff(a,2)
diff(a,3)
diff(a,4)
diff(a,5)
diff(a,6)
% 【例3-22】计算表达式xe^(-x.^2 - y.^2)的梯度。
v = -2:0.2:2; % 生成-2到2间
隔为0.2的自变量
[x,y] = meshgrid(v); % 产生数据网格
z = x .* exp(-x.^2 - y.^2); % 计算z
[px,py] = gradient(z,.2,.2); % 求二维梯度
contour(x,y,z) % 绘制等高线
hold on % 保持绘图
quiver(x,y,px,py) % 绘制矢量图
hold off
% 【例3-23】一维插值函数插值方法的对比。
x=0:10;
y=sin(x);
xi=0:.25:10;% 将插值方法定义为单元数组
strmod={'nearest','linear','spline','cubic'}
% 将X轴标识定义为单元数组
strlb={'(a) method=nearest', '(b) method=linear',...
'(c) method=spline', '(d) method=cubic'};
for i=1:4
yi=interp1(x,y,xi,strmod{i});
subplot(2,2,i),plot(x,y,'ro',xi,yi,'b') % 在一个图形窗
口绘制多幅图形
xlabel(strlb(i))
end
% 【例3-24】三次样条插值。
x0=0:10;
y0=sin(x0);
x=0:.25:10;
y=spline(x0,y0,x);
plot(x0,y0,'or',x,y,'k')
% 【例3-25】二维插值四种方法的对比。
[x,y,z]=peaks(7); % 生成双峰函数
值
mesh(x,y,z) % 绘制网格图
f=x^n f=x*log(1+x);
diff(f) int(f,0,1)
diff(f,n)
% 10 2 ∞ x^k
% 【例4-6】查询符号函数中的默认自变量。
% 【例4-19】分别计算表达式∑k 、∑ k 和 ∑ ---- 。
syms a b n t x
% 0 k=0 k!
f=a*x^n+b*t
syms k x
findsym(f,1)
symsum(k)
findsym(f,2)
symsum(k^2,0,10)
findsym(f,5)
symsum(x^k/sym('k!'), k, 0,inf)
findsym(f)
% 1
[xi,yi]=meshgrid(-3:0.2:3,-3:0.2:3); % 生成供插值的数据
网格
z1=interp2(x,y,z,xi,yi,'nearest');
z2=interp2(x,y,z,xi,yi,'linear');
z3=interp2(x,y,z,xi,yi,'spline');
z4=interp2(x,y,z,xi,yi,'cubic');
figure,mesh(xi,yi,z1) % 绘制邻近点方法插值
结果的网格图
figure,mesh(xi,yi,z2) % 绘制双线性方法插值
结果的网格图
figure,mesh(xi,yi,z3) % 绘制三次样条方法插
值结果网格图
figure,mesh(xi,yi,z4) % 绘制二重立方方法插
值结果网格图
% 【例3-27】产生一个正弦衰减曲线,进行快速傅里叶变
换,并画出幅值图、
% 相位图、实部图和虚部图。
tp=0:2048; % 时域
数据点数N
yt=sin(0.08*pi*tp).*exp(-tp/80); % 生成正弦
衰减曲线
t=0:800/2048:800; % 频域点
数Nf
f=0:1.25:1000;
yf=fft(yt); % 快速傅
里叶变换
ya=abs(yf(1:801)); % 幅值
yp=angle(yf(1:801))*180/pi; % 相位
yr=real(yf(1:801)); % 实部
yi=imag(yf(1:801)); % 虚部
plot(tp,yt), axis([0,200,-1,1]) % 绘制正弦衰减
曲线
figure, plot(f,ya), axis([0,200,0,60]) % 绘制FFT幅值
曲线
figure, plot(f,yp), axis([0,200,-200,10]) % 绘制FFT相位
曲线
figure, plot(f,yr), axis([0,200,-40,40]) % 绘制FFT实部
曲线
figure, plot(f,yi), axis([0,200,-60,10]) % 绘制FFT虚部
曲线
% 【例3-28】比较快速傅里叶变换的长度与运算速度的关
系。
% 创建70000′1阶的随机矢量x,取快速傅里叶变换的长
度分别为质数65539、
% 2的16次方65536、两个合数66000和65535,分别计算
使用这些长度计算fft
% 所占用的cpu时间:
x=rand(70000,1);
isprime(65539) % 判断
65539是否为质数
2^16 % 计算
2的16次方
factor(66000) % 计算
66000的因数分解
factor(65535) % 计算
65535的因数分解
t=cputime;y=fft(x,65539);e=cputime-t
t=cputime;y=fft(x,65536);e=cputime-t
t=cputime;y=fft(x,66000);e=cputime-t
t=cputime;y=fft(x,65535);e=cputime-t
% 【例4-1】使用sym函数创建符号变量。
a=sym('a')
b=sym('hello')
c=sym('(1+sqrt(5))/2')
y=sym('x^3+5*x^2+12*x+20')
% 【例4-2】使用syms函数创建符号变量。
syms a b c d
% 【例4-3】创建一个循环矩阵。
syms a b c d
n=[a b c d;b c d a;c d a b;d a b c]
% 【例4-4】将3阶Hilbert矩阵转换为符号矩阵。
h=hilb(3)
h1=sym(h)
% 【例4-5】求符号函数在不同自变量情况下的结果。
syms x n
% 【例4-7】对表达式 进行因式分解。
syms x
f=factor(x^9-1)
pretty(f)
% 【例4-8】对大整数123456789进行因式分
解。
factor(sym('123456789'))
% 【例4-9】展开表达式f=(x+1)^5和f=sin(x+y)。
syms x y
f=(x+1)^5;
expand(f)
f=sin(x+y);
expand(f)
% 【例4-10】对于表达式f=x*(x*(x-6)+12)*t,分别将自变
量x和t的同类项合并。
syms x t
f=x*(x*(x-6)+12)*t;
collect(f)
collect(f,t)
% 【例4-11】对表达式f=sin(x)^2+cos(x)^2进行化简。
syms x
f=sin(x)^2+cos(x)^2;
simplify(f)
% x y
% 【例4-12】对表达式f=--- + ---进行通分。
% y x
syms x y
f=x/y+y/x;
[n,d]=numden(f)
% 【例4-13】对表达式f=x^3+6*x^2+11*x-6进行嵌套形式
重写。
syms x
f=x^3+6*x^2+11*x-6;
horner(f)
% 【例4-14】求解并化简三次方程x^3+a*x+1=0的符号解。
t = solve('x^3+a*x+1 = 0')
[r,s] = subexpr(t,'s')
% 【例4-15】分别用新变量替换表达式a+b和cos(a)+sin(b)
中变量。
syms a b
subs(a+b,a,4)
subs(cos(a)+sin(b),{a,b},{sym('alpha'),2})
% sin(x) 1
1
% 【例4-16】分别计算表达式lim ------ 、lim --- 、lim ---
及
% x-0 x x-0+ x
x-0- x
% 1 x -x
% lim (1+---) 和lim e 的极限。
% x-∞- x x-0-
syms x a;
limit(sin(x)/x)
limit(1/x,x,0,'right')
limit(1/x,x,0,'left')
v = [(1 + a/x)^x, exp(-x)];
limit(v,x,inf,'left')
% 【例4-17】分别求分别计算表达式f=x^x的导数和3次
导数。
syms x;
f=x^x;
diff(f)
diff(f,3)
% -2x x
x
% 【例4-18】分别计算表达式∫---------dx 、∫-------dx 、
∫-------dz
% (1+x^2)^2 (1+z)^2
(1+z)^2
% 1
% 和∫xlog(1+x)dx 。
% 0
syms x z;
f=-2*x/(1+x^2)^2;
int(f)
f=x/(1+z^2);
int(f)
int(f,z)
- 2 -
xsin(x)
% 【例4-20】分别计算表达式f=--------的5阶Taylor级数
展开式和f=e 的
% 5+cos(x)
% 5阶及12阶Taylor级数展开式。
syms x
f=1/(5+cos(x));
r=taylor(f)
f=exp(x*sin(x));
r=taylor(f)
r=taylor(f,12)
% 【例4-21】分别求解代数方程ax^2+bx+c和
cos(2x)+sin(x)=1。
syms a b c x
s=a*x^2+b*x+c;
solve(s)
solve('cos(2*x)+sin(x)=1')
% x^2-y^2+z=10
% 【例4-22】求解代数方程组{ x+y-5z=0 。
% 2x-4y+z=0
syms x y z
f=x^2-y^2+z-10;
g=x+y-5*z;
h=2*x-4*y+z;
[x,y,z]=solve(f,g,h)
S=solve(f,g,h);
[S.x,S.y,S.z]
% dx
% 【例4-23】求微分方程----=ay 的通解和当y(0)=b时的特
解。
% dy
dsolve('Dy = a*y')
dsolve('Dy = a*y', 'y(0) = b')
% d2x 2 dy π
%【例4-24】求微分方程-----=-a y 当y(0)=1及---(--)=0时的
特解。
% dx2 dt a
dsolve('D2y = -a^2*y', 'y(0) = 1', 'Dy(pi/a) = 0')
% 【例4-25】绘制函数表达式x^2-y^4的二维图形。
syms x y
ezplot(x^2-y^4)
% 2 x -t^2
% 【例4-26】绘制误差函数f(x)=----∫ e 的二维图形。
% √π 0
syms x
ezplot(erf(x))
grid
%【例4-27】在极坐标下绘制函数表达式1+cos(t)的二维图
形。
syms t
ezpolar(1+cos(t))
%【例4-27】在极坐标下绘制函数表达式1+cos(t)的二维图
形。
syms t
ezpolar(1+cos(t))
% 【例4-29】根据表达式
% 2 -(x^2)-(y+1)^2 x 3 5
-x^2-y^2 1 -(x+1)^2-y^2
% f = 3(1-x) e -10( --- - x - y ) e -
--- e ,
% 5
3
% 绘制f的等高线。
syms x y
f =3*(1-x)^2*exp(-(x^2)-(y+1)^2)-10*(x/5-x^3-y^5)...
*exp(-x^2-y^2)-1/3*exp(-(x+1)^2- y^2);
ezcontour(f,[-3,3],49)
% 【例4-30】根据表达式
% 2 -(x^2)-(y+1)^2 x 3 5
-x^2-y^2 1 -(x+1)^2-y^2
% f = 3(1-x) e -10( --- - x - y ) e -
--- e ,
% 5
3
% 绘制f的的填充等高线。
syms x y
f =3*(1-x)^2*exp(-(x^2)-(y+1)^2)-10*(x/5-x^3-y^5)...
*exp(-x^2-y^2)-1/3*exp(-(x+1)^2- y^2);
ezcontourf(f,[-3,3],49)
% -x^2-y^2
版权声明:本文标题:Matlab例题汇总 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1711688616a605723.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论