数值分析中直接三角分解法matlab程序

合集下载

数值分析课程课件 直接三角分解方法

数值分析课程课件  直接三角分解方法


u22
u11
u2n



l n1 l n2
1

unn


a11 a12 a 21 a22
a1n
a2n


u11 l21u11
u12 l21u12 u22
u1n

l21u1n

u2n


a n1 a n2
ann
ln1u 11
由(5.3.1)- (5.3.4)求得L和U后,解方程组Ax=b 化为求解LUx=b,若记Ux=y,则有Ly=b。于是可分两部解 方程组LUx=b,只要逐次向前代入的方法即可求得y。第
二步求解Ux=y,只要逐次用向后回代的方法即可求得x。 设 x=(x1 ,x2, ···xn) T, y=(y1, y2, ···yn) T,
n

i1
lniuin

unn

第四章方程组的直接解法
由A的第1行和第1列可计算出U的第1行和L的第1列,即
u1 j a1 j , j 1, 2, , n,
(5.3.1)
lk1

ak1 u11
,k

2, 3,
, n.
(5.3.2)
如果U的第1至k-1列和L的第1至k-1列已经算出,则由
解 设 A=LU,即
l11 a11 1, l21 a21 2, l31 a31 0
u12

a12 l11
2, u13

a13 l11
1,

l22 a22 l21u12 3, l32 a32 l31u12 1

数值分析第二讲MATLAB简介

数值分析第二讲MATLAB简介

MATLAB编程入门 MATLAB的编程风格与C语言相同。 常用流程控制语句 if if语句条件 elseif if语句条件 end 终止作用域 for 指定次数的循环 while 不指定次数的循环 break 终止循环 switch 开关语句 case 列出语句 otherwise否则语句 return 返回调用函数 function 函数定义语句
MATLAB常用函数名 数学函数(中文意义略) abs,acos,acosh,angle,asin,asinh,atan,atan2,atanh, ceil,conj,cos,cosh,exp,fix,floor,gcd,imag,lcm,log, log10,real,rem,round,sign,sin,sinh,sqrt,tan,tanh, 构造矩阵函数 eye(n),ones(n),zeros(n):产生n阶单位、全1,全0矩阵 eye(m,n),ones(m.n),zeros(m.n):产生m×n的单位、全1,全 0矩阵 Sparse:构造稀疏矩阵 Size(M)取矩阵M的各维大小(结果为向量) size (M,n) 取矩阵M的第n维大小
例1:构造两个可加减乘的矩阵A,B,C,求A+B,A*C, sin(A)+cos(B),以及取A,B,C的子矩阵作同样的运算。 解:A=[ 1,2,3,4;5 6 7 8; 9 10 11 12]; B=ones(3,4) C= pascal(3) ⑴ D=A+B ⑵ E=sin(A)+cos(B) (3) F=A*C 错误操作:A*B,A+C
MATLAB的基本用法 一、数与变量 MATLAB的内部本质上只有两种类型的数据:实数和字符。 一个实数占8个字节(64比特),一个字符占用1字节(8比特)。 复数由两个实数构成,矩阵元素由字符、实数、复数构成。由矩 阵再构成“struct”(结构)数据类型,字符串是以字符为变量的 行向量。所以表现形式有:字符、字符串、整数、实数、复数、 结构。 characters: ‘char’ 表有符号字符 8bits, ‘uchar’ 无符号字符 8bits. integers :‘short’ 短整数16 bits, ‘long’ 长整数 32 bits, floating-point: ‘single-‘ 表单精度浮点数32bits, ’double‘表双精度浮 点数:64bits

matlab

matlab

45.产生极坐标图象的命令为:polar ( theta, r)。此命令用法类似于plot,很多plot 可用的选项polar 同样可用。
46.plot 的很多选项在loglog 中也可以使用。我们还有另外两个选择可用,第一个是semilogx(x, y),它产生的图象x 轴使用对数值,y 轴仍然用直接值;相应地,semilogy(x, y)产生的图象y 轴使用对数值,x 使用直接值。
40.fplot和plot的区别:fplot 函数绕过选择用来绘图的时间间隔,而自动为我们决定绘图的点数。一般地,fplot 为你产生尽可能精确的的图象,同时它也帮助我们绕过像这样的错误。调用fplot 的形式如 fplot('function string', [xstart, xend]) 。
y)完全一样。要产生堆合柱状图,我们写成bar(x, y, 'stacked')。
59.在等号“=”前面加上否定号“~”表示“不相等”,if sizex(2) ~= sizeN(2)。
60.使用disp命令在屏幕上打印出错误信息。disp('错误:数据必须具有相同的维数。')
61.求中位数:>> md = median(A);
42.添加图例:专业的图象总是附有图例,告诉读者某个曲线是什么。legend('sinh(x)','cosh(x)')
43.令如何设置绘图范围。可以通过调用axis 命令:axis ( [xmin xmax ymin ymax] )
44.子图即是在一个图上显示多于一个图象。绘制子图使用命令subplot(m, n, p),这里m 和n 告诉MATLAB 产生的产生的子图有m 行和n 列,p 用来告诉MATLAB 我们所要贴上去的某个已经绘制的图形窗口。

数值分析matlab程序实例

数值分析matlab程序实例

1,秦九韶算法,求出P(x=3)=2+4x+5x^2+2x^3的值clear all;x=3;n=3;a(1)=2;a(2)=4;a(3)=5;a(4)=2v(1)=a(n+1);for k=2:(n+1);v(k)=x*v(k-1)+a(n-k+2);endp=v(n+1)p=,1132,一次线型插值程序:利用100.121.求115的开方。

clear all;x1=100;x2=121;y1=10;y2=11;x=115;l1=(x-x2)/(x1-x2);l2=(x-x1)/(x2-x1);p1=l1*y1+l2*y2p1=10.71433,分段插值程序,已知为S1(x)为(0,0),(1,1),(2,5)(3,8)上的分段一次插值,求S1(1.5).clear allx=[0123];y=[0158];n=length(x);a=1.5;for i=2:nif(x(i-1)<=a<x(i));endendH1=y(i-1)+(y(i)-y(i-1))/(x(i)-x(i-1))*(a-x(i-1))H1=3.50004)曲线拟合:用一个5次多项式在区间[0,2π]内逼近函数sin(x)。

clear allX=linspace(0,2*pi,50);Y=sin(X);[P,S]=polyfit(X,Y,5)plot(X,Y,'k*',X,polyval(P,X),'k-')P=-0.00560.0874-0.39460.26850.87970.0102S=R:[6x6double]df:44normr:0.03375)求有理分式的导数clear allP=[3,5,0,-8,1,-5];Q=[10,5,0,0,6,0,0,7,-1,0,-100];[p,q]=polyder(P,Q)6)将以下数据按从小到大排序:4.3 5.7 5.2 1.89.4a=[4.35.75.21.89.4];b(1:100)=0;n=1;b(a*10)=1;for k=1:100a(n)=k/10;if b(k)>0a(n)=k/10;n=n+1;endendaa=1.8000 4.3000 5.2000 5.70009.400010.00007)用二分法求方程x 3-x-1=0在[1,2]内的近似根,要求误差不超过10-3。

非周期信号(方波,锯齿波,三角波)的合成分解以及频谱分析的MATLAB实现

非周期信号(方波,锯齿波,三角波)的合成分解以及频谱分析的MATLAB实现
MATLAB 在数学类科技应用软件中在数值计算方面首屈一指。MATLAB 可以进行矩 阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等, 主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模 设计与分析等领域。
1.2 主要功能
1.数值分析 2.数值和符号计算 3.工程与科学绘图 4.控制系统的设计与仿真 5.数字图像处理 6.数字信号处理 7.通讯系统设计与仿真 8.财务与金融工程
2
连续周期信号的傅立叶级数分析及其 MATLAB 实现
2 连续周期信号的傅立叶级数
频域分析法即傅里叶分析法,它是变换域分析法的基石。其中,傅里叶级数 是变换域分析法的理论基础,傅里叶变换作为频域分析法的重要数学工具,具有 明确的物理意义,在不同的领域得到广泛的应用。
2.1 连续时间周期信号的分解
以高等数学的知识,任何周期为 T 的周期函数,在满足狄里赫利条件时,则 该周期信号可以展开成傅里叶级数。傅里叶级数有三角形式和指数形式两种。
(3-2)
2
2
3
MATLAB 实现程序:
n=7;
6
连续周期信号的傅立叶级数分析及其 MATLAB 实现
T0=2;A=2; T1=2; tn_i=1; for tn=0:0.01:T1*T0
y_t(tn_i)=A* rem (tn,T0)/T0; t_t(tn_i)=tn; tn_i=tn_i+1; end; t=0:0.01:T1*T0; x=A/2; pi=3.1415926; w0=2*pi/T0; for i=1:n fw(i)=i*w0; a(i)=-A/(pi*i); y(i,:)=a(i)*sin(fw(i)*t); x=x+y(i,:); end; subplot(1,3,1); plot(t_t,[y_t;x]); title('锯齿波、锯齿波合成图') subplot(1,3,2); plot(t,[x; y]); title('0-n 次谐波及合成图') subplot(1,3,3); stem(fw,a); title('锯齿波频谱图') 生成图形:

数值分析实验报告

数值分析实验报告
end
%消元过程
fori=k+1:n
m=A(i,k)/A(k,k);
forj=k+1:n
A(i,j)=A(i,j)-m*A(k,j);
end
b(i)=b(i)-m*b(k);
end
det=det*A(k,k);
end
det=det*A(n,n);
%回代过程
ifabs(A(n,n))<1e-10
flag='failure';return;
*x=(x0,x1….,xn),插值节点
*y=(y0,y1,…,yn);被插函数f(x)在插值节点处的函数值
*t求插值函数Pn(x)在t处的函数值
*返回值 插值函数Pn(x)在t处的函数值
*/
procedureNewton
forj=0to n
d1jyj;
endfor
forj=1to n
fori=j to n
[n,m]=size(A);nb=length(b)
%当方程组行与列的维数不相等时,停止计算,并输出出错信息
ifn~=m
error('The row and columns of matrix A must beepual!');
return;
end
%当方程组与右端项的维数不匹配时,停止计算,并输出错误信息
clear
fprintf('gauss-seidel迭代法')
x1_(1)=0;
x2_(1)=0;
x3_(1)=0;
fori=1:9
x1_(i+1)=7.2+0.1*x2_(i)+0.2*x3_(i);

数值分析 (颜庆津)第2章学习小结

数值分析 (颜庆津)第2章学习小结

第二章线性方程组的解法--------学习小结姓名班级学号一、本章学习体会通过对第二章的学习,学会了线性方程组的很多解法,主要学习了高斯消去法、直接三角分解法以及迭代法三种方法。

(1)高斯消去法中,我们又学习了顺序高斯消去法以及列主元素高斯消去法。

顺序高斯消去法可以得到方程组的精确解,但要求系数矩阵的主对角线元素不为零,而且该方法的数值稳定性没有保证。

但列主元素高斯消去法因为方程顺序的调整,其有较好的数值稳定性。

(2)直接三角分解法中,我们主要学习了Doolitte分解法与Crout分解法。

其思想主要是:令系数矩阵A=UL,其中L为下三角矩阵,U是上三角矩阵,为求AX=b 的解,则引进Ly=b,Ux=y两个方程,以求X得解向量。

这种方法计算量较小,但是条件苛刻,且不具有数值稳定性。

(3)迭代法(逐次逼近法)是从一个初始向量出发,按照一定的计算格式,构造一个向量的无穷序列,其极限才是所求问题的精确解,只经过有限次运算得不到精确解。

该方法要求迭代收敛,而且只经过有限次迭代,减少了运算次数,但是该方法无法得到方程组的精确解。

Matlab上实现编程语言,我觉得这是我在本章遇到的最大难题。

二、本章知识梳理第2章 线性方程组的解法2.2 直接三角分解法2.1 Gauss 消去法顺序Gauss 消去法列主元素Gauss 消去法顺序Gauss 消去法的数值稳定性是没有保证的主元Gauss 消元法有很好的数值稳定性Doolittle 分解法Crout 分解法 选主元的Doolitte 分解法 三角分解法解带状定理:若矩阵A 非奇异,则存在置换矩阵Q ,使得QA 可做Doolitte 分解,QA=LU ,其中L 是单位下三角矩阵,U 是上三角矩阵。

推论:矩阵A 有唯一的能进行Crout 分解的充分必要条件是:A 的前n-1个顺序主子式不等于0 定理:矩阵A=有唯一的能进行Doolittle(杜利特尔)分解的充分必要条件是:A 的前n-1个顺序主子式不等于0定理:(1)A=是上半带宽为s 下半带宽为r 的带状矩阵(2)A 的前n-1个顺序主子式均不为零,则A 有唯一的Doolitte 分解A=LU ,其中L 是下半带宽为r 的单位下三角矩阵,U 是上半带宽为s 的上三角矩阵。

数值分析简述及求解应用

数值分析简述及求解应用

数值分析简述及求解应用摘要:数值分析是研究分析用计算机求解数学计算问题的数值计算方法及其理论的学科,本文主要介绍了数值分析的一些求解方法的原理和过程,并应用在电流回路和单晶硅提拉过程中的,进一步体现数值分析的实际应用。

关键字:解方程组插值法牛顿法一、引言随着科学技术的发展,提出了大量复杂的数值计算问题,在建立电子计算机成为数值计算的主要工具以后,它以数字计算机求解数学问题的理论和方法为研究对象。

有可靠的理论分析,要有数值实验,并对计算的结果进行误差分析。

数值分析的主要内容包括插值法,函数逼近,曲线拟和,数值积分,数值微分,解线性方程组的直接方法,解线性方程组的迭代法,非线性方程求根,常微分方程的数值解法。

运用数值分析解决问题的过程包括:实际问题→数学建模→数值计算方法→程序设计→上机计算求出结果。

在自然科学研究和工程技术中有许多问题可归结为求解方程组的问题,方程组求解是科学计算中最常遇到的问题。

如在应力分析、电路分析、分子结构、测量学中都会遇到解方程组问题。

在很多广泛应用的数学问题的数值方法中,如三次样条、最小二乘法、微分方程边值问题的差分法与有限元法也都涉及到求解方程组。

在工程中常会遇到求解线性方程组的问题,解线性方程组的方法有直接法和迭代法,直接法就是经过有限步算术运算,可求的线性方程组精确解的方法(若计算过程没有舍入误差),但实际犹如舍入误差的存在和影响,这种方法也只能求得近似解,这类方法是解低阶稠密矩阵方程组级某些大型稀疏矩阵方程组的有效方法。

直接法包括高斯消元法,矩阵三角分解法、追赶法、平方根法。

迭代法就是利用某种极限过程去逐步逼近线性方程组精确解的方法。

将方程组的解看作是某极限过程的极限值,且计算这一极限值的每一步是利用前一步所得结果施行相同的演算步骤而进行。

迭代法具有需要计算机的存储单元少,程序设计简单,原始系数矩阵在计算过程始终不变等优点,但存在收敛性级收敛速度问题。

迭代法是解大型稀疏矩阵方程组(尤其是微分方程离散后得到的大型方程组)的重要方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档