MATLAB数值运算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
合就是从整体上使误差尽量的小一些。
四川师范大学数学与软件科学学院
3.2 插值和拟合
2、拟合
❖ 线性最小二乘拟合
polyfit
❖ 非线性最小二乘拟合
lsqcurvefit
四川师范大学数学与软件科学学院
3.2 插值和拟合
2、拟合
❖ 多项式拟合函数polyfit
p = polyfit(x,y,n)
❖ 常微分方程的数值解的思路
对求解区间进行剖分,然后对微分方程离散成在节点上
的近似公式或近似方程,最后结合给定条件求出近似解。
线性方程组的解法
❖ 直接法
通过有限步四则运算求得方程组准确解。主要有矩阵相
除和消去法。
❖ 迭代法
先给定一个解的初始值,然后按一定的法则逐步求出解
的近似值。
四川师范大学数学与软件科学学院
3.4 线性方程组的数值解
1、直接法
❖ 矩阵相除法
对线性方程组AX=B用矩阵除法来完成,即
X=A\B
若A为m × 矩阵,
当m=n且A可逆时,给出唯一解;
当n>m时,矩阵除给出方程的最小二乘解;
当n<同时,矩阵给出方程的最小范数解。
四川师范大学数学与软件科学学院
3.4 线性方程组的数值解
1、直接法
❖ 消去法
方程的个数和未知数的个不])化简为简化阶梯形,若系数矩阵的秩不等于
增广矩阵的秩,则方程组无解;若两者的秩相等,则方
在某海域测得一些点(x,y)处的水深z由下表给出,
船的吃水深度为5英尺,在矩形区域(75,200)
×(-50,150)里的哪些地方船要避免进入?
x
y
z
129 140 103.5 88 185.5 195
7.5 141.5 23
147 22.5 137.5
4
8
6
8
6
8
x
y
z
157.5
-6.5
9
107.5
2、拟合
❖ 非线性最小二乘曲线拟合
四川师范大学数学与软件科学学院
3.2 插值和拟合
2、拟合
❖ 非线性最小二乘曲线拟合
[a, jm]=lsqcurvefit(Fun,a0,x,y)
四川师范大学数学与软件科学学院
3.2 插值和拟合
2、拟合
❖ 非线性最小二乘曲线拟合
ch0302_lsqcurvefit.m
项式往往是高次多项式,这也就容易出现振荡现象(龙格
现象),即虽然在插值节点上没有误差,但在插值节点之
外插值误差变得很大,从“整体”上看,插值逼近效果将
变得“很差”。
❖ 所谓数据拟合是求一个简单的函数,例如是一个低次多项
式,不要求通过已知的这些点,而是要求在整体上“尽量好”
的逼近原函数。这时,在每个已知点上就会有误差,数据拟
[p,s] = polyfit(x,y,n)
x,x为已知数据组,n为要拟合的多项式的阶次,向量
p为返回的要拟合的多项式的系数,向量s为调用函数
polyval获得的错误预估值。
ch0302_ployfit.m
population Forecast.docx
四川师范大学数学与软件科学学院
3.2 插值和拟合
❖ 常用的方法:
梯形法数值积分
幸普森法数值积分
科茨数值积分
四川师范大学数学与软件科学学院
3.3 数值微积分
2、数值积分
❖ 梯形法数值积分
Z = trapz(X,Y)
doc trapz
四川师范大学数学与软件科学学院
3.3 数值微积分
2、数值积分
❖ 幸普森法数值积分uqad
[I, n] = quad(fun, a, b, tol, trace)
计算多项式 = 4 − 3 3 + 2 + 1 在区间[-3,4]的微分。
ch0303_diff.m
四川师范大学数学与软件科学学院
3.3 数值微积分
2、数值积分
❖ 求解定积分的数值方法的基本思想
将整个积分区间[a, b]分成n个子区间[xi, xi+1],i=1, 2, …, n,
其中x1 = a,xn+1 = b,这样求定积分问题就分解为求和问题。
'cubic‘
Triangle-based cubic interpolation
'nearest‘
Nearest neighbor interpolation
‘v4’
MATLAB 4 griddata method
四川师范大学数学与软件科学学院
3.2 插值和拟合
1、插值
❖ 二维一般分布数据插值griddata
-81
9
77
3
8
105
85.5
8
81
162 162 117.5
56.5 -66.5 84 -33.5
8
9
4
9
%\workspace%\Demo\ch0302_griddata.m
四川师范大学数学与软件科学学院
3.2 插值和拟合
2、拟合
❖ 用插值的方法对一函数进行近似,要求所得到的插值多项
式经过已知插值节点;在插值点比较大的情况下,插值多
3 MATLAB数值运算
3.1 多项式运算
3.2 插值和拟合
3.3 数值微积分
3.4 线性方程组的数值解
3.5 常微分方程的数值解
四川师范大学数学与软件科学学院
3.1 多项式运算
1、多项式的表示
❖ 在MATLAB中,多项式以行向量形式表示,其元素为多项
式的系数,并从左至右按降幂排列,多项式中缺少的幂次
的一组互异的点 上的函数值 = 0,1, … , ,如
何求[, ]上的其他若个点的函数值?
寻求一个简单的函数(),使满足:
=
(i=0,1, …, n)
并用 近似代替 。
上述问题称为插值问题。常用的插值方法有:拉格
朗日(Lagrange)插值、分段线性插值、埃尔米特
其中:fun是被积函数句柄或匿名函数;a和b分别
是定积分的下限和上限;tol用来控制积分精度,
缺省时取tol=0.001(相对误差),当tol的形式是
[rel_tol abs_tol]时,分别表示相对误差与绝对误
差;trace控制是否展现积分过程,若取非0则展现
积分过程,取0(默认)则不展现;返回参数I即
四川师范大学数学与软件科学学院
3.1 多项式运算
5、多项式的构造
❖ 求以向量为解的方程的函数:
p = poly(r)
❖ 由多项式向量构造符号多项式:
r = poly2sym(c)
r = poly2sym(c, v)
四川师范大学数学与软件科学学院
3.2 插值和拟合
1、插值
通过实验或者测量,获得函数 = () 在区间[, ]上
1、插值
❖ 二维插值函数interp2
ZI = interp2(X,Y,Z,XI,YI)
ZI = interp2(X,Y,Z,XI,YI,method)
X,Y,Z为插值节点(X,Y必须单调),XI,YI为被插
值点,ZI为被插值点的函数值,XI,YI可为矩阵,或XI
为行向量,YI为列向量,XI的值不能超过X的范围,YI
程组有解,方程组的解就是行简化阶梯形所对应的方程
组的解。
doc rref
doc linsolve
四川师范大学数学与软件科学学院
3.4 线性方程组的数值解
2、迭代法
❖ Jacobi迭代法
❖ Gauss-Seidel迭代法
❖ SOR(超松驰)迭代法
四川师范大学数学与软件科学学院
3.5 常微分方程的数值解
❖ 多项式的除法函数:
[q,r] = deconv(v,u)
四川师范大学数学与软件科学学院
3.1 多项式运算
4、多项式求值和求根
❖ 多项式求值函数:
y = polyval(p,x)
x可以是一个矩阵或者一个向量。计算x中任意元素处的
多项式p的值。
❖ 多项式求根函数:
r = roots(c)
根r是列向量!
2、数值积分
❖ 二重定积分数值求解dblquad
q = dblquad(fun,xmin,xmax,ymin,ymax,tol)
Description:doc dblquad
计算
2
1
2
1

x2
e 2 sin(x 2 y )dydx
(1) 建立一个函数文件myfun.m:
function f=myfun(x,y)
‘nearest’ 最邻近插值;
‘linear’
线性插值(默认值);
‘spline’
三次样条插值;
‘cubic’
立方插值(三次Hermite插值)。
四川师范大学数学与软件科学学院
3.2 插值和拟合
1、插值
❖ 一维插值函数interp1
检验线性插值、三次插值和样条插值3种插值方法
的效果。
【方法】在[0,2*pi]间线性间隔产生40个点做X,
global ki;
ki=ki+1; % 用于统计被积函数的调用次数
f=exp(-x.^2/2).*sin(x.^2+y);
(2) 调用dblquad函数求解。
global ki;ki=0;
I=dblquad(‘myfun',-2,2,-1,1)
ki
四川师范大学数学与软件科学学院
3.4 线性方程组的数值解
用二元函数z=f(x,y)的曲面拟合不规则的数据向量x,y,z,曲
面总是经过这些数据点(x,y,z),返回曲面z 在点(XI,YI)
处的插值。XI 和YI 是绘制3D图形所需的网格数据矩阵。
method可取值:
‘linear’
Triangle-based linear interpolation (default)
n维插值
四川师范大学数学与软件科学学院
3.2 插值和拟合
1、插值
❖ 一维插值函数interp1
yi= interp1(x,y,xi)
yi= interp1(x,y,xi,method)
x, y为插值节点(要求x单调),xi(不能超过x的范围)
为被插节点,yi为xi处的插值结果,method可取值:
79 63 61 65 81
84 84 82 85 86
试作出平板表面的温度分布曲面z=f(x,y)的图形。
%workspace%\Demo\ch0302_interp2.m
四川师范大学数学与软件科学学院
3.2 插值和拟合
1、插值
❖ 二维一般分布数据插值griddata
ZI = griddata(x,y,z,XI,YI, ‘mehtod’)
定积分值,n为被积函数的调用次数。
ch0303_quad.m
四川师范大学数学与软件科学学院
3.3 数值微积分
2、数值积分
❖ 科茨数值积分quadl
[I, n] = quadl(fun, a, b, tol, trace)
参数含义同quad。
精度较quad更高
四川师范大学数学与软件科学学院
3.3 数值微积分
要用“0”来补齐。
多项式:
= 2 3 − 3 2 + 4
表示为:[2 -3 0 4]
四川师范大学数学与软件科学学院
3.1 多项式运算
2、多项式的加减法
❖ 多项式的加减法相当于向量的加减法,须注意阶次要相同,
如不同,低阶的要补零。
多项式加法m文件
%workspace%\AddOns\polyadd.m
(Hermite)插值以及样条插值等。
四川师范大学数学与软件科学学院
3.2 插值和拟合
1、插值
❖ MATLAB实现插值的常用函数:
interp1
一维插值
interp1q
快速一维插值
interpft
采用FFT法的一维插值
spline
三次样条插值
interp2
二维插值
interp3
三维插值
interpn
多项式相减,相当于一个多项式加上另一个多项式的负值。
p1=[1 2 3];
p2=[2 3];
p1Addp2=polyadd(p1,p2);
p1Subp2=polyadd(p1,-p2);
四川师范大学数学与软件科学学院
3.1 多项式运算
3、多项式的乘法和除法
❖ 多项式的乘法函数:
w = conv(u,v)
其正弦函值为函数值 Y,用这40个点做插值节点;
再在[0,2*pi]间线性间隔产生10个点做被插节点,
分别用线性插值、三次插值和样条插值计算这10
个点的值,并与这10个点的正弦值做比较。
%workspace%\Demo\ch0302_interp1.m
四川师范大学数学与软件科学学院
3.2 插值和拟合
四川师范大学数学与软件科学学院
3.3 数值微积分
1、数值微分
❖ 计算数值微分可用diff函数
Y = diff(X)
Y = diff(X,n)
Y = diff(X,n,dim)
Description:doc diff
Functions->Data Analysis->Derivatives and Integrals->diff
的值不能超过Y的范围。method可取值如下:
‘nearest’
最邻近插值;
‘linear’
双线性插值(默认值);
‘spline’
三次样条插值;
‘cubic’
双三次插值。
四川师范大学数学与软件科学学院
3.2 插值和拟合
1、插值
❖ 二维插值函数interp2
测得平板表面3×5网格点处的温度分别为:
82 81 80 82 84
相关文档
最新文档