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 ...
随机推荐
- LeetCode148:Sort List
题目: Sort a linked list in O(n log n) time using constant space complexity. 解题思路: 根据题目要求,可知只能用归并排序,其他 ...
- 使用原生方法从kafka消费消息
kafka最早是linkedin开发的一套高性能类队列结构,具有发布—订阅功能.现在是apache的项目之一.支持很多种客户端从其中进行consume,网上也有许多第三方的客户端(注1),但下面我们只 ...
- web请求的状态码
摘录于 https://www.cnblogs.com/lovychen/p/6256343.html 1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行 ...
- Day 9 函数的初识1
def my_len(): l1 = [1,2,3,5,6] print(111) print(222) return print(333)print(my_len()) 一.函数的定义1.遇到ret ...
- 在html页面添加一个隐藏域,并渲染一个需要保存的数值,在js中需要再获取,而不影响页面结构
<div style="display:none">可以将需要保存的数值放在文本内容中,也可以放在标签的属性当中, 如果放在文本内容中,注意换行后 \n 的存在< ...
- 使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之三(配置文件读取)
干了一天的活,还有点时间,给兄弟们写点东西吧. 大家有没有发现一个问题?那就是在.Net Core的MVC项目里面,没有.config文件了!!!同志们,没有config文件了啊,这样搞,我以后要做些 ...
- linux下tomcat运行war包常用命令
一.先是war包copy到 linux 的相关目录,我这的是/opt/soft/tomcat_ecp/webapps. 如果是老项目,在导入war的之前,习惯上是把之前的war备份一下, 如 mv p ...
- C语言的组成 以及预编译
这么多年过去了,回头再来学习一下C语言,发现很多不一样的感觉 #include <stdio.h> int main(int argc, const char * argv[]) { pr ...
- OC 中的属性
自动合成 (autosynthesis) @property 语法,会做下面两件事情 自动生成存取方法 由编译器生成,编辑器里不会看到这些方法. 向类中添加适当类型的实例变量 在属性前加下划线,作为实 ...
- Xcode10 libstdc++.6.0.9.tbd移除引起的错误
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/u ...