数学建模培训第四次课程_计算方法

时间:2025-07-12

数学建模 计算方法

1. 2. 3. 4. 5. 6. 7. 8. 9.

误差 方程求根 解线性方程组的直接法 解非线性方程组的迭代法 插值 拟合 数值积分与数值微分 概率论与数理统计问题的计算机求解 非传统解法

数学建模 计算方法

舍入误差:计算机只能存储有效数字而引起的。数值计算的若干原则 1.避免两相近数相减去 2.避免绝对值太小的数做除数 3.要防止大数“吃掉”小数 4.简化计算步骤,提高计算效率 截断误差:由于用离散、代数的公式近似代替连续的数学 表达式时产生的。 f x0 x f x0 f x0 lim 2 3 x 0 x x x x e 1 x f x0 x f x0 2! 3! x

数学建模 计算方法

ax2 bx c 0 b b2 4ac 求根公式:x 2a比如:

直接利用求根公式在计算机进行计算,得到:

x1 54.30, x2 -0.0016产生了误差,误差是多少?

x2 54.32 x 0.1 0精确解:

x1 54.318158995 x2 0.0018410049576

b b2 4ac 对x 进行分子有理化,得到 2a

b 4ac2

x

2c b b 2 4ac

2951 0.4000 54.32

b

数学建模 计算方法

1 lim 1 e n n

n

n越大,数列越接近无理数e

当n是10的次幂时,不能使用1/2的次幂来精确表示1/n 当n很大时,由于1和1/n的有效数数位位置不匹配, 因而计算1+1/n产生的误差相对于1/n的值来说是很大

(1+1/n)^n 的n次幂又放大了这种误差。

x.xxx xxxx xxxx xxxx + 0.000 0000 yyyy yyyy yyyy yyyy = x.xxx xxxx zzzz zzzz yyyy yyyy

数学建模 计算方法

方程求根

数学建模 计算方法

不动点迭代 x 1, 则迭代收敛

数学建模 计算方法

二分法

数学建模 计算方法

解线性方程组的直接法高斯消元法 数值求解线性方程组的局限性算法 向后代入法或向前代入法高斯消去法 局部选主元的高斯消去法 全选主元的高斯消去法 局部选主元的LU分解 Cholesky 分解

计算量 n^2 浮点操作2n^3/3 浮点操作 2n^3 /3 浮点操作 和 n^2比较 2n^3 /3 浮点操作 和 n^3比较 2n^3 /3 浮点操作 和 n^2比较 n^3 /3 浮点操作

数学建模 计算方法

病态矩阵

条件数

k 近似为1时 方程组为良态 k 很大时 方程组为病态

残差残差的向量为 若数值解接近精确解,那么 接近零, 反过来,当 接近零不能保证是精确解

数学建模 计算方法

分解法1. LU分解法 2 cholesky分解法

X=A\b

数学建模 计算方法

对方程组Ax=b,如果A中的系数或b中元素依赖于一个或多个x, 那么此方程组成为非线性的

牛顿法 (雅可比)x A 1 x b x

用迭代求解非线性系统x A 1b令 得到:

f 0 或迭代过程:step 1

f 0

step 2step 3 step 4

A k A x k b k b x k

f k A k x k b k 判断f的范数是否足够小 k 1

step 5

x

go to

step 1

数学建模 计算方法

1 基本思想 2 任意阶的插值多项式单项式插值 拉格朗日插值

牛顿插值

3 分段多项式插值分段线性 三阶样条插值

4 MATLAB的内置插值函数linterp函数 linterp2函数

数学建模 计算方法

拟合:

拟合函数与数据点不一致插值:插值函数要精确地经过每个已经数据点

数学建模 计算方法

线性多项式插值

插值(内插)

二次多项式插值

数学建模 计算方法

y c1x2 c2 x c3此函数通过 (-2,-2),(-1,1) (2,-1),代入上式,得到 2 c1 2 c2 2 c32

已知数据点: 1, y1 , x2 , y2 , x3 , y3 x

x12 2 x2 2 x3

x1 1 c1 y1 x2 1 c2 y2 x3 1 c3 y3

1 c1 1 c2 1 c32

插值多项式为:

1 c1 2 c2 2 c32

y c1x2 c2 x c3

4 2 1 c1 2 1 1 1 c2 1 4 2 1 c 1 3

数学建模 计算方法

function yi = lagrint(x,y,xi) dxi = xi - x; n = length(x); L = zeros(size(y));

已知数据点: 1, y1 , x2 , y2 x

P 1 x y1L1 x y2 L2 x yn Ln x nLj x k 1 k j n

L(1) = prod(dxi(2:n))/prod(x(1)-x(2:n)); P x c1x c2 1 L(n) = prod(dxi(1:n-1))/prod(x(n)-x(1:n-1)); for j=2:n-1 进行线性插值,得到方程: num = prod(dxi(1:j-1))*prod(dxi(j+1:n)); y y1 y1 x2 y2 x1 den = 2 prod(x(j)-x(1:j-1))*prod(x(j)c1 c2 x(j+1:n));x1 x2 x2 x1 L(j) = num/den; end P x y1L1 x y2 L2 x 1 yi = sum(y.*L);

x xk x j xk

x xk n x xk Lj x k 1 x j xk k j 1 x j xk

j 1

x x2 L1 x x1 x2

L2 x

x x1 x2 x1

function y=lagrange(x0,y0,x) ii=1:length(x0); y=zeros(size(x)); for i=ii ij=find(ii~=i); y1=1; for j=1:length(ij), y1=y1.*(x-x0(ij(j))); end y=y+y1*y0(i)/prod(x0(i)-x0(ij)); end

数学建模 计算方法

x0=-1+2*[0:10]/10; y0=1./(1+25*x0.^2); % 产生数据点 x=-1:.01:1; y=lagrange(x0,y0,x); % Lagrange 插值 ya=1./(1+25*x.^2); plot(x,ya,x,y,':') y1=interp1(x0,y0,x,‘cubic’); % 三次Hermite插值 y2=interp1(x0,y0,x,‘spline’); % 三次分段样条插值 plot(x,ya,x,y1,':',x,y2,'--')

数学建模 计算方法

一维插值函数

interp1

y=interp1(x,y,x1,方法)

x,y :已知数据点 x1 : 插值横坐标 方法:默认为‘linear’(线性插值) ‘nearest’ 最近点等值方式 ‘cubi …… 此处隐藏:1628字,全部文档内容请下载后查看。喜欢就下载吧 ……

数学建模培训第四次课程_计算方法.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219