admin 管理员组文章数量: 1184232
2024年4月22日发(作者:shell退出命令)
MATLAB
学习笔记
一.符号计算
1. MATLAB符号计算的基本用途及意义
定义:用一系列恒等式,数学定理,通过演绎和推理,力求获得精准的
解析结果。
通俗理解:1) matlab符号计算就是为了解决离散化数值计算
所产生的精度误差问题,用符号计算可以产生精准符号数字,或16位,32位
精度的近似符号数字。例如解决以下一类问题:
其中3^(1/2)/2是由数学推理等解析出的精确的符号数字,而0.866
则是由离散化数值计算得出近似的双精度浮点数。
2),利用符号计算可以进行对数学公式及某些代数方程的求解。
【例】用符号计算验证三角等式
sin
1
cos
2
cos
1
sin
2
sin(
1
2
)
。
syms fai1 fai2
y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2))
y =
sin(fai1-fai2)
2. 符号计算基本命令
Sym(Num)
syms a b c
symvar(expresstion) 列出表达式所有的符号变量
symvar(expression ,n)
列出表达式中n个认定的自由变量
3. 对符号变量的限定性假设
assume(expr, set) set : ‘integer’整数集
‘rational’ 有理数集 ‘real’实数集
a=sym(‘a’,res)
syms a res res 可以为‘positive’’real’
clear x 清除内存中变量
syms x clear
撤销MuPAD内存中对变量x的任何假设
显示符号变量的限定性假设
重启MupPAD引擎,清空MuPAD内存中的所有内容
assumptions(x)
reset(symengine)
4. 符号矩阵的相关命令
clear all
A=sym('a%d%d',[3,3]) %创建带下标的符号矩阵
DA=det(A) %求行列式
IA=inv(A) %求逆矩阵
SIA=subexpr(IA,'w') %采用“子表达式置换”简化
expm(A)
diag(A)
rank(A)
%矩阵指数
%根据向量构成对角阵,或取对角元
%矩阵的秩
%矩阵的维度
%矩阵的下三角式
%矩阵的上三角式
ndims(A)
tril(A)
triu(A)
5. 极限,导数和积分的符号计算
limit(f ,x, a, ‘right’)
limit(f, x, a , ‘left’)
dfdxn=diff(f, x , n)
int(f , x , a, b )
%求右极限
%求左极限
%求n阶导数
%求定积分
6. 符号计算的可视化
ezplot 用于符号函数画二维图形的简洁命令
ezplot3 画三维图形的简洁命令
vpa(x,n)
【例】
根据符号表达式 x 显示n 位有效数字的数值型结果
二.数组运算及数组化编程
1.数组的创建
x=a: inc :b 线性等距行数组
x=linspace(a, b,n)
x=logspace(a,b,n) 对数等距行数组
magic 产生魔方数组(二维)
eye 产生单位数组(二维)
randn 产生正态分布随机数组
random 生成各种分布随机数组
ones 产生全1数组
zeros 产生全0数组
2.数组操作函数
rot90 数组逆时针旋转90度
repmat 按指定的行列铺放模块数组
reshape 元素总数不变改变行、列
fliplr 左右镜像交换
flipud 上下镜像交换
3.二维数组元素的寻访
(1)按址寻访
A(r , c) 行列坐标寻访
A(r , :) 按行寻访
A(: , c) 按列寻访
A(:) 单序号寻访
(2)按条件寻访
4.数组运算
加 + 减 -
数组乘 .* 数组右除 ./ 数组左除 .
数组幂 .^
5.数组化编程
(1)“标量循环+条件分支”法
(2) 数组混合运算
提示:利用数组创建分段函数,借助meshgrid 创建[X,Y]格点。
三.数值计算
在MATLAB数值计算中,没有专门的求极限和求导命令,但具有求差分的命令:
dx=diff(x) 求差分
FX=gradient(F) 求一元函数梯度
[FX,FY]=gradient(F)
运用数值计算求极限时,应确保经过理论验证,否则不能借助数值法求极限。
sx=sum(X)
沿列方向求和
沿列方向累计求和
采用梯形法沿列方向求y关于x的积分
采用梯形法沿列方向求y关于x的累计积分
求二元函数梯度
scs=cumsum(X)
St=trapz(x,y)
Sct=cumtrapz(x,y)
q=integral(fun,xmin,xmax)
求fun函数在此区间精确积分
四. 数据的和函数的可视化
(1)直角坐标系二维图形
(2)极坐标系二维图形
(3)直方图
(4)三维曲线
(5)三维着色曲面图
五. M文件和函数句柄
创建矩阵时进行空间预配可以提高运行速度。
采用数组化编程可以极大提高运行速度。
1.函数句柄的创建和观察
(1)创建句柄
hm=@magic %为magic函数创建函数句柄
(2)类型判别
class(hm)
isa(hm,’function handle’)
ans=
function_handle
ans=
1
(3)借助functions观察内涵
ff=functions(hm)
ff =
function: 'magic'
type: 'simple'
file: 'F:MATLABtoolboxmatlabelmatmagic.m'
(4)句柄调用方法之一
>> M1=hm(3)
M1 =
8 1 6
3 5 7
4 9 2
注意:创建函数句柄前,一定要确认原函数在当前视野内,否则创建的句柄是
无效的。
2.例题 .
求级数1+0.2^1+0.2^2+…+0.2^1000000的值
(1)方法一:for循环
(2)方法二:while循环
(3)方法三:数值计算
版权声明:本文标题:MATLAB学习笔记 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713743042a649484.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论