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 ...
随机推荐
- KMeans|| in Spark MLLib
算法跟传统的kmeans的区别主要在于:kmeans||的k个中心的不是随机初始化的.而是选择了k个彼此"足够"分离的中心. org.apache.spark.mllib.clus ...
- IDEA13 项目配置
之前用了一段时间的idea,有些老的代码,用eclipse跑了一下,比较麻烦,于是试用一下idea,最后,项目可以顺利跑起来. 对项目的配置,主要是在F4中,即:Module Setting,在模块的 ...
- Node.js-Usage & Example
Usage# node [options] [v8 options] [script.js | -e "script"] [arguments] Please see the Co ...
- 阿里巴巴集团2013实习生招聘技术类笔试卷(B)
一.单选题 1.在常用的网络协议中,___是面向连接的.有重传功能的协议. A.IP B.TCP C.UDP D.DXP 2.500张多米诺骨牌整齐地排成一列,依顺序编号为1.2.3… ...
- 如何使用socket进行java网络编程(三)
本篇文章继续记录java网络通讯编程的学习.在本系列笔记的第一篇中曾经记录过一个项目中的程序,当时还处于项目早期,还未进入与第三方公司的联调阶段,笔者只是用java写了一个client程序模拟了一下第 ...
- 名词-JS
1: 构造函数的伪装.(JS继承的时候出现 通过call函数改变this指向的对象) 2: 原型链.(JS继承的时候出现) 3:宿主对象:(有浏览器提供的对象.DOM, BOM - Document ...
- 二,windows下安装memcached服务
window下安装memcached服务的流程如下: 1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached 2. 在终端(也即cmd命令界面)下输入 ‘c ...
- VSCode保存插件配置并使用 gist 管理代码片段
setting sync 保存配置 由于公司和家里都使用 VSCode 作为主要编辑器,同步配置是最紧要的.VSCode 提供了setting sync插件,很方便我们同步插件配置.引用网上教程: 在 ...
- iOS完全自学手册——[一]Ready?No!
1.前言 今天开始我会不定期写一些iOS自学的相关文章.毕竟,自己是自学开始,知道自学有哪些坑,知道自学对于开发欠缺什么,此外,加上现在的实际开发经验,希望能给自学的iOS开发者一些建议. 2.Rea ...
- iOS-UIScrollView内容复用【实现两个试图的复用】
前言 这里说的内容复用,是指添加到 ScrollView 里面的试图是同一个模型:比如,我需要在 ScrollView 上添加100个 xkView(其他封装好的VC.UIView),每次滑动 Scr ...