MATLAB简介
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.6 块操作
tril(A) tril(A,k) triu(A) triu(A,k) A(2,:) A(:,[3,4]) %求矩阵A的下三角阵 %求矩阵A的第k条对角线以下的元素 %求矩阵A的上三角阵 %求矩阵A的第k条对角线以上的元素 %取A的第二行 %取A的第三、四列
A([1,3],[2,3])%取A的第1,3行与2,3列交叉的元素
根据数据点(0.5,1.75),(1,2.45),(1.5,3.81),(2,4.8),(2.5,7),(3,8.6)拟合二 次多项式,并比较拟合效果; 插值求出x=1.75时y=? 程序如下: x=0.5:0.5:3; %给出数据点x的值 y=[1.75,2.45,3.81,4.8,7,8.6]; %给出数据点y的值 p=polyfit(x,y,2); %求出2次拟和多项式的系数 f=poly2sym(p) %显示所拟合得到的多项式 x1=0.5:0.05:3; %给出x在0.5~3之间的离散值 y1=polyval(p,x1); %求出f在x1上的值 plot(x,y,'r*',x1,y1,'b-') %比较拟合曲线效 y=interp1(x,y,1.75) %一维线性插值
1.7 矩阵分解
[L,U]=lu(A) % 将方阵A分解为交换下三角矩阵L和上三角矩阵U,使 A=LU [L,U,P]=lu(A) %将方阵A分解为下三角矩阵L和上三角矩阵U,使 PA=LU [Q,R]=qr(A) %求一个正交矩阵Q和一个上三角矩阵R,使A=Q*R [S,V,D]=svd(A) %求矩阵A的奇异值分解 R=chol(A) % %求矩阵A的cholesky分解,A= R'*R A cholesky A Schur(A) %求矩阵A的schur分解 Hess(A) %求矩阵A的Hessenberg分解 Orth(A) %求矩阵A的行向量的标准正交基
ቤተ መጻሕፍቲ ባይዱ
计算 ∫ 0 计算 计算
2
3x2 dx 3 2 x 2x + 3 ,
2 x2
∫
3x2 dx 3 2 x 2x + 3
∫e
0
7 3
dx
y ( + xey )dxdy , ∫5 ∫1 six
∫
1
1
dy∫
1 y2
1 y
e sin( x2 + y)dx 2
x2 2
程序为:
fun=inline('3*x.^2./(x.^3-2*x.^2+3)'); quad(fun,0,2) 或者:syms x int(3*x*2/(x^3-2*x^2+3),0,2) int(3*x*2/(x^3-2*x^2+3)) syms x quad('exp(x.^2)',0,2) dblquad('y./sin(x)+x.*exp(y)',1,3,5,7) syms x y int(int(exp(x^2/2)*sin(x^2+y),x,-sqrt(1-y^2),sqrt(1-y^2)),y,-1,1)
用不同线型和颜色在同一坐标内绘制曲线y=2e-0.5xsin(2πx)及其包 络线。
程序如下: x=(0:pi/100:2*pi)'; y1=2*exp(-0.5*x)*[1,-1]; y2=2*exp(-0.5*x).*sin(2*pi*x); x1=(0:12)/2; y3=2*exp(-0.5*x1).*sin(2*pi*x1); plot(x,y1,'g:',x,y2,'b--',x1,y3,'rp');
MATLB的可扩展性
MATLB的可扩展性是指其灵活高效的编程功能可方便的编程求解 实际问题,也可以建立自己的函数库来丰富其功能。如: 解决货郎担问题 扩展求两向量的方向余弦 建立一个函数文件direct.m: function f=f(v) r=norm(v); if r==0 f=0 else f=[v(1)/r,v(2)/r,v(3)/r]; end return
1.4 翻转、旋转操作 翻转、
rot90(A,k) %将矩阵A旋转逆时针90的k倍 fliplr(A) %对矩阵A实施左右翻转 flipud(A) %对矩阵A实施上下翻转
1.5范数与条件数
norm(V,2) %计算矩阵V的2—范数 V 2— norm(V,1) %计算矩阵V的1—范数 norm(V,inf) % 计算矩阵V的∞—范数 norm(V,‘fro’)%计算矩阵V的Frobenius范数 cond(A,1) % 计算A的1—范数下的条件数 cond(A)或cond(A,2) % 计算A的2—范数数下的条件数 cond(A,inf) %计算A的 ∞—范数下的条件数
MATLB的功能演示
用克莱姆(Cramer)方法求解线性方程组: 程序如下: (展示矩阵块操作)
2 4 8 3
2 1 1 4 6 3 1 2 X = 12 5 3 4 3 2 2 6
D=[2,2,-1,1;4,3,-1,2;8,5,-3,4;3,3,-2,2]; %定义系数矩阵 b=[4;6;12;6]; %定义常数项向量 D1=[b,D(:,2:4)]; %用方程组的右端向量置换D的第1列 D2=[D(:,1:1),b,D(:,3:4)]; %用方程组的右端向量置换D的第2列 D3=[D(:,1:2),b,D(:,4:4)]; %用方程组的右端向量置换D的第3列 D4=[D(:,1:3),b]; %用方程组的右端向量置换D的第4列 DD=det(D); x1=det(D1)/DD; x2=det(D2)/DD; x3=det(D3)/DD; x4=det(D4)/DD; [x1,x2,x3,x4]
创建: SM=sparse(I,J,K,m,n,nzmax) %用矩阵[I,S,J]的行创建m行n列矩阵,S是 按列排列的所有非零元素构成的向量,I,J分别为其行下标和列下标, nzmax用来为非零元素指定存储空间的正整数; SM=spdiags(B,d,m,n) %创建稀疏m行n列带状矩阵,d是长度为p的整数向 量,指定矩阵对角线位置,B给出对角线位置的元素。 speye() %稀疏单位阵 sprandn() %稀疏随机矩阵 spandsym() %随机对称矩阵 SM=spconvert(T) %将外部数据转换为随机矩阵,T为外部数据,用load 装载于内存空间; 运算规则 MATLAB的各种命令都可以运用于稀疏矩阵的运算,
求函数 f (x) = sin( x) g( y) = e 的复合函数 和 求极限 2 2 2 的二阶导数。 求 f (x, y, z) = x + y + z 对x的二阶导数。 的二阶导数
y
;
程序: 程序: syms x y f=sin(x); g=exp(y); compose(f,g ) syms x t h limit((1+2*t/x)^(3*x),x,inf) limit(1/x,x,0,'right') limit(1/x,x,0,'left') limit((sin(x+h)-sin(x))/h,h,0) syms x y z a f=x^2+y^2+z^2-a^2; diff(f,x,2)
1.8 矩阵的特殊运算 1 A^p %计算 Ap = WDpW 1 ,其中 A =WDW , 为对角阵
pd11 d11 1 A W 1 W ,其中 A = W p = W dnn pdnn
p^A
%计算
A.^p %对矩阵中每一个元素求p次方,结果按原序组成矩阵 p.^A %对矩阵中的每个元素作p的该次方,结果按原序组成矩阵
1.3 基本运算操作
A‘ %A的转置 det(A) %求方阵A所对应的行列式的值 rank(A) %求矩阵A的秩 inv(A) %求矩阵A的逆 pinv(A) %求A的伪逆 [V,D]=eig(A) %求矩阵A的全部特征值,构成对角阵D, 并求A的特征向 量构成V的列向量 trace(A) %求矩阵A的迹 diag(A) diag(A,k) diag(V) A+B A*B A\B A/B A^2 rref null(A,'r') %提取矩阵A主对角线元素生成一个列向量 %提取第k条对角线的元素 %生成一个以向量V的元素对角线元素的对角阵 %A与B的和 %A与B的积(注意与A.*B 比较) %左除( 与A.\B比较 ) %右除(与A./B 比较) % A*A (与A.^2比较 ) %化行最简 %求Ax=0的基础解系
因式分解: a sin 求
2
x (2a2 a +1) sin x + 2a 1
∑sin kπ
k =0
n
化简: 3 1 + 6 + 12 + 8 x3 x2 x 程序如下: syms a x factor(a*(sin(x))^2-(2*a^2-a+1)*sin(x)+2*a-1) syms k n symsum(sin(k*pi),k,1,n) syms x f=simple((1/x^3+6/x^2+12/x+8)^(1/3)) simple(f)
1.9 稀疏矩阵
稀疏矩阵及其算法不存储那些0元素,也不对它们进行操作,从 而节省了内存和时间的开销。 存储方式: 对于每列用一个数组记述非零元素值,在用整数数组记述相 应非零元素的行下标; SM=sparse(M) FM=full(A) %将矩阵存储方式由任何形式转为稀疏存储; %将矩阵存储方式转变为全元素形式;
用三维曲面图表现函数z=sin(y)cos(x)。 程序1: 程序 : x=0:0.1:2*pi;[x,y]=meshgrid(x);z=sin(y).*cos(x); mesh(x,y,z);xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');title('mesh'); 程序2: 程序 : x=0:0.1:2*pi;[x,y]=meshgrid(x);z=sin(y).*cos(x); surf(x,y,z);xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');title('surf'); 程序3: 程序 : x=0:0.1:2*pi;[x,y]=meshgrid(x);z=sin(y).*cos(x); plot3(x,y,z);xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');title('plot31');grid;
1. 矩阵运算
1.1 矩阵的输入(命令窗口、矩阵编辑器) 矩阵的输入(命令窗口、矩阵编辑器) 1.2 特殊矩阵的生成
magic(n) %生成一个n阶魔方阵 vander(V) %生成以向量V为基础向量的范得蒙矩阵 compan(P) %生成多项式P的友矩阵 pascal(n) eye(n) ones(n,m) zeros(n,m) rand(n,m) %生成一个n阶的帕斯卡矩阵 %生成n维单位矩阵 %生成n行m列全1矩阵 %生成n行m列全1矩阵 %生成n行m列随机矩阵(元素在0~1之间)
在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切 曲线。 程序如下: x=linspace(0,2*pi,60); y=sin(x);z=cos(x); t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps); subplot(2,2,1); plot(x,y);title('sin(x)');axis ([0,2*pi,-1,1]); subplot(2,2,2); plot(x,z);title('cos(x)');axis ([0,2*pi,-1,1]); subplot(2,2,3); plot(x,t);title('tangent(x)');axis ([0,2*pi,-40,40]); subplot(2,2,4); plot(x,ct);title('cotangent(x)');axis ([0,2*pi,-40,40]);
MATLAB简介 MATLAB简介
MATLAB概述 MATLAB的常用命令 MATLB的可扩展性 MATLB的功能演示
MATLAB概述
产生背景 运行环境 帮助系统 (lookfor / help )
MATLAB的常用命令
1.矩阵运算 2.绘图 3.科学计算可视化 4.微积分基本运算 5.方程求解 6.曲线拟合和插值 7.数据分析与概率统计 8.最优化运算 9.集合和向量运算 10.编程语言及函数库的扩展 11.数字信号模拟