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

%直接三角分解法(1)

function [x,y,L,U]=nalu(a,b)

n=length(a);

x=zeros(n,1);y=zeros(n,1);

U=zeros(n,n);L=eye(n,n);

U(1,:)=a(1,:);

L(2:n,1)=a(2:n,1)/U(1,1);

for k=2:n

U(k,k:n)=a(k,k:n)-L(k,1:k-1)*U(1:k-1,k:n);

L(k+1:n,k)=(a(k+1:n,k)-L(k+1:n,1:k-1)*U(1:k-1,k))/U(k,k);

end

for i=2:n

y(1,1)=b(1,1);

y(i,1)=b(i,1)-L(i,1:i-1)*y(1:i-1,1); end

y(:,1);

for i=n-1:-1:1

x(n,1)=y(n,1)/U(n,n);

x(i,1)=(y(i,1)-U(i,i+1:n)*x(i+1:n,1))/U(i,i);

end

x(:,1);

clear all ;

clc;

A=[1,2,3;2,5,2;3,1,5];

b=[14;18;20];

[x,y,L,U]=nalu(A,b);

function [x,y,L,U]=sanjiao(a,b) n=length(a);

x=zeros(n,1);

y=zeros(n,1);

L=eye(n,n);

U=zeros(n,n);

%L,U·Ö½â

U(1,:)=a(1,:);

L(2:n,1)=a(2:n,1)/U(1,1);

for j=2:n

U(j,j:n)=a(j,j:n)-L(j,1:j-1)*U(1:j-1,j:n);

L(j+1:n,j)=(a(j+1:n,j)-L(j+1:n,1:j-1)*U(1:j-1,j))/U(j,j);

end

%Çó½â£¬ÁíUx=y,Ly=b

y(1,1)=b(1,1);

for i=2:n

y(i,1)=b(i,1)-L(i,1:i-1)*y(1:i-1,1); end

x(n,1)=y(n,1)/U(n,n);

for i=n-1:-1:1

x(i,1)=(y(i,1)-U(i,i+1:n)*x(i+1:n,1))/U(i,i);

end

clear all ;

a=[1,2,3;2,5,2;3,1,5];

b=[14;18;20];

[x,y,L,U]=sanjiao(a,b);

x

y

%直接三角分解法(1)

function [x,y,L,U]=nalu(a,b)

n=length(a);

x=zeros(n,1);y=zeros(n,1);

U=zeros(n,n);L=eye(n,n);

U(1,:)=a(1,:);

L(2:n,1)=a(2:n,1)/U(1,1);

for k=2:n

U(k,k:n)=a(k,k:n)-L(k,1:k-1)*U(1:k-1,k:n);

L(k+1:n,k)=(a(k+1:n,k)-L(k+1:n,1:k-1)*U(1:k-1,k))/U(k,k);

end

for i=2:n

y(1,1)=b(1,1);

y(i,1)=b(i,1)-L(i,1:i-1)*y(1:i-1,1); end

y(:,1);

for i=n-1:-1:1

x(n,1)=y(n,1)/U(n,n);

x(i,1)=(y(i,1)-U(i,i+1:n)*x(i+1:n,1))/U(i,i);

end

x(:,1);

clear all ;

clc;

A=[1,2,3;2,5,2;3,1,5];

b=[14;18;20];

[x,y,L,U]=nalu(A,b);

function [x,y,L,U]=sanjiao(a,b) n=length(a);

x=zeros(n,1);

y=zeros(n,1);

L=eye(n,n);

U=zeros(n,n);

%L,U·Ö½â

U(1,:)=a(1,:);

L(2:n,1)=a(2:n,1)/U(1,1);

for j=2:n

U(j,j:n)=a(j,j:n)-L(j,1:j-1)*U(1:j-1,j:n);

L(j+1:n,j)=(a(j+1:n,j)-L(j+1:n,1:j-1)*U(1:j-1,j))/U(j,j);

end

%Çó½â£¬ÁíUx=y,Ly=b

y(1,1)=b(1,1);

for i=2:n

y(i,1)=b(i,1)-L(i,1:i-1)*y(1:i-1,1); end

x(n,1)=y(n,1)/U(n,n);

for i=n-1:-1:1

x(i,1)=(y(i,1)-U(i,i+1:n)*x(i+1:n,1))/U(i,i);

end

clear all ;

a=[1,2,3;2,5,2;3,1,5];

b=[14;18;20];

[x,y,L,U]=sanjiao(a,b);

x

y


相关文章

  • 数值分析学习心得体会
  • 数值分析学习感想 一个学期的数值分析,在老师的带领下,让我对这门课程有了深刻的理解和感悟.这门 课程是一个十分重视算法和原理的学科,同时它能够将人的思维引入数学思考的模式,在处 理问题的时候,可以合理适当的提出方案和假设.他的内容贴近实际, ...查看


  • 数值分析课程设计(最终版)
  • 本文主要通过Matlab 软件,对数值分析中的LU 分解法.最小二乘法.复化Simpon 积分.Runge-Kutta 方法进行编程,并利用这些方法在MATLAB 中对一些问题进行求解,并得出结论. 实验一线性方程组数值解法中,本文选取LU ...查看


  • 数值分析作业思考题
  • 数值分析思考题1 1.讨论绝对误差(限).相对误差(限)与有效数字之间的关系. 2.相对误差在什么情况下可以用下式代替? e *x *-x e =*= x x * *r 3.查阅何谓问题的"病态性",并区分与" ...查看


  • 连续时间信号的频谱分析仪
  • 郑州轻工业学院 课程设计说明书 题目:基于MATLAB 的连续时间信号的频域分析 姓 名: 院 (系): 电气信息工程学院 专业班级: 学 号: 指导教师: 成 绩: 郑州轻工业学院 课 程 设 计 任 务 书 题目 基于MATLAB 的连 ...查看


  • 连续时间信号傅里叶级数分析及matlab实现
  • 课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位 题 目: 连续时间信号傅里叶级数分析及MATLAB 实现 初始条件: MATLAB 6.5 要求完成的主要任务: 深入研究连续时间信号傅里叶级数分析的理论知识,利用MATLAB ...查看


  • 运用Matlab实现光学中的几个傅立叶变换
  • 运用Matlab 实现光学中的几个傅立叶变换 摘要:光学中的傅立叶变换具有难度高,抽象性大的特点,而Matlab 却具有强大的信号处理功能,结合光学中傅立叶变换.傅立叶级数.卷积定理的内容,通过Matlab 程序来体现 光学中几个傅里叶调动 ...查看


  • 实验一连续信号的表示
  • 实验1 时域连续信号的表示及运算 一. 实验目的 1.掌握常用时域连续信号的MA TLAB 表示方法. 2.掌握连续信号的基本运算,包括信号相加与相乘.微分与积分.平移.反转.尺度变换.奇偶分解.卷积积分等. 二. 实验原理及方法 MATL ...查看


  • matlab实现线性卷积和循环卷积
  • 编号: 数字信号处理 实训 (论文) 说明书 题 目: 用matlab 实现两信号的卷积 院 (系): 应用科技学院 专 业: 电子信息工程 学生姓名: 蒋耀华 学 号: 0801130215 指导教师: 严素清 童有为 纪元法 2011 ...查看


  • 线性方程组的解法
  • 线性方程组的解法 1 引言 在科学研究和大型工程设计中出现了越来越多的数学问题,而这些问题往往需要求数值解.在进行数值求解时,经离散后,常常归结为求解形如Ax= b的大型线性方程组.而如插值公式,拟合公式等的建立,微分方程差分格式的构造等, ...查看


热门内容