matlab期末复习

目录

第一章:MATLAB系统环境

第二章:MATLAB数据及其运算

2.1矩阵建立

2.2冒号表达式

2.3变量及其操作

2.4常用内部函数

2.5matlab运算

2.6字符串

第三章:MATLAB矩阵处理

3.1特殊矩阵

3.2矩阵变换

第四章:MATLAB程序流程控制

4.2程序控制结构

ifelse

switch

try-catch

for

4.3函数文件

4.4特殊形式的函数

第五章:MATLAB绘图

5.1二维图形

基本函数

辅助操作(综合题目-三维不看)

5.2其他形式的二维图形

第六章:MATLAB数据分析和多项式计算

6.1数据统计分析:

最大最小值

求和求积

平均值/中值

累加累乘

标准差和相关系数

排序

6.2多项式计算

多项式四则运算

多项式导函数

多项式求值

多项式求根

6.3数据插值

一维数据插值

二维数据插值

6.4曲线拟合

实现

数据插值和曲线拟合不一样的地方

1、相同点:

2、不同点:

第七章:MATLAB数值微分和积分

第八章:MATLAB方程数值求解

8.1线性方程组求解

直接求解法

迭代求法

雅可比(Jacobi)迭代法

高斯-赛德尔(Gauss-Serdel)迭代法

求线性方程组的通解

8.2非线性方程组数值求解

单变量非线性方程求解

非线性方程组求解

8.3最优化问题求解

无约束最优化问题求解

有约束最优化问题求解

线性规划问题求解

8.4常微分初值问题的数值求解

第九章:MATLAB符号计算(选填)

总结:


第一章:MATLAB系统环境

  1. 最初matlab核心程序是FORTRAN语言编写的

  2. matlab特点是:编程效率高

  3. 在命令行窗口执行命令,不想立即在命令行窗口输出结果,可以加分号

  4. matlab主要功能:数值计算符号计算绘图功能程序设计语言功能工具箱的扩展功能

  5. 命令行窗口提示用户输入命令的符号是:>>

  6. matlab的帮助命令是:lookfor,lookfor-all,help(没有search)

  7. matlab功能区提三个选项卡:主页绘图应用程序

  8. 设置matlab搜索路径有两种方法,一是path命令,二是matlab主页选项卡的环境单机设置路径按钮或者命令行窗口执行pathtool命令

  9. matlab命令提示符后面输入并执行命令成为MATLAB的交互式命令操作

  10. matlab的续航符:...,将下面一行看成这行的逻辑继续

  11. 注释以%开头

第二章:MATLAB数据及其运算

2.1矩阵建立

直接建立

A=[xxx;xxxx;xxx;xxx;xxx]

利用已有的矩阵建立更大的矩阵

2.2冒号表达式

e1初始值:e2步长:e3终止值

linspace(a,b,n):ab之间产生n个等长

sub2ind(s,i,j),ij是行列下标,s是size(A)。指定的行列转换成序号

[i,j]=ind2ind(s,d):d是序号,序号转换指定的行列

2.3变量及其操作

2.4常用内部函数

2.5matlab运算

点乘/除法,表示单个元素对应相乘。

求余rem(a,b),a除b

2.6字符串

字符串是单引号引起来的,字符数组是双引号

书p40/41

ch='sdasdas'
subch=ch(1:5)  %取字符串
revch=ch(end:-1:1)  %字符串倒排
k=find(ch>'a' && ch<'z'); 找到小写字母的位置
ch(k)=ch(k)-('a'-'A')  转换成大写
length(k)
​
abs和double可以将字符串矩阵转换成ascll矩阵,而char将ascll矩阵转换成字符矩阵
findstr(s1长字符,s2短字符)

第三章:MATLAB矩阵处理

3.1特殊矩阵

zeros

ones

eye 单位矩阵

rand 产生01之间分布的均匀矩阵

randn 产生均值为0,方差为1的正态分布矩阵

3.2矩阵变换

diag

diag提取 对主角线元素(序号为0)

diag(A,1) 序号为1的对角线元素

diag([1,2,-1,4])产生对角线元素即为向量的元素

矩阵的转置

在小数点后加'即.'

旋转

rot90()逆时针旋转

fliplr()矩阵左右翻转

矩阵的逆

加'

第四章:MATLAB程序流程控制

4.2程序控制结构

输入:A=input(提示信息);

打印:disp(A)

暂停:pause(暂停时间)

字符串转数字:str2double(c)

数值矩阵转化单元矩阵:num2cell(5:9)=={5,6,7,8,9}

ifelse

c=input('请输入一个字符:','s');
if c>='A' && c<='Z'
    disp(lower(c));
elseif c>='a' && c<='z'
    disp(upper(c));
elseif c>='0' && c<='9'
    disp(str2double(c));
else
    disp(c);
end

switch

price=input('输入商品价格:');
switch fix(price/100)
    case {0,1}
        rate=0;
    case {2,3,4}
        rate=3/100;
    case num2cell(5:9)
        rate=5/100;
    otherwise
        rate=14/100;
end
price=price*(1-rate);

try-catch

try 
    c=A*C 若执行错误则执行下一句
catch
    error

for

按列作循环

for k=[1,2,4,6]
    k
end
n=2;
for k=1:2:n+8
    n=5;
    k
end

向量为空就不执行循环

fix()截尾取整

rem()计算两个数的余数

4.3函数文件

function 输出形参表 = 函数名(输入形参表)

matlab调用使用函数名,忽略文件名

return只代表结束不代表返回

4.4特殊形式的函数

子函数只能由同一文件的函数调用

以字符串形式存在的函数表达式可以通过内联函数inline()转换

匿名函数:函数句柄变量=@(匿名函数输入参数)匿名函数表达式,sqr = @(x) x.^2; a = sqr(5)

第五章:MATLAB绘图

同一个画面上画多个图

5.1二维图形

基本函数

plot(x,y)函数的基本用法:分别以x,y为横纵坐标画图(x,y向量长度相同)

cx=x+y*i;plot(cx)

当x是向量y是矩阵:x必须与y的行数或者列数相同,若等于行数,则以列数作为横纵坐标,反之亦然。

画三个函数:plot(x,sin(x),x,2sin(x),x,3sin(x))

双纵坐标函数:plotyy(x,y1,x,y2)

辅助操作(综合题目-三维不看)

title(图形标题)

xlabel(x轴说明)

ylabel(y轴说明)

text(x, y, 说明)

legend(图例1, 图例2, …)

axis函数 等刻度坐标轴

grid函数 添加网格

box函数 添加边框

image-20240704202238049

plot(x,y1,'k:', x,y2,'b--', x1,y3,'rp')
​

双输入函数参数(句柄函数):fplot(funx, funy, tlims, 选项)

x=linspace(0,2*pi,100);
y=[sin(x); sin(2*x); sin(0.5*x)];
plot(x,y)
axis([0 7 -1.2, 1.2]) 
title('不同频率正弦函数曲线'); 
xlabel('Variable X'); ylabel('Variable Y'); 
text(2.5, sin(2.5), 'sin(x)'); 
text(1.5, sin(2*1.5), 'sin(2x)');
text(5.5, sin(0.5*5.5), 'sin(0.5x)');
legend('sin(x)','sin(2x)','sin(0.5x)')
grid on
​

image-20240704203057698

hold on 图形保持

subplot(m, n, p)窗口分割,m,n表示 分割mxn的窗口,p当前活动区

5.2其他形式的二维图形

条形图 bar “grouped”:簇状分组 “stacked”:堆积分组

直方图 hist函数:绘制直角坐标系下的直方图。

rose函数:绘制极坐标系下的直方图

饼图 pie函数

散点图 nscatter函数:散点图

第六章:MATLAB数据分析和多项式计算

拟合插值各看一个方法,看ppt(背背背案例),比较两者总结不一样的点(应用场景什么的)背下来,数据统计里面怎么求max,min,sub,average,求积,(这些命令怎么使用,传几个参数,穿哪些,有几个,先后顺序)标准相关系数

6.1数据统计分析:

最大最小值

1、向量max():求向量或矩阵的最大/小元素。 y=max(X):若x有复数则取模最大

[y,k]=max(X):y存入最大值,k存入序号

2、矩阵max():

max(A,[],dim):dim取1或者2,1是每一列的最大值,2是每一行的最大值([]这个参数用来占位,表示忽略此参数。)

3、两个向量或者矩阵对应元素的比较

U=MAX(A,B),U与二者同型,结果是对应元素取最大的(A,B也同型)

U=MAX(A,n),结果是A对应元素与n最大值

用什么方法只调用一次max 函数就能求得整个矩阵的最大值?

A = [1 3 5; 7 2 8; 4 6 9];
max_val = max(A(:));
​

求和求积

sum(X):x为向量,返回各元素之和

sum(A):A是矩阵,返回行向量,是各列的和

sum(A,dim):1为列元素和,2为行元素和

求积用prod函数(乘积:product)

cumprod(X)累乘积

平均值/中值

mean(X):x为向量,计算平均值

mean(A):A是矩阵,返回行向量,是各列的平均值

mean(A,dim):同上

median():计算中值,同mean

分析哪一个更合理:mean对异常值(outliers)非常敏感。即使有少量极端值,也会显著影响均值。 median不如均值易于计算和理解,尤其是对于较大的数据集。

累加累乘

consum(X):x为向量,计算平均值

consum(A):A是矩阵,返回行向量,是各列的累加和向量

image-20240704204427488

consum(A,dim):同上,1是列,2是行

conprod():同上

求1!+2!+...+6!
x=conprod(1:6)
​
x=1 2 6 24 120 720
sum(x)

标准差和相关系数

标准差:

std(X):返回向量标准差

std(A):返回矩阵每列标准差

调用方式:std(A,flag,dim),flag取0调用公式一求标准差,1则是公式2。dim还是1求列,2求行。默认flag=0,dim=1

相关系数:

corrcoef(X,Y):求向量相关系数矩阵,求序列X,和Y的相关系数,结果是2x2的矩阵,对角线上是自相关系数矩阵,非对角线是X和Y,和Y和X的相关系数,是相等的。与corrcoef([X,Y])等价

corrcoef(X):求矩阵相关系数,第i行第j列是矩阵X第i列和第j列的相关系数

randn产生的随机数是独立的

cov():产生协方差矩阵与上面类似

排序

sort(A,dim,mode):dim=1按列排,为2按行排序,mode为ascend升序(默认不写),逆序为descend,要加单引号。

6.2多项式计算

多项式系数的量包含0次数项,向量从高到低

多项式四则运算

加减:没有函数,对应相加减

乘:conv(A,B),A,B为系数向量

除法:[q,r]deconv(A,B),q返回A除B的商式,r返回余式

二者互为逆函数,A=B*q+r

多项式导函数

polyder(P):P的导函数

polyder(P,Q):P*Q的导函数

[P,Q]polyder(P,Q):P/Q的导函数,导数分子存p,分母存q

多项式求值

代数多项式求值:

polyval(P,x),x为自变量,P为系数向量

矩阵多项式求值:

polyvalm(P,A),调用相同含义不同,A为方阵

一般情况下,polyval(p, x)polyvalm(p, x) 是不同的,除非 x 是标量或单位矩阵。对于标量,polyvalpolyvalm 的结果是相同的,而对于矩阵,如果是单位矩阵,它们的结果也会相同。

多项式求根

x=roots(P),p为多项式的系数向量

若已知多项式全部根,可以重新建立起多项式ploy(x)

6.3数据插值

从离散的数据,得到离散以外的数值

一维数据插值

插值函数是一个单变量函数,采用一维插值,插值函数Y1=interp1(X,Y,X1,method),是根据等长的已知向量X,Y,计算函数在X1处的值,超出X的插值点会出现NAN错误

插值方法:

  1. linear:线性插值,method不写为默认方法

  2. nearest:最近点插值

  3. pchip:分段3次埃米尔特插值

  4. spline:3次样条插值,专门的函数spline(X,Y,X1)与interp1(X,Y,X1,spline)作用相同

为什么这两种插值方法都用3次多项式而不用更高次的?

保持平滑和稳定

线性插值和最近点插值方法比较简单。n越大误差越小

3次埃尔米特插值和3次样条插值都能保证曲线的光滑性。

二维数据插值

自变量是两个变化时,插值函数Z1=interp2(X,Y,Z,X1,Y1,method),采用二维插值,X,Y,Z可以是矩阵。二维插值不支持pchip方法,其他都一样。同样超出X,Y的插值点会出现NAN错误

interp2(X,Y,Z,X1,Y1,method),在X1,Y1处插值

interp2(X,Y,Z,[X1,X2],Y1,method),在(X1,Y1)(X2,Y1)插值

interp2(X,Y,Z,[X1,X2],[Y1,Y2],method),在(X1,Y1)(X2,Y2)插值

interp2(X,Y,Z,[X1,X2]',[Y1,Y2],method),在(X1,Y1)(X1,Y2)(X2,Y1)(X2,Y2)插值

二维插值时,要注意另一个变量的转置

surf(x,y,z)创建三维曲面图

6.4曲线拟合

与插值类似,但又不同,不完全经过采样点,但希望拟合的函数g(x)靠近采样点。曲线拟合使用最小二乘逼近原理。

实现

进行拟合时,实际是求一个系数向量,系数向量是多项式系数,matlab用polyfit函数求最小二乘拟合多项式的系数,再用ployval()函数按照所得多项式计算给出点上的函数逼近值

P=polyfit(X,Y,m)

[P,S]=polyfit(X,Y,m)

[P,S,mu]=polyfit(X,Y,m)

采样点X和采样点函数值Y生成m次多项式,P是长度m+1向量,为多项式系数,mu(1)是mean()X,mu(2)是std(X)

数据插值和曲线拟合不一样的地方

1、相同点:

①都属于函数逼近方法 ②都能进行数据估算

2、不同点:

①实现方法不同: 数据插值要求逼近函数经过样本点,而曲线拟合不要求逼近函数经过样本点,只要求总体误差最小。 ②结果形式不同: 数据插值往往分段进行逼近,没有统一的逼近函数。曲线拟合用一个函数进行整体逼近,有确定的函数表达式。 ③侧重点不同: 数据插值一般用于样本区间内的插值计算,而曲线拟合不仅可以估算区间内其他点的函数值,还可以预测时序数据的发展趋势,以及从统计数据中总结一般性经验 ④应用场合不同: 如果样本数据为精确数据,适合采用数据插值方法;如果样本数据为统计数据或存在误差,则适合用曲线拟合的方法。

第七章:MATLAB数值微分和积分

差分差商最简单的例子要会,没有大题,有选择填空,看课本知识点

第八章:MATLAB方程数值求解

三种方式(都得背):直接求解(求幂,反除),迭代法(高斯迭代背下来),jacabi迭代背下来,直接迭代(lu分解,qr分解,背一种),最优问题求解(看ppt,相对简单,改一下参数)

8.1线性方程组求解

直接求解法

利用左除运算符求解

即Ax=b,x=A\b(谁在上是被除)

image-20240630034302035

利用矩阵分解:将一个矩阵分解为若干矩阵的乘积

LU分解 :矩阵的LU分解就是将一个n阶矩阵表示为一个下三角矩阵和一个上三角矩阵的 乘积。

[L,U]=lu(x),产生一个上三角U和下三角L,使之满足X=LU

[L,U,P]=lu(x),除了上面还有一个P置换矩阵使得PX=LU

inv()是求逆函数

image-20240630034723266

image-20240630034950552

QR分解

Cholesky分解

迭代求法

迭代法是一种不断用变量的原值推出它的新值的过程,是用计算机解决问 题的一种基本方法。

image-20240704212432350

雅可比(Jacobi)迭代法

公式推导

image-20240630130830859

MATLAB Jacobi迭代法 求解线性方程组_matlab雅可比迭代法解线性方程组-CSDN博客

function [y,n]=jacobi(A,b,x0,ep)
D=diag(diag(A));
L=-tril(A,-1); 下三角,-1对角线及其以下的元素
U=-triu(A,1);  上三角
B=D\(L+U);
f=D\b;
y=B*x0+f;
n=1;
while norm(y-x0)>=ep
 x0=y;
 y=B*x0+f;
 n=n+1;
end

高斯-赛德尔(Gauss-Serdel)迭代法

是上面公式的变化

function [y,n]=gauseidel(A,b,x0,ep) n迭代次数
D=diag(diag(A));      初始猜测值 x0是迭代算法的起点
L=-tril(A,-1);
U=-triu(A,1);
B=(D-L)\U;
f=(D-L)\b;
y=B*x0+f;
n=1;
while norm(y-x0)>=ep
 x0=y;
 y=B*x0+f;
 n=n+1;
end

求线性方程组的通解

8.2非线性方程组数值求解

非线性方程组求解和最优化问题,往往 调用最优化工具箱来解决

单变量非线性方程求解

fzero函数求根

z=fzero(filename,x0)

filename待求根的函数,x0搜索的起点

非线性方程组求解

最优化工具箱提供的函数fsolve

fsolve函数求解非线性方程组的根

X=fsolve(filename,X0,option)

filename待求根的函数,X0求解过程的初值,option优化参数

optimset可以将优化参数都显示出来

改变默认优化参数option=optimset('Display','off')

8.3最优化问题求解

无约束最优化问题求解

[xmin,fmin]=fminbnd(filename,x1,x2,option)

[xmin,fmin]=fminsearch(filename,x0,option)

[xmin,fmin]=fminunc(filename,x0,option)

有约束最优化问题求解

求有约束条件下最小值的函数为: [xmin,fmin]=fmincon(filename,x0,A,b,Aeq,beq,Lbnd,Ubnd,NonF,option)

其中,xmin、fmin、filename、x0和option的含义与求最小值函数相同。其余参数为约束条件,包括线性不等式约束、线性等式约束、x的下界和上界以及定 义非线性约束的函数。如果某个约束不存在,则用空矩阵来表示。

线性规划问题求解

8.4常微分初值问题的数值求解

书p200

解决刚性问题的有ode15s,ode23s,ode23tb

第九章:MATLAB符号计算(选填)

不考大题,就是基础的知识点

总结:

大题

  1. 数据,矩阵表示方法,怎么输入输出出来(结合if,else,for循环看一个例子,怎么写),结合字符串去做

  2. 画图绘图处理(二维的,同一个坐标系同一个布局,画什么样的图形,线条是什么样的)

  3. 数据分析,统计分析,每一个方法(怎么传递参数,得出结果处理结果,打印结果)

  4. 多项式考选择填空的,插值拟合分别会考,两者之间的应用场景有什么不一样的地方,做的是不是同一个事情

  5. 第七章微分积分,差分差商,通过数值的方法进行求导,通过采样得到函数,然后进行求导,傅里叶变化不考

  6. 第八章线性方程三种方法,直接方法,迭代两个都背下来。无约束的最优化手写敲一下!2和4节选择填空

  7. 第九章选择填空

1、相同点:

①都属于函数逼近方法 ②都能进行数据估算

2、不同点:

①实现方法不同: 数据插值要求逼近函数经过样本点,而曲线拟合不要求逼近函数经过样本点,只要求总体误差最小。 ②结果形式不同: 数据插值往往分段进行逼近,没有统一的逼近函数。曲线拟合用一个函数进行整体逼近,有确定的函数表达式。 ③侧重点不同: 数据插值一般用于样本区间内的插值计算,而曲线拟合不仅可以估算区间内其他点的函数值,还可以预测时序数据的发展趋势,以及从统计数据中总结一般性经验 ④应用场合不同: 如果样本数据为精确数据,适合采用数据插值方法;如果样本数据为统计数据或存在误差,则适合用曲线拟合的方法。

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值