【Matlab4】微积分、方程、插值



2013年08月16日    Author:Guofei

文章归类: Matlab    文章编号: 11003

版权声明:本文作者是郭飞。转载随意,标明原文链接即可。本人邮箱
原文链接:https://www.guofei.site/2013/08/16/matlab4.html


3. 分析

3.2 微积分

limity,x,1,right’)  极限

diff(f)%求导
diff(f,v)%求导,v是自变量
diff(f,n)%n阶导数
diff(f,'v',n)%

diff(X)%矩阵差分
diff(X,n)%矩阵n阶差分diff(diff(X))是二阶
diff(X,n,dim)

int(s)%不定积分
int(s,v)%不定积分,v是自变量
int(f,x,-1,1)         定积分

q=dblquad(fun,xmin,xmax,ymin,ymax)%二重积分
q=triplequad(fun,xmin,xmax,ymin,ymax)%三重积分

symsumf,n,0,50  求和公式


%梯度和方向导数
FX=gradient(F)


taylorf3x1  %x-1的三阶泰勒展开
  taylor(log(x),x,'ExpansionPoint',1,'Order',4)
taylortool%图和工具:泰勒工具!!!

以下用匿名函数做
fzerof,2    %零点
fminbnd(f,0,2)    %极小值点

几种求积分的方法

  1. trapz(y)梯形法
    dt=0.01
    z=trapz(y) * dt % y是向量,dt是步长
    Q = quad(FUN,A,B,TOL,TRACE)
    
  2. quad辛普生法
    fun1
    quad'fun1',0,1
    
  3. quadl自适应lobatto法,适用于平滑、高精度情况
    qual1('fun1',0,1)
    
  4. quadgk自适应GK方法,高精度、震荡情况.可计算广义积分
    dblquad(fun,xmin,xmax,ymin,ymax) % 二重积分
    triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax) % 三重积分
    

3.3 多项式

r=roots(p)%解方程
p=poly(r)%用解创建多项式
  polyA%返回特征多项式
polyval(p,x0)%多项式某点的值
conv(p1,p2)%多项式乘法
[q,r]=deconv(v,u)%多项式除法,q是商,u是余式
k=deconv(p)%多项式微分
k=deconv(a,b)%计算conv(a,b)的微分
[q,d]=polyder(a,b)%计算a/b的微分=q/d

residue

3.4 解方程

% 方法1
x=fsolve(@fun,x0)     (最小二乘法)
其中fun可以是一个m文件、一个句柄

% 方法2:solve()(在符号函数中使用)
[x,y]=solve('x^2+(y-100)^2-89^2','x^2+y^2-10000');
x=double(x),y=double(y)

% 方法3:求根
fzeroroots

3.5 微分方程

1、通解

dsolve('','')
% D2x代表二阶导数,Dx(0)代表初始解

[x,y,z]=dsolve('Dx=2*x-3*y+3*z','Dy=4*x-5*y+3*z','Dz=4*x-4*y+2*z','t')
x=simplify(x);y=simplify(y);z=simplify(z);

dsolve('x*Dy+2*y-exp(x)=0','y(1)=2*exp(1)','x')

2、数值解

% 统一公式
[T,Y]=solver(@fun,tspan,y0)
[T,Y]=solver(@fun,tspan,y0,options)
options=odeset()
名称特点说明
ode45单步法,4、5阶龙格-库塔方法,精度中首选,普遍
ode23单步,2、3阶龙格-库塔法,精度低 
ode113多步,Adams法,精度高
ode23t梯形适度刚性情况
ode15s多步,Gear's反向数值积分,精度中ode45失效时
ode23s单步,二阶Rosebrock算法,精度低 
ode23tb梯形,精度低 
ode15i可变秩,精度低完全隐式微分方程

3、pdetool

3.6 复变函数

real % 实部
imag % 虚部
conj % 共轭
abs % 模
angle % 辐角

[X,Y] = pol2cart(TH,R) % 极坐标转直角坐标

3.7 插值

  1. 一维插值
    yi=interp1(X,Y,xi,method)
    pp=interp1(X,Y,method,'pp')
    method='nearest'/'linear'/'spline'/'cubic'
    
  2. 傅里叶插值
    (适用于周期函数)
    yi=interpft(y,n)%把向量y扩展成n个
    
  3. 二维插值
    Zi=interp2(X,Y,Z,Xi,Yi,method,extrapval)
    interp3
    interpn
    ndgrid%n维网格  与meshgrid类似
    
  4. 三维插值:
    插值1:
    [X,Y]=meshgrid(,)   %x,y,z是非网格数据
    Z=griddata(x,y,z,X,Y,’linear’)  %用残缺数据,插值成网格数据’linear’/’cubic’ /’nearest’
    mesh(X,Y,Z)
    插值2:
    [X,Y]=meshgrid(,);
    F=TriScatteredInterp(x,y,z); Z=F(X,Y);mesh(X,Y,Z)
    
  5. 三次样条
    csape 给定约束的三次样条
    csapi 插值生成三次样条
    csaps  平滑生成三次样条
    cscvn  内插参数的三次样条
    ppmak 分段多项式样条
    spapi 插值生成B样条
    spaps B样条平滑处理
    spap2 最小二乘法B样条
    spcrv 均匀划分的B样条
    spmak B样条
    rpmak 有理样条
    rsmak 标准几何形状有理样条
    stmak 整理成st形式
    tpaps 模版平滑样条
    rscvn 分段双圆弧hermite插值
    

书推荐

  1. 【强烈推荐】matlab与数学试验 国防工业出版社 全面介绍了matlab的各种应用,值得注意的是:数值积分试验,微分方程试验,随机模拟实验,加密方法试验,分形模拟试验,遗传算法试验
  2. 傅里叶变换及其应用 布雷斯威尔 西安交通大学出版社 好书!包含拉普拉斯变换,扩散方程,成像技术等,值得看!!
  3. 数理统计及其在数学建模中的实践(done)
  4. matlab入门到精通:符号计算,电路模拟,simulink
  5. 精通matlab,计算篇(插值,傅立叶分析,偏微分方程),计算实例
  6. 数理统计与数据分析
  7. matlab实用指南(上下)电子工业出版社 书比较薄,比较深

您的支持将鼓励我继续创作!