数学建模之MATLAB编程

EverydayOneCat

🌈 🐱🐱🐱
🍣🍣🍣🍣🍣✖️N
🌈📖📜 🥢
🐱 🐱
「Sushi shop!」

67bbec0a531da3ff74b14c44afdc76546eb7a131

知识点

1.下载

链接:https://pan.baidu.com/s/1DbfysOOwIoSvt8HQUw0jhw
提取码:75mz

2.基本数学运算

2.1变量与数据操作

变量定义注意事项:

  • 变量名区分字母大小写
  • 变量名必须以字母开头,之后可以是任意字母、数字或下划线
  • MATLAB语言将所识别的一切变量视为局部变量,若要将变量定义为全局变量,则应当对变量进行说明,即在该变量前加关键字global.

特殊变量表:

特殊变量 取值
ans 用于结果的缺省变量名
pi 圆周率
eps 计算机的最小数
flops 浮点运算数
inf 无穷大 如1/0
nan 不等量 如0/0
i j i=j=虚数单位
nargin 函数的输入变量数目
nargout 函数的输出变量数目
realmin 最小的可用正实数
realmax 最大的可用正实数

2.2MATLAB常用数学函数

MATLAB 提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。

1.基本数学函数:

abs(x):纯量的绝对值或向量的长度

angle(z):复数z的相角**(Phase angle) sqrt(x):开平方 real(z):复数z**的实部

imag(z):复数z的虚部

conj(z):复数z的共轭复数

round(x):四舍五入至最近整数

fix(x):无论正负,舍去小数至最近整数

floor(x):地板函数,即舍去正小数至最近整数

ceil(x):天花板函数,即加入正小数至最近整数

rat(x):将实数x化为分数表示

rats(x):将实数x化为多项分数展开

rem(x,y):求x除以y的余数

gcd(x,y):整数xy的最大公因数

lcm(x,y):整数xy的最小公倍数

exp(x):自然指数

pow2(x)2的指数

log(x):以e为底的对数,即自然对数

log2(x):以2为底的对数

log10(x):以10为底的对数

sign(x):符号函数 (Signum function).

2.三角函数:

sin(x):正弦函数 cos(x):余弦函数

tan(x):正切函数 asin(x):反正弦函数

acos(x):反余弦函数 atan(x):反正切函数

atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数

cosh(x):超越余弦函数 tanh(x):超越正切函数

asinh(x):反超越正弦函数 acosh(x):反超越余弦函数atanh(x):反超越正切函数

3.适用于向量的常用函数:

min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值

mean(x): 向量x的元素的平均值 median(x): 向量x的元素的中位数

std(x): 向量x的元素的标准差 diff(x): 向量x的相邻元素的差

sort(x): 对向量x的元素进行排序(Sortinglength(x): 向量x的元素个数

norm(x): 向量x的欧氏长度 sum(x): 向量x的元素总和

prod(x): 向量x的元素总乘积 cumsum(x): 向量x的累计元素总和

cumprod(x): 向量x的累计元素总乘积 dot(x, y): 向量xy的内积

cross(x, y): 向量xy的外积

+++

例:随机抽取10 名学生的高等数学课程成绩,并统计他们中的最高分、最低分以及他们的平均成绩。

>> math=[88,90,77,69,92,80,74,66,95,85]; %产生10维向量
mathaver=sum(math)/10 %计算平均成绩
h=max(math) %求出最高分
l=min(math) %求出最低分

2.3MATLAB矩阵

矩阵的建立:

(1)直接输入法——A=[1 2 3;4 5 6;7 8 9]

矩阵同行元素之间由空格或逗号分隔,行与行之间用分号或回车键分隔;若“[ ]”中无元素表示空矩阵.

(2)利用冒号和函数——函数linspace(a,b,n)产生第一个元素为a,最后一个元素为b总数为n的行向量

>> a=1:0.5:4 % 格式是初始值:步长:终止值
a=
Columns 1 through 7
1 1.5 2 2.5 3 3.5 4

(3)矩阵合并

>> B=[1 1 1]
B =
1 1 1
>> C=[A;B]	%分号增加行
C =
1 2 3
4 5 6
7 8 9
1 1 1
>> D=[A,B']	%逗号增加列
D =
1 2 3 1
4 5 6 1
7 8 9 1

矩阵的截取:

(1) 矩阵元素

>> A(2,3) %下标引用
ans = 6
>> A(6)	%一列一列的开始数
ans = 8

序号(Index)与下标(Subscript )是一一对应的,其相互转换关系也可利用sub2ind和ind2sub函数求得。

>> sub2ind(size(A),2,3)
ans= 8
[i,j]=ind2sub(size(A),8)
i= 2
j= 3

(2) 使用冒号

可以用冒号表示“直到”以及“所有行”,“所有列”,还可利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下

>> B=A (1:2, : ) %逗号前面是行数,表示第一行直到第二行;逗号后面列数,表示所有列
B=
1 2 3
4 5 6
>> C=A([1,3],2:end)	%行数:第一行和第三行;列数:第二列直到最后
C =
2 3
8 9

+++

特殊矩阵:

zeros(m,n) 生成一个 mn 列的零矩阵,m=n 时可简写为 zeros(n)
ones(m,n) 生成一个 mn 列的元素全为 1 的矩阵, m=n 时可写为 ones(n)
eye(m,n) 生成一个主对角线全为 1 的 mn 列矩阵, m=n 时可简写为 eye(n),即为 n 维单位矩阵
diag(X) 若 X 是矩阵,则 diag(X) 为 X 的主对角线向量 若 X 是向量,diag(X) 产生以 X 为主对角线的对角矩阵
tril(A) 提取一个矩阵的下三角部分
triu(A) 提取一个矩阵的上三角部分
rand(m,n) 产生 0~1 间均匀分布的随机矩阵 m=n 时简写为 rand(n)
randn(m,n) 产生均值为0,方差为1的标准正态分布随机矩阵 m=n 时简写为 randn(n)

例:

分别建立3×3、3×2和与矩阵A同样大小的零矩阵。

>> zeros(3),zeros(3,2),zeros(size(A))

建立随机矩阵:
(1) 在区间[20,50]内均匀分布的5阶随机矩阵。
(2) 均值为0.6、方差为0.1的5阶正态分布随机矩阵。

>> x=20+(50-20)*rand(5)
y=0.6+sqrt(0.1)*randn(5)

3.MATLAB运算

3.1基本算术运算

MATLAB的基本算术运算有:+(加)、-(减)、*(乘)、/(右除)、\ (左除)、^(乘方)。

这个就是矩阵的乘法,线性代数知识:m* n的矩阵只有和n *x的矩阵才能相乘得出m *x的矩阵。(老汤别打我,我只记得这个了😥)

3.2点运算

在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。

点运算符有:
点乘: .*
点除: ./ .
点幂: .^

两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维数相同。

>> A.^2
ans =
1 4 9
16 25 36
49 64 81
符号运算符 功 能 类别
= = 等于 关系运算符
~ = 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于
& 逻辑与 逻辑运算符
| 逻辑或
~ 逻辑非

例:

产生5阶随机方阵A,其元素为[10,90]区间的随机整数,然后判断A的元素是否能被3整除。

>> A=fix((90-10+1)*rand(5)+10) %生成5阶随机方阵A
P=rem(A,3)==0 %判断结果是一个布尔矩阵

fix()取整;rand生成0~1的随机方阵;rem(A,B)——A/B的余数

image-20200725153512669

建立矩阵A,然后找出大于4的元素的位置。

>> A=[4,-65,-54,0,6;56,0,67,-45,0]
find(A>4) %返回的是索引值
image-20200725153651998

3.3矩阵分析

用求逆矩阵的方法解线性方程组。备注:Ax=b其解为:x=A-1b

>> a=[2,-3,1;8,3,2;45,1,-9];
b=[4;2;17]; x=inv(a)*b

用求特征值的方法解方程:
3 x 5 − 7 x 4 + 5 x 2 + 2 x − 18 = 0 3x^5-7x^4+5x^2+2x-18=0 3x57

  • 15
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值