哈工大数学实验-迭代问题
大学数学实验报告----迭代(一)——方程求解
![大学数学实验报告----迭代(一)——方程求解](https://img.taocdn.com/s3/m/2d130d21cfc789eb172dc81a.png)
Do M n , n, 2, 100
运行结果:
M n_Integer : Module y, k , m 2; k m ^ n 1 ;
x Mod k, n ;
Print n, " ", PrimeQ n , " ", x, "
", GCD m, n
Do M n , n, 2, 100
2 True 0 2 3 True 1 1 4 False 0 2 5 True 1 1 6 False 2 2 7 True 1 1 8 False 0 2 9 False 4 1 10 False 2 2 11 True 1 1 12 False 8 2 13 True 1 1 14 False 2 2 15 False 4 1 16 False 0 2 17 True 1 1 18 False 14 2 19 True 1 1 20 False 8 2 21 False 4 1 22 False 2 2 23 True 1 1 24 False 8 2 25 False 16 1 26 False 2 2 27 False 13 1 28 False 8 2 29 True 1 1 30 False 2 2 31 True 1 1 32 False 0 2 33 False 4 1 34 False 2 2 35 False 9 1 36 False 32 2 37 True 1 1 38 False 2 2 39 False 4 1 40 False 8 2
99 False 3 27 100 False 1 67 Null2
m=4 时
输入程序:
M n_Integer : Module y, k , m 4; k m ^ n 1 ; x Mod k, n ; Print n, " ", PrimeQ n , " ", GCD m, n , " ", x Do M n , n, 2, 100
哈工大随机信号实验报告
![哈工大随机信号实验报告](https://img.taocdn.com/s3/m/5442a1195f0e7cd184253667.png)
H a r b i n I n s t i t u t e o f T e c h n o l o g y实验报告课程名称:随机信号分析院系:电信学院班级: 1205201 姓名:学号:指导教师:郑薇实验时间: 2014年 11月哈尔滨工业大学实验一 各种分布随机数的产生一、 实验目的在很多系统仿真的过程中,需要产生不同分布的随机变量。
利用计算机可以很方便地产生不同分布的随机变量,各种分布的随机变量的基础是均匀分布的随机变量。
有了均匀分布的随机变量,就可以用函数变换等方法得到其他分布的随机变量。
二、 实验内容产生均匀分布的随机数、高斯分布的随机数和其它分布的随机数。
三、 实验原理1. 均匀分布随机数的产生原理产生伪随机数的一种实用方法是同余法,它利用同余运算递推产生伪随机数序列。
最简单的方法是加同余法)(m od 1M c y y n n +=+My x n n 11++=为了保证产生的伪随机数能在[0,1]内均匀分布,需要M 为正整数,此外常数c 和初值y0亦为正整数。
加同余法虽然简单,但产生的伪随机数效果不好。
另一种同余法为乘同余法,它需要两次乘法才能产生一个[0,1]上均匀分布的随机数)(m od 1M ay y nn =+M y x n n 11++=式中,a 为正整数。
用加法和乘法完成递推运算的称为混合同余法,即)(m od 1M c ay y n n +=+My x n n 11++=用混合同余法产生的伪随机数具有较好的特性,一些程序库中都有成熟的程序供选择。
常用的计算语言如Basic 、C 和Matlab 都有产生均匀分布随机数的函数可以调用,只是用各种编程语言对应的函数产生的均匀分布随机数的范围不同,有的函数可能还需要提供种子或初始化。
Matlab 提供的函数rand()可以产生一个在[0,1]区间分布的随机数,rand(2,4)则可以产生一个在[0,1]区间分布的随机数矩阵,矩阵为2行4列。
哈尔滨工业大学2013秋数值分析试题及答案
![哈尔滨工业大学2013秋数值分析试题及答案](https://img.taocdn.com/s3/m/3763591d79563c1ec5da71f5.png)
xi
f xi
-1 1
0 0
2 16
-1 , 2 1)试求 f ( x) 在 上的 Hermite 插值多项式 H ( x) ,使之满足下列条件:
H ( xi ) f ( xi ), i 0,1, 2
,
H ( x1 ) 0
R( x) f ( x) H ( x ) f ( 4 )( ) ( x 1) x 2 ( x 2) 4! ,
(1)求出该格式的局部截断误差首项和首项系数; (2)分析该格式的收敛性; (3)讨论该格式的绝对稳定性,指出绝对稳定区间。
Cr
(在局部截断误差中 (参考定理: 设
p p 1 r r 1 1 [ (i) ai r (i) bi ] , r 2,3, r! i 0 i 1
(1) 0, (0) 0, (2) 0, '(0) 0, ( x) 0
故 (t ) 有 5 个零点, (4) (t ) 至少有一个零点 :
(4) ( ) f (4) ( ) 4!k ( x) 0
所以 k ( x)
f (4) ( ) ,余项表达式为 4!
0.15625 0.15625 x0 [1.6,1.2] , H 0 F '[ x 0 ]1 0.208333 0.208333
x1 [1.58125,1.225] y 0 [0.000976562, 0.120273] r 0 [0.01875, 0.025] 0.154345 0.154345 H1 0.206428 0.210238 x 2 [1.58114,1.22474] y1 [0.000977866, 0.000291477] r1 [0.000108524, 0.000259077] 0.150145 0.150145 H2 0.202228 0.214438
哈尔滨工程大学数值分析大作业2014-附fortran程序
![哈尔滨工程大学数值分析大作业2014-附fortran程序](https://img.taocdn.com/s3/m/0f29caeeb7360b4c2f3f64c8.png)
B班大作业要求:1. 使用统一封皮;2. 上交大作业内容包含:一摘要二数学原理三程序设计(必须对输入变量、输出变量进行说明;编程无语言要求,但程序要求通过)四结果分析和讨论五完成题目的体会与收获3。
提交大作业的时间:本学期最后一次课,或考前答疑;过期不计入成绩;4。
提交方式:打印版一份;或手写大作业,但必须使用A4纸。
5。
撰写的程序需打印出来作为附录。
课程设计课程名称:设计题目:学号:姓名:完成时间:题目一:非线性方程求根 一 摘要非线性方程的解析解通常很难给出,因此非线性方程的数值解就尤为重要.本实验通过使用常用的求解方法二分法和Newton 法及改进的Newton 法处理几个题目,分析并总结不同方法处理问题的优缺点。
观察迭代次数,收敛速度及初值选取对迭代的影响。
用Newton 法计算下列方程(1) 310x x --= , 初值分别为01x =,00.45x =,00.65x =; (2) 32943892940x x x +-+= 其三个根分别为1,3,98-。
当选择初值02x =时给出结果并分析现象,当6510ε-=⨯,迭代停止。
二 数学原理对于方程f (x)=0,如果f (x )是线性函数,则它的求根是很容易的.牛顿迭代法实质上是一种线性化方法,其基本思想是将非线性方程f(x)=0逐步归结为某种线性方程来求解.设已知方程f (x)=0有近似根x k (假定k f'(x )0≠) ,将函数f (x)在点x k 进行泰勒展开,有k k k f(x)f(x )+f'(x )(x-x )+≈⋅⋅⋅于是方程f (x)=0可近似的表示为k k k f(x )+f'(x )(x-x )=0这是个线性方程,记其根为x k+1,则x k+1的计算公式为k+1k ()x =x -'()k k f x f x ,k=0,1,2,…这就是牛顿迭代法或简称牛顿法。
三 程序设计(本程序由Fortran 语言编制)(1)对于310x x --=,按照上述数学原理,编制的程序如下program newton implicit nonereal :: x (0:50),fx (0:50),f1x (0:50)!分别为自变量x ,函数f(x )和一阶导数f1(x ) integer :: kwrite (*,*) ”x (0)=”read(*,*) x(0) !输入变量:初始值x(0)open (10,file=’1.txt’) do k=1,50,1fx (k)=x (k —1)**3-x (k —1)—1 f1x (k)=3*x(k —1)**2-1x (k)=x (k —1)-fx (k)/f1x(k) !牛顿法write(*,'(I3,1x ,f11。
《数学实验》实验报告——迭代法
![《数学实验》实验报告——迭代法](https://img.taocdn.com/s3/m/e46240f1856a561252d36f5b.png)
观察序列,并且判断极限。 Mathematica 程序如下:
当 x0=0.1,n=10 时,运行程序得
当 x0=0.5,n=10 时,运行程序得
当 x0=0.9,n=10 时,运行程序得
当 x0=1,n=10 时,运行程序得
实验结论:
10
由以上实验可得,函数 f(x)=x/2+1/x 的极限为 1.41421
《数学实验》实验报告
班级 实验 内容 **** 学号 **** 姓名 实验 类别 **** 成绩 实验 时间
迭代法
自选实验
2011.6.7
实验问题:
n 元线性方程组
a11 x1 a12 x 2 a1 n xn 0 a x a x a x 0 21 1 22 2 2n n am 1 x1 am 2 x 2 amn xn 0
其中,f[x_]:=为所求迭代函数,迭代n次产生相应是序列,并观察。
(3)线性方程组的迭代求解 对给定的矩阵 M、 数组 f 和初始向量 x0, 由 X^(n+1)=Mx^n+f,n=0,1,2,3……给定的结 果 其 Matheatica 程序如下:
2
实验过程:
1.迭代序列 ( 1 ) 给 定 的 实 数 域 上 光 滑 的 实 值 函 数 f(x) 以 及 初 值 x0, 定 义 数 列 x(n+1)=f(x0),n=0,1,2,3,……. 对函数 f(x)= (25*x - 85)/(x + 3)的迭代过程,可以形象地用蜘蛛网图像来直观地显示,运 行以下程序:
2.方程求根
用迭代序列求 g(x)=x^3-2*x+1 的根,其 matheatic 程序如下:
数学数学实验Newton迭代法
![数学数学实验Newton迭代法](https://img.taocdn.com/s3/m/f6468b86011ca300a7c39066.png)
数学实验题目4 Newton 迭代法摘要0x 为初始猜测,则由递推关系产生逼近解*x 的迭代序列{}k x ,这个递推公式就是Newton 法。
当0x 距*x 较近时,{}k x 很快收敛于*x 。
但当0x 选择不当时,会导致{}k x 发散。
故我们事先规定迭代的最多次数。
若超过这个次数,还不收敛,则停止迭代另选初值。
前言利用牛顿迭代法求的根程序设计流程问题1(1 程序运行如下:r = NewtSolveOne('fun1_1',pi/4,1e-6,1e-4,10) r = 0.7391(2 程序运行如下:r = NewtSolveOne('fun1_2',0.6,1e-6,1e-4,10) r = 0.5885问题2(1 程序运行如下:否 是否是是定义()f x输入012,,,x N εε开 始1k =01()f x ε<0100()()f x x x f x =-'102||x x ε-<k N =输出迭代失败标志输出1x输出奇 异标志结 束01x x = 1k k =+ 否r = NewtSolveOne('fun2_1',0.5,1e-6,1e-4,10)r = 0.5671(2)程序运行如下:r = NewtSolveOne('fun2_2',0.5,1e-6,1e-4,20)r = 0.5669问题3(1)程序运行如下:①p = LegendreIter(2)p = 1.0000 0 -0.3333p = LegendreIter(3)p = 1.0000 0 -0.6000 0p = LegendreIter(4)p =1.0000 0 -0.8571 0 0.0857p = LegendreIter(5)p = 1.0000 0 -1.1111 0 0.2381 0②p = LegendreIter(6)p = 1.0000 0 -1.3636 0 0.4545 0 -0.0216r = roots(p)'r= -0.932469514203150 -0.6612 0.9324695142031530.6612 -0.238619186083197 0.238619186083197用二分法求根为:r = BinSolve('LegendreP6',-1,1,1e-6)r = -0.932470204878826 -0.661212531887755 -0.2386200573979590.2386 0.661192602040816 0.932467713647959(2)程序运行如下:①p = ChebyshevIter(2)p = 1.0000 0 -0.5000p = ChebyshevIter(3)p = 1.0000 0 -0.7500 0p = ChebyshevIter(4)p = 1.0000 0 -1.0000 0 0.1250p = ChebyshevIter(5)p = 1.0000 0 -1.2500 0 0.3125 0②p = ChebyshevIter(6)p = 1.0000 0 -1.5000 0 0.5625 0 -0.0313r = roots(p)'r = -0.965925826289067 -0.7548 0.9659258262890680.7547 -0.258819045102521 0.258819045102521用二分法求根为:r = BinSolve('ChebyshevT6',-1,1,1e-6)r = -0.965929926658163 -0.7755 -0.2588289221938780.2588 0.7020 0.965924944196429与下列代码结果基本一致,只是元素顺序稍有不同:j = 0:5;x = cos((2*j+1)*pi/2/(5+1))x =0.965925826289068 0.7548 0.258819045102521-0.258819045102521 -0.7547 -0.965925826289068(3)程序运行如下:①p = LaguerreIter(2)p = 1 -4 2p = LaguerreIter(3)p = 1 -9 18 -6p = LaguerreIter(4)p = 1 -16 72 -96 24p = LaguerreIter(5)p =1.0000 -25.0000 200.0000 -600.0000 600.0000 -120.000②p = LaguerreIter(5)p =1.0000 -25.0000 200.0000 -600.0000 600.0000 -120.000r = roots(p)'r =12.6432 7.8891 3.5964257710407111.4520 0.263560319718141用二分法求根为:r = BinSolve('LaguerreL5',0,13,1e-6)r = 0.263560314567722 1.4789 3.5964257656311507.0720 12.6490(4)程序运行如下:①p = HermiteIter(2)p = 1.0000 0 -0.5000p = HermiteIter(3)p = 1.0000 0 -1.5000 0p = HermiteIter(4)p = 1.0000 0 -3.0000 0 0.7500p = HermiteIter(5)p = 1.0000 0 -5.0000 0 3.7500 0②p = HermiteIter(6)p = 1.0000 0 -7.5000 0 11.2500 0 -1.8750r = roots(p)'r =-2.3587 2.3588 -1.3358490740136961.335849074013698 -0.4367 0.4366用二分法求根为:r = BinSolve('HermiteH6',-3,3,1e-6)r =-2.3516 -1.335849********* -0.43630.4366 1.335848983453244 2.3504所用到的函数function r = NewtSolveOne(fun, x0, ftol, dftol, maxit)% NewtSolveOne 用Newton法解方程f(x)=0在x0附近的一个根%% Synopsis: r = NewtSolveOne(fun, x0)% r = NewtSolveOne(fun, x0, ftol, dftol)%% Input: fun = (string) 需要求根的函数及其导数% x0 = 猜测根,Newton法迭代初始值% ftol = (optional)误差,默认为5e-9% dftol = (optional)导数容忍最小值,小于它表明Newton法失败,默认为5e-9 % maxit = (optional)迭代次数,默认为25%% Output: r = 在寻根区间内的根或奇点if nargin < 3ftol = 5e-9;endif nargin < 4dftol = 5e-9;endif nargin < 5maxit = 25;endx = x0; %设置初始迭代位置为x0k = 0; %初始化迭代次数为0while k <= maxitk = k + 1;[f,dfdx] = feval(fun,x); %fun返回f(x)和f'(x)的值if abs(dfdx) < dftol %如果导数小于dftol,Newton法失败,返回空值r = [];warning('dfdx is too small!');return;enddx = f/dfdx; %x(n+1) = x(n) - f( x(n) )/f'( x(n) ),这里设dx = f( x(n) )/f'( x(n) )x = x - dx;if abs(f) < ftol %如果误差小于ftol,返回当前x为根r = x;return;endendr = []; %如果牛顿法未收敛,返回空值function p = LegendreIter(n)% LegendreIter 用递推的方法计算n次勒让德多项式的系数向量Pn+2(x) = (2*i+3)/(i+2) * x*Pn+1(x) - (i+1)/(i+2) * Pn(x)%% Synopsis: p = LegendreIter(n)%% Input: n = 勒让德多项式的次数%% Output: p = n次勒让德多项式的系数向量if round(n) ~= n | n < 0error('n必须是一个非负整数');endif n == 0 %P0(x) = 1p = 1;return;elseif n == 1 %P1(x) = xp = [1 0];return;endpBk = 1; %初始化三项递推公式后项为P0pMid = [1 0]; %初始化三项递推公式中项为P1for i = 0:n-2pMidCal = zeros(1,i+3); %构造用于计算的x*Pn+1pMidCal(1:i+2) = pMid;pBkCal = zeros(1,i+3); %构造用于计算的PnpBkCal(3:i+3) = pBk;pFwd = (2*i+3)/(i+2) * pMidCal - (i+1)/(i+2) * pBkCal; %勒让德多项式三项递推公式Pn+2(x) = (2*i+3)/(i+2) * x*Pn+1(x) - (i+1)/(i+2) * Pn(x)pBk = pMid; %把中项变为后项进行下次迭代pMid = pFwd; %把前项变为中项进行下次迭代endp = pFwd/pFwd(1); %把勒让德多项式最高次项系数归一化function p = ChebyshevIter(n)% ChebyshevIter 用递推的方法计算n次勒让德-切比雪夫多项式的系数向量Tn+2(x) = 2*x*Tn+1(x) - Tn(x)%% Synopsis: p = ChebyshevIter(n)%% Input: n = 勒让德-切比雪夫多项式的次数%% Output: p = n次勒让德-切比雪夫多项式的系数向量if round(n) ~= n | n < 0error('n必须是一个非负整数');endif n == 0 %T0(x) = 1p = 1;return;elseif n == 1 %T1(x) = xp = [1 0];return;endpBk = 1; %初始化三项递推公式后项为T0pMid = [1 0]; %初始化三项递推公式中项为T1for i = 0:n-2pMidCal = zeros(1,i+3); %构造用于计算的x*Tn+1pMidCal(1:i+2) = pMid;pBkCal = zeros(1,i+3); %构造用于计算的PnpBkCal(3:i+3) = pBk;pFwd = 2*pMidCal - pBkCal; %勒让德-切比雪夫多项式三项递推公式Tn+2(x) = 2*x*Tn+1(x) - Tn(x)pBk = pMid; %把中项变为后项进行下次迭代pMid = pFwd; %把前项变为中项进行下次迭代endp = pFwd/pFwd(1); %把勒让德-切比雪夫多项式最高次项系数归一化function p = LaguerreIter(n)% LaguerreIter 用递推的方法计算n次拉盖尔多项式的系数向量Ln+2(x) = (2*n+3-x)*Ln+1(x) - (n+1)*Ln(x)%% Synopsis: p = LaguerreIter(n)%% Input: n = 拉盖尔多项式的次数%% Output: p = n次拉盖尔多项式的系数向量if round(n) ~= n | n < 0error('n必须是一个非负整数');endif n == 0 %L0(x) = 1p = 1;return;elseif n == 1 %L1(x) = -x+1p = [-1 1];return;endpBk = 1; %初始化三项递推公式后项为L0pMid = [-1 1]; %初始化三项递推公式中项为L1for i = 0:n-2pMidCal1 = zeros(1,i+3); %构造用于计算的x*Ln+1(x)pMidCal1(1:i+2) = pMid;pMidCal2 = zeros(1,i+3); %构造用于计算的Ln+1(x)pMidCal2(2:i+3) = pMid;pBkCal = zeros(1,i+3); %构造用于计算的Ln(x)pBkCal(3:i+3) = pBk;pFwd =( (2*i+3)*pMidCal2 - pMidCal1 - (i+1)*pBkCal )/ (i+2); %拉盖尔多项式三项递推公式Ln+2(x) = (2*n+3-x)*Ln+1(x) - (n+1)^2*Ln(x)pBk = pMid; %把中项变为后项进行下次迭代pMid = pFwd; %把前项变为中项进行下次迭代endp = pFwd/pFwd(1); %把拉盖尔多项式最高次项系数归一化function p = HermiteIter(n)% HermiteIter 用递推的方法计算n次埃尔米特多项式的系数向量Hn+2(x) = 2*x*Hn+1(x) - 2*(n+1)*Hn(x)%% Synopsis: p = HermiteIter(n)%% Input: n = 埃尔米特多项式的次数%% Output: p = n次埃尔米特多项式的系数向量if round(n) ~= n | n < 0error('n必须是一个非负整数');endif n == 0 %H0(x) = 1p = 1;return;elseif n == 1 %H1(x) = 2*xp = [2 0];return;endpBk = 1; %初始化三项递推公式后项为L0pMid = [2 0]; %初始化三项递推公式中项为L1for i = 0:n-2pMidCal = zeros(1,i+3); %构造用于计算的x*Hn+1(x)pMidCal(1:i+2) = pMid;pBkCal = zeros(1,i+3); %构造用于计算的Hn(x)pBkCal(3:i+3) = pBk;pFwd =2*pMidCal - 2*(i+1)*pBkCal; %埃尔米特多项式三项递推公式Hn+2(x) = 2*x*Hn+1(x) - 2*(n+1)*Hn(x)pBk = pMid; %把中项变为后项进行下次迭代pMid = pFwd; %把前项变为中项进行下次迭代endp = pFwd/pFwd(1); %把拉盖尔多项式最高次项系数归一化function r = BinSolve(fun, a, b, tol)% BinSolve 用二分法解方程f(x)=0在区间[a,b]的根%% Synopsis: r = BinSolve(fun, a, b)% r = BinSolve(fun, a, b, tol)%% Input: fun = (string) 需要求根的函数% a,b = 寻根区间上下限% tol = (optional)误差,默认为5e-9%% Output: r = 在寻根区间内的根if nargin < 4tol = 5e-9;endXb = RootBracket(fun, a, b); %粗略寻找含根区间[m,n] = size(Xb);r = [];nr = 1; %初始化找到的根的个数为1maxit = 50; %最大二分迭代次数为50for i = 1:ma = Xb(i,1); %初始化第i个寻根区间下限b = Xb(i,2); %初始化第i个寻根区间上限err = 1; %初始化误差k = 0;while k < maxitfa = feval(fun, a); %计算下限函数值fb = feval(fun, b); %计算上限函数值m = (a+b)/2;fm = feval(fun, m);err = abs(fm);if sign(fm) == sign(fb) %若中点处与右端点函数值同号,右端点赋值为中点b = m;else %若中点处与左端点函数值同号或为0,左端点赋值为中点a = m;endif err < tol %如果在a处函数值小于tolr(nr) = a; %一般奇点不符合该条件,这样可以去除奇点nr = nr + 1; %找到根的个数递增k = maxit; %改变k值跳出循环endk = k + 1; %二分迭代次数递增endendfunction X = powerX(x,a,b)% powerX 对给定向量(x1, x2,..., xn)返回增幂矩阵(x1^a, x2^a,..., xn^a; x1^a+1, x2^a+1,..., xn^a+1; ...; x1^b, x2^b,..., xn^b;)%% Synopsis: X = powerX(x,a,b)%% Input: x = 需要返回增幂矩阵的向量% a,b = 寻根区间上下限%% Output: X = 增幂矩阵(x1^a, x2^a,..., xn^a; x1^a+1, x2^a+1,..., xn^a+1; ...; x1^b, x2^b,..., xn^b;)if round(a) ~= a | round(b) ~= berror('a,b must be integers');elseif a >= berror('a must be smaller than b!');endx = x(:)';row = b-a+1;col = length(x);X = zeros(row, col);for i = b:-1:aX(b-i+1,:) = x.^i;Endfunction [f, dfdx] = fun1_1(x)f = cos(x) - x;dfdx = -sin(x) - 1;function [f, dfdx] = fun1_2(x)f = exp(-x) - sin(x);dfdx = -exp(-x) - cos(x);function [f, dfdx] = fun2_1(x)f = x - exp(-x);dfdx = 1 + exp(-x);function [f, dfdx] = fun2_2(x)f = x.^2 - 2*x*exp(-x) + exp(-2*x);dfdx = 2*x - 2*exp(-x) + 2*x*exp(-x) - 2*exp(-2*x);function y = LegendreP6(x)p = LegendreIter(6);X = powerX(x,0,6);y = p*X;function y = ChebyshevT6(x)p = ChebyshevIter(6);X = powerX(x,0,6);y = p*X;function y = LaguerreL5(x)p = LaguerreIter(5);X = powerX(x,0,5);y = p*X;function y = HermiteH6(x)p = HermiteIter(6);X = powerX(x,0,6);y = p*X;思考题(1)由于Newton法具有局部收敛性,所以在实际问题中,当实际问题本身能提供接近于根的初始近似值时,就可保证迭代序列收敛,但当初值难以确定时,迭代序列就不一定收敛。
2011年哈工大(数值分析)试题
![2011年哈工大(数值分析)试题](https://img.taocdn.com/s3/m/088605280066f5335a812160.png)
y0 , y1 , (h为步长) 。
(1)确定方法中的局部误差主项,并指出方法的阶数; (2)讨论该方法的收敛性和绝对稳定性。 ( 在 线 性 多 步 法 的 局 部 截 断
Cr
p 1 p p 1 (i ) r 1 bi , r 2,3, ) i a r i r ! i 0 i 1
1 2
a 2 1 x1 1 3、已知方程组 2 a 2 x2 2 , 1 2 a x3 1
(1)写出求解此方程组的 Jacobi 迭代格式; (2)用已知结论说明,当 a 4 时,该迭代格式收敛;
0 2
T
(1)求 A , x0 , x1 使求积公式具有尽可能高的代数精度,并指出此求积公式的 代数精度是多少?(2)并用此公式计算积分 x 4 dx 。 (计算结果保留四位小数)
0 2
ρ 。 6、试用共轭梯度法(cg 法)求解线性方程组。 (初始值取 x (0) (0, 0, 0)T )
a x 2 x3 , 0 x 1 ,具有连续二 2、 (1)求 a 及不超过二次多项式 P( x) 使 S ( x) P( x) , 1 x 2
阶导数且满足 P (2) 0 ; (2) 当 f ( x) 用满足条件 f (1) P(1), f (2) P(2), f ' (1) P ' (1) 的插值多项式近似时, 求 f ( x)dx 。
2011 年哈工大《数值分析》考试
1、 设 f ( x) x3 5 。 (1)应用 Newton 迭代法于方程 f ( x) 0 ,导出 3 5 的迭
2
代公式; 并讨论迭代公式的收敛速度; (2) 尝试把导出的迭代公式加以改进, 提高迭代公式的收敛速度, 并用改进后的迭代公式计算 3 5(取初值 x0 1.0 , 计算三步,结果保留四位小数) 。
哈工大2011年数值分析
![哈工大2011年数值分析](https://img.taocdn.com/s3/m/dbb1a40c172ded630a1cb658.png)
2011年数值分析1、设 f (x) =(x 3 -5)2(1) 应用newton 迭代法解方程f (x) =o 导出3 5的迭代公式。
并讨论 迭代公式的收敛速度(2) 改进导出的迭代公式以提高迭代的收敛阶,并用改进后的迭代 公式计算3 5 (取初始近似值x o =1,要求迭代三步,结果保留4位小 数)厂 2 32( 1)求a 及不超过二次多项式p(x)使S(x)=」a *x +X 兰X 。
,具有p(x),1 兰 xW2连续的二阶导数且满足p(2) =0 ;(2)当f(x)用满足条件f(1)=p(1),f (2)二P (2), f '(1^ p '(1的插值多项式2近似时求.f(x)dx-1a 」"(1)写出Jacobi 迭代格式(2) 证明当|a »4时,该迭代格式收敛(3) 当a=5时,取x 0( —,1,—),求出x 2 (计算结果保留4位小数) 10 5 104设f(x)=???,在[0,1]上给出函数f(x)的n+1个等距节点X i 函数表,若想用二次插值来计算f(x)的近似值。
要求截断误差不超过10-6,问使 用多大的函数表步长h5、给定求积公式 f(x)dx : A o f(X o ) - f (X i )(1)求出待定参数A b ,X o ,X i ,使公式的代数精度尽可能高,并指出此 'a 3已知线性方程组2 1]叮 2 x 22求积公式的代数精度是多少?2(2)用此求积公式计算积分x4dx。
(计算结果保留4位小数)6试用共轭梯度法求解线性方程组,初始值取x°=o,o,o)2 -1 0 X i 1-i 3 -i X2 1已知计算过程为eg法0 -1 4丄X3」?j7已知数据点(0,1)(1,0)(2,丄)(3,10),试利用反差商构造有理插值函数R(x)3通过已知数据点._3 -4 31乂1 _2 |8方程组-4 6 3 X2『53^L x d 7J]3(1)试用Doolittle分解方法求解方程组(2)计算出系数矩阵A按模最大特征值及对应的特征向量,初始向量为(1,0,0)T,迭代两步,计算结果保留4位小数。
迭代法求解方程问题实验报告
![迭代法求解方程问题实验报告](https://img.taocdn.com/s3/m/eca46cbec77da26925c5b061.png)
迭代法求解方程问题实验报告姓名:殷伯旭 班级:信计0801班 学号:u200810065一. 实验目的运用数学知识与matlab 相结合,运用数学方法,建立数学模型,用matlab 软件辅助求解模型,解决实际问题。
二. 实验任务求方程1020x e x +-=的一个近似解,误差不超过410-,要求: 设计4种求解的迭代法,讨论其收敛性,并求出满足精度的近似解;三. 实验分析与求解题目要求设计四种迭代方法,我们考虑用书上的四种迭代思想:方法一:用Steffenson 迭代法,首先构造函数:2()10xe g x -=, 则迭代公式为:21(())k k k k k k kg x x x x +-=- 方法二:一般的迭代法,1210k k x e x +-=方法三:单点弦截法法,固定01()()()()0.25,f a b a f b f a a x x --==-, 其中端点120,a b ==,则迭代公式为:010()()()()k k k k k f x x x x x f x f x +=--- 方法四:双点弦截法法,迭代公式为:111()()()()k k k k k k k f x x x x x f x f x +--=--- 实验程序:function shiyan112%%%%%方法一: stefften 迭代x0=0.25;g0=(2-exp(x0))/10;gg0=(2-exp(g0))/10;x1=x0-(g0-x0)^2/(gg0-2*g0+x0);n1=0;while abs(x1-x0)>0.00001x0=x1;g0=(2-exp(x0))/10;gg0=(2-exp(g0))/10;x1=x0-(g0-x0)^2/(gg0-2*g0+x0);n1=n1+1;x(n1)=x1;endn1x0=x1%%%%%方法二: 一般迭代x20=0.25;x21=(2-exp(x20))/10;n2=0;while abs(x21-x20)>0.00001x20=x21;x21=(2-exp(x20))/10;n2=n2+1;endn2x20=x21%%%%%方法三: 单点弦截法x30=0.25;a=0;b=0.5;n3=0;fa=exp(a)+10*a-2;fb=exp(b)+10*b-2;x31=a-fa*(b-a)/(fb-fa);f30=exp(x30)+10*x30-2;f31=exp(x31)+10*x31-2;x32=x31-f31*(x31-x30)/(f31-f30); while abs(x32-x31)>0.00001x31=x32;f31=exp(x31)+10*x31-2;x32=x31-f31*(x31-x30)/(f31-f30);n3=n3+1;endn3x30=x32%%%%%%%方法四:双点弦截法x40=0.25;x41=0.5;n4=0;f40=exp(x40)+10*x40-2;f41=exp(x41)+10*x41-2;x42=x41-f41*(x41-x40)/(f41-f40);while abs(x42-x41)>0.00001x40=x41;x41=x42;f40=exp(x40)+10*x40-2;f41=exp(x41)+10*x41-2;x42=x41-f41*(x41-x40)/(f41-f40);n4=n4+1;endn4x40=x42运行结果:(1) 方法一: x =0.0905 ; 迭代次数: n1 = 2(2)方法二: x =0.0905 ; 迭代次数: n2 = 5(3) 方法三: x =0.0905 ; 迭代次数: n3 = 2(4) 方法四: x =0.0905 ; 迭代次数: n4 =33)实验总结通过自主学习matlab,编程能力有了较大提高,并将其应用于数值代数刚学的一种思想,在加深对该领域印象的同时对matlab有了更深一层的了解。
苏小红哈尔滨工业大学计算机科学与技术学院
![苏小红哈尔滨工业大学计算机科学与技术学院](https://img.taocdn.com/s3/m/c45366dc700abb68a982fb77.png)
变量:端点坐标 a(x1,y1,z1), b(x2,y2,z2) c(x3,y3,z3), d(x4,y4,z4) a1( ), a2( ), b1( ), b2( ) c1( ), c2( ), d1( ), d2( ) a_( ), b_( ) c_( ), d_( ) 函数: glVertex2s(x,y) (顶点坐标函数) glVertex2s(x,y,z)(顶点坐标函数)
设N=4,每次生成一个随机数E∈(0,100)
设0<β_1<β_2<β _3<100,作如下规定:
若0<E<β_1,则选择规则R_1
若β_1≤E<β_2,则选择规则R_2 若β_2≤E<β_3,则选择规则R_3
若β_3≤E<100,则选择规则R_4 指定β_i的过程
相当于为每种迭代规则R_i指派一个概率p_i
35
哈尔滨工业大学计算机学院 苏小红
void CRenderDlg::Drawscene(double x, double double l,double n) { if (n < 1) { //画一级Sierpinski海绵 l:=l/3; lft(x-l,y+l,z-l,l); //后左上 lft(x,y+l,z-l,l); //后中上 lft(x+l,y+l,z-l,l); //后右上 lft(x-l,y,z-l,l); //后左中 lft(x+l,y,z-l,l); //后右中 lft(x-l,y-l,z-l,l); //后左下 lft(x,y-l,z-l,l); //后中下 lft(x+l,y-l,z-l,l); //后右下 lft(x-l,y+l,z,l); //中左上 lft(x+l,y+l,z,l); //中右上 lft(x-l,y-l,z,l); //中左下 lft(x+l,y-l,z,l); //中右下 lft(x-l,y+l,z+l,l); //前左上 lft(x,y+l,z+l,l); //前中上 lft(x+l,y+l,z+l,l); //前右上 lft(x-l,y,z+l,l); //前左中 lft(x+l,y,z+l,l); //前右中 lft(x-l,y-l,z+l,l); //前左下 lft(x,y-l,z+l,l); //前中下 lft(x+l,y-l,z+l,l); 哈尔滨工业大学计算机学院 //前右下 苏小红
哈工大研究生数值分析试题及答案
![哈工大研究生数值分析试题及答案](https://img.taocdn.com/s3/m/4e1db70a28ea81c759f5787d.png)
1. 3,2x =-分别是方程328120x x x --+= 的根;讨论用Newton 迭代法求它们近似值的收敛阶。
取初值02x =-计算根3x =-的近似值,要求迭代3次。
(结果保留4位小数) 解: 设 32()812f x x x x =--+ 2()328f x x x '=-- ()62f x x ''=- (3)0,(3)0f f '-=-≠,(2)0,(2)0,(2)100f f f '''===≠则:3-是()0f x =的单根,故Newton 迭代在3-附近是平方收敛; 2是()0f x =的二重根,故Newton 迭代在2附近是线性收敛; 取02x =-,Newton 迭代:3212()812()328n n n n n n n n f x x x x x x x f x x x +--+=-=-'-- 223634n n n x x x ++=+2001023634x x x x ++==+2112123634x x x x ++==+2223223634x x x x ++==+2. 设常数0a ≠ ,求出a 的取值范围使得解方程组112233212313a x b a x b a x b --⎛⎫⎛⎫⎛⎫ ⎪⎪ ⎪-= ⎪⎪ ⎪ ⎪⎪ ⎪⎝⎭⎝⎭⎝⎭的Jacobi 迭代法收敛。
解: Jacobi 迭代:(1)()k k J x B x g +=+10210211203203130130J a B a a a -----⎛⎫⎛⎫⎛⎫⎪⎪ ⎪=--=-- ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭1123a b g a b a b -⎛⎫⎛⎫ ⎪⎪= ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭迭代矩阵J B 的特征方程:021211120323013013J a E B a a a a λλλλλλλ----⎛⎫⎛⎫⎪ ⎪-=+-=-=⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭即:3()14()0a a λλ+=特征根:0,i aλλ==±谱半径:()1J B ρ=< 时Jacobi 迭代收敛故:a >3. 设(1)用Crout 三角分解法求解方程组 12323251034133619x x x ⎛⎫⎛⎫⎛⎫ ⎪⎪ ⎪= ⎪⎪ ⎪ ⎪⎪ ⎪⎝⎭⎝⎭⎝⎭ ;(2)用乘幂法求方程组系数阵的按摸最大的特征值和对应的特征向量。
哈工大计算方法上机实验指导
![哈工大计算方法上机实验指导](https://img.taocdn.com/s3/m/51d8563502020740bf1e9b2b.png)
计算方法上机实验指导一、非线性方程求解(一)问题的指出 二分法 1.方法概要假定()f x 在[,]a b 上连续,()()0f a f b <且()f x 在(,)a b 内仅有一实根*x 取区间中点c ,若()0f c =,则c 恰为其根,否则,根据()()0f a f c <是否成立,可判断出根所属的新的有根子区间(,)a c 或(,)c b ,为节省内存,仍称其为(,)a b 。
运算重复进行,直到满足精度要求为止,即*||c x b a ε-<-<。
式中,a b 为新的有根子区间的端点。
2.计算框图Nowton 迭代法 1.方法概要0x 为初始猜测,则由递推关系1()()k k k k f x x x f x +=-' 产生逼近解*x 的迭代序列{}k x ,这个递推公式就是Newton 法。
当0x 距*x 较近时,{}k x 很快收敛于*x 。
但当0x 选择不当时,会导致{}k x 发散。
故我们事先规定迭代的最多次数。
若超过这个次数,还不收敛,则停止迭代另选初值。
2.计算框图(二)目的掌握二分法与牛顿法的基本原理及应用 (三)要求1.用二分法计算方程2sin 02x x -=在(1,2)内的根的近似值 2.用二分法计算方程310x x --=在(1,1.5)内的根的近似值5(0.510)ε-=⨯。
3.用牛顿法求下列非线性方程的近似根。
① 10xxe -= 00.5x = ② 310x x --= 01x =③ 2(1)(21)0x x --= 00.45x = 00.65x =4.用改进的牛顿法12()()k k k k f x x x f x +=-'计算方程20(1)(21)00.55x x x --==的近似根,并与要求3.中的③的结果进行比较。
二、Gauuss 列主元消去法(一)问题的提出由地一般线性方程组在使用Gauss 消去法求解时,从求解过程中可以清楚地看到,若(1)0k kk a -=,必须施以行交换的手续,才能使消去过程继续下去。
哈工大 数字信号处理实验报告
![哈工大 数字信号处理实验报告](https://img.taocdn.com/s3/m/c30f3531eefdc8d376ee322b.png)
实验一: 用FFT 作谱分析实验目的:(1) 进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法, 所以FFT 的运算结果必然满足DFT 的基本性质)。
(2) 熟悉FFT 算法原理和FFT 子程序的应用。
(3) 学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT 。
实验原理: DFT 的运算量:一次完整的DFT 运算总共需要2N 次复数乘法和(1)N N -复数加法运算,因而直接计算DFT 时,乘法次数和加法次数都和2N 成正比,当N 很大时,运算量很客观的。
例如,当N=8时,DFT 运算需64位复数乘法,当N=1024时,DFT 运算需1048576次复数乘法。
而N 的取值可能会很大,因而寻找运算量的途径是很必要的。
FFT 算法原理:大多数减少离散傅里叶变换运算次数的方法都是基于nk N W 的对称性和周期性。
(1)对称性()*()k N n kn knNN NW W W --==(2)周期性kn Nkn n N kn k NNN NNW W W W ++===由此可得()()/2(/2)1n N k N n k nk N N N N N k N k N N W W W W W W ---+⎧==⎪=-⎨⎪=-⎩这样:1.利用第三个方程的这些特性,DFT 运算中有些项可以合并;2.利用nk N W 的对称性和周期性,可以将长序列的DFT 分解为短序列的DFT 。
前面已经说过,DFT 的运算量是与2N 成正比的,所以N 越小对计算越有利,因而小点数序列的DFT 比大点数序列的DFT 运算量要小。
快速傅里叶变换算法正是基于这样的基本思路而发展起来的,她的算法基本上可分成两大类,即按时间抽取法和按频率抽取法。
我们最常用的是2M N =的情况,该情况下的变换成为基2快速傅里叶变换。
完成一次完整的FFT 计算总共需要2log 2N N次复数乘法运算和2log N N 次复数加法运算。
用迭代法求集合中最大、最小元问题
![用迭代法求集合中最大、最小元问题](https://img.taocdn.com/s3/m/849c127182c4bb4cf7ec4afe04a1b0717fd5b324.png)
用迭代法求集合中最大、最小元问题让我们来探讨一下什么是迭代法。
迭代法是一种通过反复调用自身来解决问题的算法。
在计算机科学中,迭代法通常用于检索集合中的最大值和最小值。
在本文中,我们将深入探讨使用迭代法来解决集合中的最大、最小元问题,并且我将共享一些我对这个问题的个人观点和理解。
1. 什么是迭代法迭代法是一种解决问题的方法,它通过重复应用相同的算法来逐步逼近问题的解。
在计算机科学中,迭代法常常用于搜索集合中的最值,包括最大值和最小值。
通过不断比较集合中的元素,并将较大(或较小)的值替换为当前最大(或最小)值,最终可以得到集合中的最大值和最小值。
2. 使用迭代法求集合中的最大、最小元问题现在让我们来看一个具体的例子,假设我们有一个包含n个元素的集合S={a1, a2, ..., an},我们想要找出S中的最大值和最小值。
我们可以使用迭代法来解决这个问题。
我们可以初始化两个变量max和min,分别代表集合中的最大值和最小值。
我们可以遍历集合S中的每一个元素,将当前元素与max和min进行比较。
如果当前元素大于max,就将max更新为当前元素;如果当前元素小于min,就将min更新为当前元素。
通过不断比较和更新max和min,最终我们可以得到集合S中的最大值和最小值。
3. 个人观点和理解我认为迭代法是一种非常高效和灵活的算法,特别适用于解决集合中的最值问题。
通过不断比较和更新,迭代法可以在有限次操作内找到集合中的最大值和最小值,同时适用于各种类型的集合。
迭代法的实现也相对简单,只需要几行代码就可以完成。
总结回顾通过本文的学习,我们深入探讨了使用迭代法来解决集合中的最大、最小元问题。
我们从迭代法的概念和原理开始,然后详细介绍了使用迭代法求解集合中最值的具体步骤。
我也共享了我对迭代法的个人观点和理解。
通过这篇文章,我相信你已经对迭代法有了更深入的了解,能够灵活运用它来解决集合中的最值问题。
迭代法是解决集合中最大、最小元问题的一种强大工具,它不仅高效,而且实现起来比较简单。
牛顿迭代法实验报告
![牛顿迭代法实验报告](https://img.taocdn.com/s3/m/f40076f2700abb68a982fb14.png)
1)x1=x0-F0/F0’,
2)计算F1=f(x1);F1’=f’(x1)
3)若F1’=0,则输出“方法失败”并结束。
3.控制:若|x1-x0|<EPS或|F1|<DELTA,则输出近似解x1和迭代次数k并结束;否则,x0=x1;F0=F1;F0’=F1’。
4.k>N时输出“经N次迭代无满足要求的近似解”结束。
输入DELTA:1e-7
输入N:100
x(1)=3.000000 x(2)=2.200000 x(3)=1.830151 x(4)=1.737795 x(5)=1.732072
最终结果为1.732051Press any key to continue
六、分析和讨论
1.输入不同的初值x0,迭代次数的变化情况
四、实验步骤
1)完成牛顿迭代法的程序设计及录入;
2)完成程序的编译和链接,并进行修改;
3)用书上的例子对程序进行验证,并进行修改;
4)分别输入两组不同的根的误差限,观察运算次数的变化;
5)分别取不同的初时值x0,观察运算结果的变化;
6)完成实验报告。
五、实验结果
1.经编译、链接及例子验证结果正确的源程序:
#include<stdio.h>
#include<math.h>
float f(float x)
{
float a;
a=x*x*x+x*x-3*x-3;
return a;
}
float f1(float x)
{
float b;
b=3*x*x+2*x-3;
return b;
}
哈工大数值分析实验报告
![哈工大数值分析实验报告](https://img.taocdn.com/s3/m/6f08f63077c66137ee06eff9aef8941ea66e4b6b.png)
哈工大数值分析实验报告标题:哈工大数值分析实验报告一、实验目的:本实验的目的是探究在数值分析中使用的各种数值方法,对于解决实际问题的有效性和可靠性进行评估。
二、实验内容:本实验主要包括以下几个方面的内容:1. 熟悉数值分析中常用的数值方法,如数值积分、数值微分、迭代法等;2. 在MATLAB等数学软件平台上,编写程序实现所学的数值方法;3. 使用所编写的程序,对给定的实际问题进行求解,并分析其结果的有效性和可靠性;4. 根据实际问题的特点,评估不同数值方法的适用性,并给出相应的结论和建议。
三、实验步骤:1. 阅读相关的理论知识,熟悉数值分析中常用的数值方法;2. 编写数值分析实验的程序代码,包括数值积分、数值微分和迭代法等;3. 使用编写的程序,对所给的实际问题进行求解,记录并分析结果;4. 根据实际问题的特点,评估所使用的数值方法的可靠性和有效性;5. 根据实验结果,撰写实验报告,包括实验目的、实验内容、实验步骤和实验结果的分析等。
四、实验结果:根据实际问题的不同,实验结果也会有所差异。
在实验报告中,可以详细叙述对所给实际问题的求解过程,并对结果进行分析和解释。
同时,还可以比较不同数值方法的结果,评估其优劣和适用性。
五、实验结论:根据实验结果的分析,可以得出结论,总结不同数值方法的优缺点,并对其在实际问题中的应用进行评价。
同时,还可以给出相应的建议,为以后的数值分析工作提供参考。
六、实验总结:通过本次实验,进一步加深了对数值分析中常用数值方法的理解和掌握。
通过实际问题的求解,对于这些数值方法的应用和效果有了更深入的认识。
同时,也提高了编程和科研报告撰写的能力,为以后的学习和工作打下了坚实的基础。
以上是关于哈工大数值分析实验报告的基本内容,具体实验细节和结果请根据实际情况进行补充。
哈工大-数值分析上机实验报告
![哈工大-数值分析上机实验报告](https://img.taocdn.com/s3/m/ca00d64833687e21af45a95b.png)
Emax= 0.70770085900503,0 此时由 Emax 可以看出,不选主元的结果应该可以说是不正确了,这是由机器误差引 起的。 当 10 20 时,不选主元和选主元的计算结果如下 NaN NaN NaN Emax=NaN, 0 不选主元时,程序报错: Warning: Divide by zero. 。这是因为机器计算的最小精度为 10-15,所以此时的 10 20 就认为是 0,故出现了错误现象。而选主元时则没有这种现象, 而且由 Emax 可以看出选主元时的结果应该是精确解。
x3 x 1 0
x0=1; x0=0.45, x0=0.65;
( x 1) 2 (2 x 1) 0
当 x0=0.45 时,计算结果为 x= 0.49999999999983; f(x)= -8.362754932994584e-014; k=4; 由 f(x)知结果满足要求,而且又迭代次数只有 4 次看出收敛速度很快,实际上该方程确实 有真解 x=0.5。 当 x0=0.65 时,计算结果为 x= 0.50000000000000; f(x)=0; k=9; 由 f(x)知结果满足要求,实际上该方程确实有真解 x=0.5,但迭代次数增多,实际上当取 x0〉0.68 时,x≈1,就变成了方程的另一个解,这说明 Newton 法收敛与初值很有关系, 有的时候甚至可能不收敛。
实验报告
结果分析和讨论: 例 用最小二乘法处理下面的实验数据 . xi fi 3 2.01 4 2.98 5 3.50 6 5.02 7 5.47 8 6.02 9 7.05
Hale Waihona Puke 并作出 f ( x) 的近似分布图。 分别采用一次,二次和五次多项式来拟合数据得到相应的拟合多项式为: y1=-0.38643+0.82750x ; y2=-1.03024+1.06893x-0.02012x2; y5=-50.75309+51.53527x-19.65947x2+3.66585x3-0.32886x4+0.01137x5; 分别作出它们的曲线图,图中点划线为 y1 曲线,实线为 y2 曲线,虚线为 y5 曲线。’x’为 给定的数据点。从图中可以看出并不是多项式次数越高越好,次数高了,曲线越能给定点 处和实际吻合,但别的地方就很差了。因此,本例选用一次和两次的多项式拟合应该就可 以了。
迭代法实验报告
![迭代法实验报告](https://img.taocdn.com/s3/m/cea0bc2726d3240c844769eae009581b6ad9bd49.png)
迭代法实验报告迭代法实验报告引言:迭代法是一种常见的数值计算方法,通过反复迭代逼近解的过程,来解决一些复杂的数学问题。
本实验旨在通过实际操作,深入理解迭代法的原理和应用,并通过实验数据验证其有效性。
一、实验目的本实验的主要目的有以下几点:1. 掌握迭代法的基本原理和步骤;2. 熟悉迭代法在数值计算中的应用;3. 理解迭代法的收敛性和稳定性;4. 验证迭代法在实际问题中的有效性。
二、实验原理迭代法是一种通过不断逼近解的方法,其基本原理可概括为以下几步:1. 选择一个初始值作为迭代的起点;2. 根据问题的特点和要求,构造一个递推公式;3. 通过不断迭代计算,逐步逼近解;4. 判断迭代过程是否收敛,并确定最终的解。
三、实验步骤1. 选择合适的初始值。
初始值的选择对迭代的结果有重要影响,通常需要根据问题的特点进行合理选取。
2. 构造递推公式。
根据问题的数学模型,建立递推公式,将问题转化为迭代求解的形式。
3. 进行迭代计算。
根据递推公式,进行迭代计算,直到满足收敛条件或达到预定的迭代次数。
4. 判断迭代结果。
根据实际问题的要求,判断迭代结果是否满足精度要求,并进行相应的调整和优化。
四、实验结果与分析通过实验操作,我们得到了一组迭代计算的结果。
根据实验数据,我们可以进行以下分析:1. 收敛性分析。
通过观察迭代过程中的数值变化,我们可以判断迭代法的收敛性。
如果数值逐渐趋于稳定,且与理论解的误差在可接受范围内,说明迭代法收敛。
2. 稳定性分析。
迭代法的稳定性是指在初始值变化时,迭代结果是否保持稳定。
通过改变初始值,我们可以观察迭代结果的变化情况,从而评估迭代法的稳定性。
3. 精度分析。
迭代法的精度取决于迭代过程中的误差累积情况。
通过与理论解的比较,我们可以评估迭代法的精度,并对迭代过程进行优化。
五、实验结论通过本次实验,我们深入了解了迭代法的原理和应用,通过实际操作验证了迭代法在数值计算中的有效性。
实验结果表明,迭代法在解决复杂数学问题中具有较高的准确性和稳定性,能够满足实际应用的需求。
最新哈工大数学实验实验报告
![最新哈工大数学实验实验报告](https://img.taocdn.com/s3/m/1e0eb251b6360b4c2e3f5727a5e9856a57122618.png)
最新哈工大数学实验实验报告实验目的:本次实验旨在通过一系列数学问题的求解,加深对高等数学理论的理解,并掌握数学建模的基本方法。
通过实际操作,提高运用数学工具解决实际问题的能力。
实验内容:1. 问题一:求解一元二次方程- 描述:给定一元二次方程 ax^2 + bx + c = 0,其中 a, b, c为已知系数,求解该方程的根。
- 方法:应用求根公式,即 x = (-b ± √(b^2 - 4ac)) / (2a)。
- 结果:计算得到方程的两个解,并验证其正确性。
2. 问题二:线性规划问题- 描述:给定一组线性约束条件和目标函数,求线性规划问题的最优解。
- 方法:使用单纯形法进行迭代求解。
- 结果:找到最优解,并给出对应的目标函数值。
3. 问题三:概率分布与统计推断- 描述:根据一组实验数据,估计总体分布的参数,并进行假设检验。
- 方法:利用最大似然估计法确定参数,再应用t检验进行假设检验。
- 结果:得出参数估计值和假设检验的结果。
实验环境:- 软件:MATLAB、Mathematica、R语言等数学软件。
- 硬件:个人计算机,具备足够的计算能力。
实验步骤:1. 准备阶段:收集所需的数据和资料,安装并熟悉相关数学软件。
2. 实验阶段:按照实验内容,逐步完成每个问题的求解。
3. 分析阶段:对求解结果进行分析,验证其合理性。
4. 总结阶段:撰写实验报告,总结实验过程中的关键点和学习到的知识。
实验结果:- 问题一的解验证了求根公式的有效性。
- 问题二的最优解展示了单纯形法在解决线性规划问题中的应用。
- 问题三的参数估计和假设检验结果为实际问题提供了决策依据。
实验结论:通过本次实验,我们不仅巩固了数学理论知识,而且通过实际操作提升了解决实际问题的能力。
数学建模和计算工具的应用对于理解和应用数学至关重要。
在未来的学习中,我们将继续探索更多的数学问题和解决方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、平面线性映射迭代
对函数y=f(x),按照几何映射的观点,图形上就可表示为一条曲 线。特别地,当f表现为一条通过原点的直线时,称f为线性映射。
函数映射 线性映射:y f x ax 仿射映射: y f x ax b
一次函数映射 这类线性映射(平面到平面、 空间到空间)有什么性质呢? 【敛散性,敛散速度等】 4
2015年 秋季学期
0.05
0
-0.05 -0.12
-0.1
-0.08
-0.06
-0.04
-0.02
0
0.02
drawFig31.m
一、平面线性映射迭代
从不动点谈起
对于函数f(x),若存在x*使得x*=f(x*),则称x*为f(x)的不动点.不动 点分为吸引不动点和排斥不动点,当迭代序列收敛时不动点为 吸引点,当迭代序列发散时不动点为排斥点,因此要想知道不 动点的类型,就要探索序列收敛和发散的条件,就要对大量的线性 或非线性函数进行研究。
1.定义 : 关系式
(n) (n) T , , xm ) 将向量 ( x1( n ) , x2
( n 1) ( n 1) ( n 1) T 映射为向量 ( x1 , x2 , , xm )
6
1
一、平面线性映射迭代
写成矩阵形式
一、平面线性映射迭代
xn 1 Axn
(n) (n) T 其中 xn , xn 1 分别为 ( x1( n ) , x2 , , xm ) 与
xk 1 Ayk , yk 1 xk 1 / m( xk 1 )
……
这样得到的序列 { yn }是否收敛呢?
yn Ayn 1 / m( xn 1 ) 1 y Ay, Ay y
说明是A的特征值,而y 是 对应的特征向量。 11
迭代序列的收敛性: (1)对任意的x (a, b), f ( x) (a, b)
一、平面线性映射迭代
在线性代数课程的学习中,我们已经学过了一对很重要的数 学概念 —— 方阵的特征值和特征向量,本次课程我们进一步 阐述和研究它的数学本质,并在此基础上利用相关的代数知 识和matlab软件以可视化的方式加深对于它们的理解。
(n) (n) x1( n 1) a11 x1( n ) a12 x2 a1m xm ( n 1) (n) (n) (n) x2 a21 x1 a22 x2 a2 m xm ( n 1) (n) (n) (n) x a x a m1 1 m 2 x2 amm xm m
y ax b
请参考:iterline.m
考虑不同的数对(a, b, x0, n),通过实验和图形表现,观察实验现象。
思考:
① 能否找到一个线性迭代,它对任意初始值,迭代序列均收敛? ② 能否找到一个线性函数,它对任意函数值,迭代总是发散的? ③ 是否存在这样的线性迭代,对一个或一些初始值给出的迭代序列收敛,而 对其他初始值发散呢? ④ 能否找到这样的线性函数,对不同的初始值,迭代序列收敛到不同的极限? ⑤ 对总给出收敛序列的线性函数 ,序列的极限L与常数 (a,b)关系如何? 为了研究这个问题,取一个固定的 a值,变化 b,观察序列对不同的极限值, 注意到了什么? y -0.5 x +1
海岸线有多长?
二、分形(续)
二、分形(续)——几个例子
按照传统的科学方法来考虑,这是一个很简单的问题,然而曼德勃罗教 授在其名为《英国海岸线有多长?》的文章中作出了令人惊诧的答案:
“英国海岸线的长度是不确定的!其原因在于海岸线的长度依 赖于测量时所使用的尺度。” 以1km为单位测量海岸线,得到的近似长度将短于1km的迂回曲折 都忽略掉了,若以1m为单位测量,则能测出被忽略掉的迂回曲折 ,长度将变大,测量单位进一步变小,测得的长度将愈来愈大, 这些愈来愈大的长度将趋近于一个确定值,这个极限值就是海岸 线的长度。
线性映射迭代、分形、混沌
考察下列 方程组: 初始值:
0.2
1 xn 1 xn 3 y 1 x n 1 n 3
3 yn 3 3 yn 3
可写 成:
x0 0, y0 0.2
可视为:A为一个映射,它将平面 上的点映射为平面上的另一个点。
1 3 xn 1 3 xn 3 xn y Ay 3 yn n 1 1 n 3 3
( n 1) ( n 1) T ( x1( n 1) , x2 , , xm ) ,A为m×m矩阵
形如 y=Ax 的映射称为线性映射.给出一个初始向量
(0) (0) T x0 ( x1(0) , x2 , , xm ) ,将上述映射反复作用可得 序列: , , x0 x1 Ax0 x2 Ax1 ,…, xn 1 Axn , …我 们将这一过程称为线性映射的迭代,其中矩阵A称 为迭代矩阵 。
(2) f ( x)在(a, b)内可导, 且存在L使得 f 由f ( x)所生成的迭代序列收敛
12
2
二、分形
在经典的欧几里德几何学中,我们可以用直线、立方体、圆锥、 球等这一类规则的形状去描述诸如道路、建筑物、车轮等等人造 物体,这是极自然的事情。 然而在自然界中,却存在着许许多多极其复杂的形状,如,山不 是锥,云不是球,闪电不是折线,雪花边缘也不是圆等等,它们 不再具有我们早已熟知的数学分析中的连续、光滑(可导)这一 基本性质了。 这一类奇形怪状的物体长期以来被认为是“不可名状的”或“病 态的”,从而很容易被人们忽视了。显然传统的数学已经无法来 描述它们,从而使经典数学陷入了危机,于是分形几何学 (fractal geometry)便应运而生。 在科学和艺术中都找不到合适的术语来给它们命名。但是,它们 都有一个共同的数学结构-----粗糙和自相似。 13
则对任意的非零初始向量 (1 0) ,按上述迭代过程得到 x1 , x2 , 及 y1 , y2 , ,有:
lim yn a1 (其中a是一个非零常数), lim m( yn ) 1
n
n
x0 11 a2 2 am m
x2 Ay1 , y2 x2 / m( x2 )
第三章 平面线性映射的迭代--二维动力系统(图3.1)
0.15
0.1
实验现象:逐点连线后的图形 表明:随着时间的推移(即迭 代的过程),将趋于一个平衡 点。 如果将此方程组看成是一个对 某系统的描述,则该系统绕着 平衡点“游荡”,其潜在的形 状被称为“奇异吸引子”。 2
石 振 锋
哈工大 计算数学研究所
一、平面线性映射迭代
归一化线性迭代收敛的充分条件 1 , 2 , , m ,A 设m阶实方阵A有m个线性无关的特征向量
的m个特征值满足下列关系:
1 2 2 m
x1 Ax0 , y1 x1 / m( x1 )
如果{ yn }的极限存在,那么显然m(xn) 的极限也存在,设它们极限分别为y与, 对下面式子两边同时取极限:
二、分形(续)
分形理论创始人-美籍 法国数学家Mandelbrot。
Mandelbrot 美国IBM(国际商业机器) 公司沃特森研究中心自然科 学部高级研究员 哈佛大学应用数学兼职教授 美国国家科学院院士 美国艺术与科学研究员成员 欧洲艺术、科学和人文研究 院院士。 15
二、分形(续)
对于排斥不动点,观察它的迭代序列,会发现两种情况(后面介绍): 1、它可能也有收敛的子序列,此时序列可能收敛于周期点,经过探索发现这 些周期点都是2的n次方倍的。这是一种有序现象。 2、就是出现所谓的混沌现象。分析混沌的特性,观察并体会混沌无序中的有 序,以及它对初始值的敏感性。 通过函数迭代利用计算机求出函数的迭代序列,进而求得不动点的近似值。 在有关程序中改变参数值和初值,从中体会序列敛散性(收敛的速度),同时 还可以通过蛛网图(后面介绍),观察它的几何特性。
lamda=weatherMarkov([1/3, 1/6, 1/2], 5) lamda=weatherMarkov([1/4, 1/2, 1/4], 13) testMarkov()
由线性代数的知识我们知道,如存在等式 说明A1有一特征值1,而
y 0.5 x 1
y x2
y 3 x 2
1967 年发表于美国《科学》杂志上 的“英国的海岸线有多长”的划时 代论文,是他的分形思想萌芽的重 要标志。 1973 年,在法兰西学院讲课期间, 他提出了分形几何学的整体思想。 1977 年,他出版了第一本著作《分 形:形态,偶然性和维数》,标志 着分形理论的正式诞生。 五年后,他出版了著名的专著《自 然界的分形几何学》,至此,分形 理论初步形成。 16
二、分形(续)
这一类奇形怪状的物体长期以来被认为是“不可名状的”或“病 态的”,从而很容易被人们忽视了。显然传统的数学已经无法来 描述它们,从而使经典数学陷入了危机,于是分形几何学 (fractal geometry)便应运而生。 分形几何与传统几何相比有什么特点: 从整体上看,分形几何图形是处处不规则的。例如,海岸线和山 川形状,从远距离观察,其形状是极不规则的。 在不同尺度上,图形的规则性又是相同的。海岸线和山川形状, 从近距离观察,其局部形状又和整体形态相似,它们从整体到局 部,都是自相似的。 拓扑维数:确定整个图形中点的位置所需的参数个数,实际上 就是我们通常所理解的关于维的概念。 直线是一维的,平面是二维的,空间是三维的,曲线是一维的, 曲面是二维的。 14
3
一、平面线性映射迭代
迭代的可视化(蜘蛛网图)
对函数的迭代过程,我们可以用几何图像来直观的显示它。 在xoy平面上,先作出函数y=f(x)与y=x的图形,对初值x0,在 曲线y=f(x)上可确定一点P0,它以x0为横坐标,过P0引平行于x 轴的直线,设该直线与y=x交于Q1 点。 过Q1 点作平行于y 轴的直线,它与曲线y=f(x)的交点交于P1点。 重复上面的过程,就在曲线y=f(x)上得到点列P1,P2,P3…。 。 不难知道,这些点的横坐标构成的序列x1,x2,x3,…, 就是迭代序列 。 若迭代序列收敛,则点列 P1,P2,P3…趋向 于曲线曲线=f(x)与y=x 交点P*,因此若迭代 序列是否收敛,可以从图形上观察出来。 这种图称为迭代的蜘蛛网图。 5