简单迭代法的matlab编程
“简单迭代法的matlab编程”相关的资料有哪些?“简单迭代法的matlab编程”相关的范文有哪些?怎么写?下面是小编为您精心整理的“简单迭代法的matlab编程”相关范文大全或资料大全,欢迎大家分享。
各种迭代法编程
雅可比迭代法:
function x=jacobi(a,b,p,delta,n)
%a为n维非奇异矩阵;b为n维值向量
%p为初值;delta为误差界;n为给定的迭代最高次数 N=length(b); for k=1:n
for j=1:N
x(j)=(b(j)-a(j,[1:j-1,j+1:N])*p([1:j-1,j+1:N]))/a(j,j); end
err=abs(norm(x’-p)); p=x’;
if(err
p %显示迭代过程 x=x’; k,err
高斯塞德尔法迭代:
function x=saidel(a,b,p,delta,n)
%a为n维非奇异矩阵;b为n维值向量
%p为初值;delta为误差界;n为给定的迭代最高次数 N=length(b); for k=1:n
for j=1:N if j==1
x(1)=(b(1)-a(1,2:N)*p(2:N))/a(1,1); else if j=N
x(N)=(b(N)-a(N,1:N-1)*(x(1:N-1))’)/a(N,N); else
x(j)=(b(j)-a(j,(1:j-1)*x(1:j-1)-a
jacob迭代法 gauss-seidel迭代法 matlab命令
1. jacobi迭代法解方程组的MATLAB程序
function x=jacobi(a,b,x0,m)%a:系数矩阵 b:等号右边矩阵 x0:迭代初值 m:迭代次数 x_temp=x0; for k=1:m
for i=1:length(b) sum=0; for j=1:length(b) if(j~=i)
sum=sum+a(i,j)*x_temp(j); end end
x(i)=-(sum-b(i))/a(i,i); end x_temp=x; end 2.
gauss-seidel迭代法解方程组的MATLAB程序
function x=gaussseidel(a,b,x0,m) x=x0; for k=1:m
for i=1:length(b) sum=0; for j=1:length(b) if(j~=i)
sum=sum+a(i,j)*x(j);
jacob迭代法 gauss-seidel迭代法 matlab命令
1. jacobi迭代法解方程组的MATLAB程序
function x=jacobi(a,b,x0,m)%a:系数矩阵 b:等号右边矩阵 x0:迭代初值 m:迭代次数 x_temp=x0; for k=1:m
for i=1:length(b) sum=0; for j=1:length(b) if(j~=i)
sum=sum+a(i,j)*x_temp(j); end end
x(i)=-(sum-b(i))/a(i,i); end x_temp=x; end 2.
gauss-seidel迭代法解方程组的MATLAB程序
function x=gaussseidel(a,b,x0,m) x=x0; for k=1:m
for i=1:length(b) sum=0; for j=1:length(b) if(j~=i)
sum=sum+a(i,j)*x(j);
雅可比迭代法,高斯-塞德尔迭代法
第八章 解线性方程组的迭代法习题参考答案
1. 设方程组
(a) 考察用雅可比迭代法,高斯-塞德尔迭代法解此方程组的收敛性; (b) 用雅可比迭代法,高斯-塞德尔迭代法解此方程组,要求当||x终止. (k 1) 5x1 2x2 x3 12 x1 4x2 2x3 20 2x 3x 10x 323 1 x(k)|| 10 4时迭代
1. (a) Jacobi迭代矩阵
0.40.2 0 B D 1(L U) 0.2500.5 0.2 0.30
3特征方程为 | I B| 0.21 0.055 0
特征根均小于1,Jacobi迭代法收敛。
Gauss-Seidel迭代矩阵
00.40.2 G (D L) 1U 00.40.7 00.040.17
32| I G| 0.57 0.09 6 0 特征方程为
特征根均小于1,Gauss-Seidel迭代法收敛。 (b) Jacobi迭代格式为
X(k 1) BX(k) f1
1T其中B如上,f1 Db ( 1.250.3),
迭代18次得
, X 3.99999642.99997391.9999999
Gauss-Seidel迭代格式为 T
X(k 1) GX(k) f2
1
迭代法
西 安 邮 电 大 学
(计算机学院)
课内实验报告
实验名称 用迭代法解方程
专业名称: 计算机科学与技术 班 级: 学生姓名: 学号(8位) 指导教师:
实验日期: 2013年11月
一. 实验目的及实验环境
实验目的:编写程序,比较两种迭代法的优劣。 在MATLAB数学软件下求解 二. 实验内容
求下列方程的实根
(1) x^2-3x+2-e^x=0; (2) x^3+2x^2+10x-20=0.
要求:(1)设计一种不动点迭代法,要使迭代序列收敛,然后再用斯特芬森加速迭代,计算到|x(k)-x(k-1)|<10^(-8)为止。(2)用牛顿迭代,同样计算到|x(k)-x(k-1)|<10^(-8)。输出迭代初值及各次迭代值和迭代次数k,比较方法的优劣。 三.方案设计
1.在Matlab中直接求解
2.采用不动点迭代法、斯特芬森加速迭代和牛顿迭代法实现并比较优劣。 四.测试数据及运行结果
(1)先用画图的方法估计根的范围 ezplot('x^2-3*x+2-exp(x)'); grid on;
x2-3 x+2-exp(x)500-50-100-150-200-6-4-20x246
可以估计到方程的根在区间(0,1);选取迭代初值为x0=0.5; 构造不动点迭代公式x(k+1)=( x(k)^2
数值分析 迭代法
实验二:迭代法、初始值与收敛性
一:实验要求
考虑一个简单的代数方程
x2 x 1 0,
针对上述方程,可以构造多种迭代法,
如xn 1 xn 1,xn 1 1
2
1xn
,xn 1 在实
轴上取初值,分别用以上迭代做实验,记录各算法的迭代过程。
二:实验要求及实验结果
(1) 取定某个初始值,按如上迭代格式进行计算,它们的收敛性如何?重复选取不同放
入初始值,反复实验。请读者自行设计一种比较形象的记录方式(如何利用Matlab的图形功能),分析三种迭代法的收敛性与初值的选取关系。
(2) 对三个迭代法中的某一个,取不同的初值进行迭代,结果如何?试分析对不同的初
值是否有差异?
实验内容:
ⅰ)对xn 1 xn 1进行迭代运算,选取迭代次数n=20;分别选择初值-0.6, 1.6进行
2
实验,并画出迭代结果的趋势图。
编写MATLAB运算程序如下:
%迭代法求解 %令x=x^2-1 clear
n=30; x=-0.5;
x1=x^2-1; for i=1:n
end
m=linspace(0,29,n);
x1=x1^2-1; xx(i)=x
方程的加速迭代法
2013-2014(1)专业课程实践论文
题目:方程的加速迭代方法
一、算法理论
Aitken加速迭代算法基本原理:
对于收敛的迭代过程,只要迭代足够多次,就可以使结果达到任意的精度。但有时迭代过程收敛缓慢,从而使计算量变得很大,因此,迭代过程的加速是个重要的过程。
设x0是跟x*的某个预测值,只迭代公式校正一次x1?f(x0),而由微分中值定理有:x1?x*?f?。 (t)?(x0?x*)(其中t介于x*与x0之间)
假定f'?x?改变不大,近似的取某个近似值L,则由x1?x*?L?(x0?x*)得到
x*?L?x0x1?1?L1?L,可以期望按上式右端求得
x2?x?LL??x1?x0?x1是比x1更好的近似值,将每得到一次改进?0?x1?1?L1?L1?L?和xk分别表示第K步的校正值和改进值,则加速迭代计值算做一步,并用xk算方案可表述如下:
??1?f?xk? 校正:xk??1?改进:xk?1?xk??1?xk?L??xk
1?L然而上述加速公式有个缺点,由于其中含有倒数f??x?的有关信息L,实际使用不便。
仍设已知x*的某个猜测值为x0,将校正值x1?f?x0?,再校正一次,又得
x2?f?x1?。由于x2?x*?L??x1?x*?将它
Jacobi 迭代法与Gauss-Seidel迭代法算法比较
Jacobi
迭代法与Gauss-Seidel迭代
法算法比较
目录
1 引言 .............................................................................................................................................. 1
1.1 Jacobi迭代法 .................................................................................................................... 2 1.2 Gauss-Seidel迭代法 .......................................................................................................... 2 1.3 逐次超松弛(SOR)迭代法 ...................................................
Newton迭代法实例
基于牛顿迭代法的圆形断面临界水深直接计算
学院:建筑工程学院学号:2111206052 姓名:王瑞峰
一、问题来源
圆形断面由于具有受力条件好、适应地形能力强、水力条件好等优点,已成为农田灌溉、城市给水排水等工程较常采用的断面形式。而临界水深的计算则是进行圆形断面水力计算的关键,但其计算较繁杂,要求解高次隐函数方程,且未知量包含在三角函数中,求解难度大。自20世纪90年代,对圆形断面临界水深的计算进行了大量研究,获得了较多成果。鉴此,本文应用牛顿迭代算法,得到一种较简洁且可提供高精度算法 程序的近似计算公式。
二、数学模型
相应于断面单位能量最小值的水深称为临界水深,其计算公式为:
需满足的临界流方程为:
其中
式中,d为洞径;为临界水深对应的圆心角,rad;n为流速分布不均匀系数(不特殊说明时取1.0);Q为流量,m3Is;g为重力加速度(通常取9.81 m/s2);分别为临界流对应的过水断面面积和水面宽度。
无压流圆形断面的水力要素见图1
将式(1)、(3)、(4)代入式(2)得:
将式(5)整理即得临界水深的非线形方程:
由此可知.式(6)为临界水深h。的高次隐函数方程,且未知量包含在三角函数中。即圆形断面临界水深的求解即为式(6)
雅可比迭代法和高斯超松弛迭代
本文主要介绍两种最常用的代数方程组迭代求解方法,原理即其使用方法
雅可比迭代法和高斯-赛德尔迭代法以及超松弛迭代
对于给定的方程x Ax b用下式逐步代入求近似解的方法称为迭代法。如xk(当k )的极限存在,此极限即方程组的真正解,此迭代法收敛,否则称迭
代法收敛。
x
k 1
A
xk
b
k 0,1,2...1、雅可比(Jacobi)迭代法
设有方程组
Ax=b (56)
其展开形式为
a11 a1n x1 b1
(57) a n1 ann x n b n
系数矩阵A为非奇异阵,且aii 0(i=1-n)A可分解为 A=D+A0 (58)其中:
0 a1n
D a110
A 0
0 a nn
a
m1 0
改写线性方程组(57)式,将第i个方程(i=1~n)表示为xi的表达式:n
x1
i a(bi aijxj) (59)
iijj 1
i
改写后的(57)式的矩阵表达式为:
本文主要介绍两种最常用的代数方程组迭代求解方法,原理即其使用方法
x Ax b(60)其中
很容易看出(56)式和(60)式间系数矩阵A与在如下关系
及自由项列阵b