Matlab基本数学应用
基本线性代数
[R jb]=rref(A)
将A化为行最简型矩阵。R为所得行最简型矩阵,jb是一个向量显示每行首非0元所在列号。inv(A)
求方阵A的逆,注意结果可能出现错误。当结果中出现Inf和NaN时一定有错。pinv(A)
求矩阵伪逆A \ b
矩阵左除计算,返回Ax = b的一个特解。当矩阵A为方阵时 A \ b等价于 inv(a) * b;当A不是方阵时只能使用左除计算而不能使用inv(A).A / b
矩阵右除运算,当矩阵A为方阵时 A \ b等价于 inv(a) * b;当A不是方阵时只能使用左除计算而不能使用inv(Adet(A)
求矩阵A对应行列式的值rank(A)
求矩阵A的秩trace(A)
矩阵A求迹[V D] = eig(A)
矩阵D为矩阵A所有特征值组成的对角矩阵,矩阵V是由矩阵A的特征向量组成的列向量组,其顺序与矩阵D对应。
求解线性方程组
克拉莫法则
化为行最简型(rref),代入完成剩下的计算。
null(A,’r’)可以求解向量空间A的一组有理基(列向量),参数’r’是求有理解(reasonable)的选项。此命令可以求解齐次线性方程组的基础解系,结合求逆,左(右)除求非齐次方程的特解,可以求解任意线性方程组。
微积分
数学函数的定义
M函数文件,可执行字符串均可用于定义数学函数,但是数学函数通常使用符号表达式和匿名函数来定义.
为了与大多数函数(特别是求解析解的函数)兼容,这里推荐使用符号表达式.
求反函数:
g = finverse(f)
求符号表达式f对于默认自变量的反函数g = finverse(f,var)
求符号表达式f对于符号变量var的反函数
复合函数
h= compose(f, g)
求符号表达式f,g的复合函数f [ g(x) ]h= compose(f, g, t)
求符号表达式f,g的复合函数f [ g(x) ],并代入t作为自变量
函数极限与微积分
极限:
limit(expr, x ,a)
对符号表达式expr求在变量x趋于a时的极限,返回极限的符号表达式limit(expr, a)
对符号表达式expr求在默认自变量趋于a时的极限limit(expr )
对符号表达式expr求在默认自变量趋于0时的极限limit(expr,x,a,'left')
对符号表达式expr求在变量x趋于a时的左极限limit(expr,x,a,'right')
对符号表达式expr求在变量x趋于a时的右极限
Matlab通过数列的通项表达式来定义数列,通项表达式也是一个数学函数但是它的自变量是离散的。limit函数同样可以对数列求极限,如limit(expr, n, Inf)
多重极限视为极限的复合,嵌套调用limit函数:
limit(limit(fun,x,x0), x , x0)
limit(limit(fun,x,x0), y , y0)
函数求导:
dyx = diff(fun)
对符号表达式fun求对于默认自变量的一阶导数dyx = diff(fun ,n)
偏导数本质上仍是一元导数,将其余变量赋值后即可使用diff求偏导数。
隐函数求导:
syms x dy %定义符号变量
y = sym('y(x)') %声明y为x的函数
fun = x*y - 1 %定义隐函数fun(x,y) = 0
dfx = diff(fun,x) %对fun(x,y) 左侧求导考虑,y与x之间的函数关系
dfx = subs(dfx,'diff(y(x),x)',dy) %定义dy代替导数yx
dfx = solve(dfx,dy) %求解关于dy(yx )的方程dfx (dy) = 0
公式法隐函数求导:
syms x y %定义符号变量
fun = x*y - 1 %定义隐函数fun(x,y) = 0
dy = diff( fun , y) %不考虑y与x的函数关系,求Fx。
dx = diff( fun , x) %不考虑y与x的函数关系,求Fy。
dfx = - dx / dy %代入公式
隐函数求高阶导:
function [ dyx ] = imdiff(fun,n)
% find the diff of the implict function y=y(x) defined by equation f(x,y)=0
%Please define the next sym :
%syms x dy
%y=sym('y(x)');
%please define fun, and you can use this function
dfx = diff(fun,x);
dfx = subs(dfx,'diff(y(x), x)',dy);
dyx=solve(dfx,dy);
dfx=dyx;
for i=2:n
dyx=diff(dyx,x);
dyx=subs(dyx,'diff(y(x), x)',dfx);
end
end
参数方程求导:
syms t;
y = sin(t);
x = cos(t);
dx = diff(x,t);
dy = diff(y,t);
dyx = dy / dx;
参数方程求高阶导:
function [ dyx ] = paradiff(y,x,t,n)
%recurison diff of a paramatic function
% y = y(t) x = x(t) diff(y,x,n)
dx = diff(x,t);
if (n == 1)
dyx = diff(y,t) / dx;
else
dyx = diff( paradiff(y,x,t,n-1) / dx);
end
end
泰勒展开:
R = taylor( fun, v, a)
fun为关于变量v的数学函数,var为符号变量表示自变量,a为展开点。taylortool
命令将打开图形化的taylor展开分析界面。]
一元积分的解析解:
int (fx , x)
关于符号表达式fx对变量x求不定积分解析解。当x为默认自变量时可以省略参数x。int (fx , x, a, b)
关于符号表达式fx对变量x在区间[a,b]上求定积分解析解。当x为默认自变量时可以省略参数x,可以进行反常积分。
一元积分的数值解:
I = integral(fun, xmin, xmax)
fun是描述数学函数的函数句柄(不支持符号表达式和可执行字符串),在[xmin,xmax] 区间内求数值积分。含有参数的数学函数可以在参数表结尾依次添加参数值。q = integral(fun,xmin,xmax,Name,Value)
可以为integral指定选项。
重积分可以化为嵌套的定积分求解:
I = integral2(fun, xmin, xmax, ymin, ymax)
fun是描述数学函数的函数句柄(不支持符号表达式和可执行字符串)。xmin, xmax, ymin, ymax 可以是常数或者数学函数句柄。调用与integral非常类似,三重积分可以使用integral3.
数值分析
拟合与回归分析
拟合
多项式拟合[a,b,...]=polyfit(X,Y,N)
,X、Y是代表数据点的坐标,N代表拟合多项式的最高次数,返回降幂排列的多项式系数。
polyval(P, x)
用于计算多项式的值,P是降幂排列的系数,x是待计算的自变量。
Matlab中的Fit函数可以进行自定义函数拟合,在使用该函数之前首先要使用fittype函数创建拟合模式参数。
p=fittype(LibraryModelName)
使用库定义的拟合模式,拟合模式是库定义的描述拟合函数形式的字符串。
‘poly’
代表多项式后面紧跟(不含空格)一系列数字代表各个自变量拟合时的最大次数,如 p=fittype(‘poly3’)
代表拟合函数为y=k1x3+k2x2+k3*x+k4.
p=fittype(‘poly22’)
代表拟合函数为z=k1x2+k2x+ k3y2+k4y+k5.
f=fittype('rat22')
是进行比例拟合 y= (p1x^2 + p2x + p3) / (x^2 + q1*x + q2)。
更多拟合模式参见help fittype
,调用该函数时将会输出拟合模式f的表达式
p=fittype(LinearModelName)
的参数是一个字符串组成的向量,每一个字符串都是关于自变量x的一个函数,Matlab以这些函数作为各项进行线性拟合.
例如fittype({'sin(x)','x','1'})
代表拟合模式y = asin(x) + bx + c
上述拟合表达式中都以x为自变量y为因变量,实际上和许多Matlab函数一样fittype函数的最后的参数可以是Name-Value对来对属性进行设置.
'independent'和一个代表自变量的字符串或string-cell数组
'dependent'和代表因变量的字符串
'coefficients'和代表系数的字符串或string-cell数组
p=fittype(expression)
可以直接使用可执行字符串描述拟合函数模式,但需要在其后指定参数和自变量名称(默认为x)
p=fittype(@(coefficients,independent,dependent))
允许以匿名函数作为参数,但要求参数表按照先写系数最后两个依次为自变量和因变量的顺序书写
fit( X, Y,model)
model是fittype型变量(本质是个类对象),X列向量,Y为X的等长列向量组,返回值中包含拟合系数和代表拟合程度的数组stats
线性回归分析
上述拟合可以得到拟合函数但不能分析拟合程度,Matlab中的regress函数在进行拟合的同时返回代表拟合程度的值.
[b,bint,r,rint,stats] = regress(y,X,, alpha)
,参数y代表因变量组成的列向量,参数X为自变量矩阵将其理解为行向量组,每个行向量表示一组x值,通常将第一列置为全1向量以获得常数项。
返回值b列向量代表每个自变量的系数,第一个系数是常数项,bint是一个两列向量代表系数的置信区间,r为残差列向量,rint为两列向量,stats元素依次为残差平方和R2,F_检验值,阈值f,显著性概率p.
一般地,F_越大越好一般要求F_至少大于阈值f。参数中alpha为显著性检验标准,默认为0.05,当返回值stats中p>alpha则表示有变量作用不明显可以剔除。
regress函数利用最小二乘法进行线性回归分析,返回的值b实际是各个自变量的系数即y(m,1)=X(m,
Matlab基本数学应用的更多相关文章
- MATLAB之数学建模:深圳市生活垃圾处理社会总成本分析
MATLAB之数学建模:深圳市生活垃圾处理社会总成本分析 注:MATLAB版本--2016a,作图分析部分见<MATLAB之折线图.柱状图.饼图以及常用绘图技巧> 一.现状模式下的模型 % ...
- Matlab与数学建模
一.学习目标. (1)了解Matlab与数学建模竞赛的关系. (2)掌握Matlab数学建模的第一个小实例—评估股票价值与风险. (3)掌握Matlab数学建模的回归算法. 二.实例演练. 1.谈谈你 ...
- 卓金武《MATLAB在数学建模中的应用》 第2版
内容介绍 本书的作者都具有实际的数学建模参赛经历和竞赛指导经验.书中内容完全是根据数学建模竞赛的需要而编排的,涵盖了绝大部分数学建模问题的matlab求解方法.本书内容分上下两篇.上篇介绍数学建模中常 ...
- 数学软件Matlab的使用感受
在我一年前的暑假,我们的小学期学习了MATLAB软件.MATLAB是一款数学软件,可以用于算法计算.数据可视化.数据分析以及数据计算. 我们主要学习了MATLAB关于数学上的经常用的一些用法和算法,M ...
- MATLAB地图工具箱学习总结(一)从地图投影说起
MATLAB地图工具箱学习总结(一)从地图投影说起 前言 本学期地图投影课上,李连营老师建议我们使用MATLAB完成每周的作业.从大二上学期开始接触MATLAB学习数学运算和地理数据处理的我,自然不会 ...
- 基于MATLAB实现的云模型计算隶属度
”云”或者’云滴‘是云模型的基本单元,所谓云是指在其论域上的一个分布,可以用联合概率的形式(x, u)来表示 云模型用三个数据来表示其特征 期望:云滴在论域空间分布的期望,一般用符号Εx表示. 熵:不 ...
- 史上最全的Matlab资源电子书教程和视频下载合集【超级推荐】
收藏吧,网上搜集的,费了老大劲了,推荐给有需要的人,^_^. MATLAB课件2007北京交通大学.zip 4.87 MB A Guide to MATLAB for Beginners an ...
- MATLAB的符号运算基础
在数学运算中,运算的结果如果是一个数值,可以称这类运算为数值运算:如果运算结果为表达式,在MATLAB中称为符号运算,符号计算是对未赋值的符号对象(可以是常数.变量.表达式)进行运算和处理.MATLA ...
- [转]numpy线性代数基础 - Python和MATLAB矩阵处理的不同
转自:http://blog.csdn.net/pipisorry/article/details/45563695 http://blog.csdn.net/pipisorry/article/de ...
随机推荐
- 在Sublime中集成Team Foundation Server (TFS),实现版本管理
Sublime是一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,由于它开发的技术架构.丰富的插件,和轻盈而快速的编程响应,Sublime广受程序员的爱好.在C, C++, Javascri ...
- Dalsa线扫相机SDK开发-小试牛刀(1)
拿到了dalsa相机,可以用Sapera软件配置相机,进行图像采集.但是自己开发的话就得撸起袖子写代码了,查了两篇不错的博文,作为指导. Sapera帮助文档 - <好好先生>专栏 - 博 ...
- sharepoint 2013 office web app 2013 文档在线浏览 IE11 浏览器不兼容解决方法
昨晚配置完成office web apps 2013的外部网络访问之后,今天发现了一个很奇怪的问题,就是IE 11不支持文档在线浏览,找了很多方法,打补丁什么的,都不管用,最后在预览文件的页面,看到& ...
- 修改tomcat7编码问题(重定向等)
修改tomcat默认编码格式: 修改tomcat下的conf/server.xml文件,找到如下代码: <Connector port="8080" protocol=&qu ...
- allowMultiQueries=true允许插入多条语句
在context.xml中,url写成url="jdbc:mysql://localhost:3306/fivecrowdsourcing?allowMultiQueries=true&qu ...
- openstack 创建虚拟机的时候报错: Failed to allocate the network(s), not rescheduling.].
错误: 实例 "test-gtj" 执行所请求操作失败,实例处于错误状态.: 请稍后再试 [错误: Build of instance 5ea8c935-ee07-4788-823 ...
- 【2019年OCP新题】OCP题库更新出现大量新题-10
10.Which two statements are true about SQL*Loader Express Mode in an Oracle 12c database? A) It can ...
- NRF52840相对于之前的NRF52系列、NRF51系列增加了什么功能
现在广大客户的蓝牙采用NORDIC越来越多了,NORDIC一直在不断进行技术改进更好的满足市场需求 推出了新款NRF52840.NRF52840更为先进些,支持的功能也多点,比如IEEE802.15. ...
- 世界线(bzoj2894)(广义后缀自动机)
由于春希对于第二世代操作的不熟练,所以刚使用完\(invasion process\)便掉落到了世界线之外,错综复杂的平行世界信息涌入到春希的意识中.春希明白了事件的真相. 在一个冬马与雪菜同时存在的 ...
- HTML 遍历
HTML 遍历 HTML基本格式: 1.下行遍历: 属性 说明 contents 子节点的列表,将所有儿子节点存入列表 children 子节点的迭代类型,与.contents类似,用于循环遍历儿子节 ...