1. 分别用Gauss消去法、列主元Gauss消去法、三角分解方法求解方程组

程序:

(1)Guess消去法:

function x=GaussXQByOrder(A,b)

%Gauss消去法

N = size(A);

n = N(1);

x = zeros(n,1);

for i=1:(n-1)

for j=(i+1):n

if(A(i,i)==0)

disp(‘对角元不能为0‘);

return;

end

m = A(j,i)/A(i,i);

A(j,i:n)=A(j,i:n)-m*A(i,i:n);

b(j)=b(j)-m*b(i);

end

end

x(n)=b(n)/A(n,n);

for i=n-1:-1:1

x(i)=(b(i)-sum(A(i,i+1:n)*x(i+1:n)))/A(i,i);

end

命令行输入:

A=[1 -1 2 1;-1 3 0 -3 ;2 0 9 -6;1 -3 -6 19];

b=[1 3 5 7];

b=b‘;

x=GaussXQByOrder(A,b)

运算结果:

x =

-8.000000000000000

0.333333333333333

3.666666666666667

2.000000000000000

(2)列主元Gauss消去法

程序:

function x=GaussXQLineMain(A,b)

%列主元Gauss消去法

N = size(A);

n = N(1);

x = zeros(n,1);

zz=zeros(1,n);

for i=1:(n-1)

[~,p]=max(abs(A(i:n,i)));

zz=A(i,:);

A(i,:)=A(p+i-1,:);

A(p+i-1,:)=zz;

temp=b(i);

b(i)=b(i+p-1);

b(i+p-1)=temp;

for j=(i+1):n

m = A(j,i)/A(i,i);

A(j,i:n)=A(j,i:n)-m*A(i,i:n);

b(j)=b(j)-m*b(i);

end

end

x(n)=b(n)/A(n,n);

for i=n-1:-1:1

x(i)=(b(i)-sum(A(i,i+1:n)*x(i+1:n)))/A(i,i);

end

命令行:

A=[1 -1 2 1;-1 3 0 -3 ;2 0 9 -6;1 -3 -6 19];

b=[1 3 5 7];

b=b‘;

x=GaussXQLineMain(A,b)

运行结果:

x =

-8.000000000000005

0.333333333333332

3.666666666666668

2.000000000000000

(3)三角分解方法

程序:

function x = LU(A,b)

%三角分解

N = size(A);

n = N(1);

L = eye(n,n);

U = zeros(n,n);

x = zeros(n,1);

y = zeros(n,1);

U(1,1:n) = A(1,1:n);

L(1:n,1) = A(1:n,1)/U(1,1);

for k=2:n

for i=k:n

U(k,i) = A(k,i)-L(k,1:(k-1))*U(1:(k-1),i);

end

for j=(k+1):n

L(j,k) = (A(j,k)-L(j,1:(k-1))*U(1:(k-1),k))/U(k,k);

end

end

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

for i=2:n

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

end

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

for i=n-1:-1:1

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

end

命令行:

A=[1 -1 2 1;-1 3 0 -3 ;2 0 9 -6;1 -3 -6 19];

b=[1 3 5 7];

b=b‘;

x=LU(A,b)

运行结果:

x =

-8.000000000000000

0.333333333333333

3.666666666666667

2.000000000000000

程序:function [times,wucha]=zhuiganfa(a,b,c,f)

%追赶法:x为所求解,times为所有乘除运算次数(即时间),wucha为误差的2-范数。

n=length(f);

x=zeros(n,1);

y=zeros(n,1);

times=0;

alpha=zeros(1,n);

p=zeros(1,n-1);

alpha(1)=b(1);

for i=2:n

p(i-1)=c(i-1)/alpha(i-1);

alpha(i)=b(i)-a(i-1)*p(i-1);

times=times+1;

end

y(1)=f(1)/b(1);

for i=2:n

y(i)=(f(i)-a(i-1)*y(i-1))/alpha(i);

times=times+1;

end

x(n)=y(n);

for i=n-1:-1:1

x(i)=y(i)-p(i)*x(i+1);

times=times+1;

end

A=zeros(n,n);

A=diag(b,0)+diag(a,-1)+diag(c,1);

wucha=norm((A*x-f‘),2);

命令行(n=20):

a=repmat(11,1,19);

b=repmat(-19,1,20);

c=repmat(7,1,19);

f1=repmat(1.1,1,18);

f=[0 f1 1];

[times,wucha]=zhuiganfa(a,b,c,f)

运行结果:

times =

57

wucha =

8.009010697694412e-15

n=50时

命令行:

a=repmat(11,1,49);

b=repmat(-19,1,50);

c=repmat(7,1,49);

f1=repmat(1.1,1,48);

f=[0 f1 1];

[times,wucha]=zhuiganfa(a,b,c,f)

运行结果:

times =

147

wucha =

1.292635294609912e-14

命令行(n=100)

a=repmat(11,1,99);

b=repmat(-19,1,100);

c=repmat(7,1,99);

f1=repmat(1.1,1,98);

f=[0 f1 1];

[times,wucha]=zhuiganfa(a,b,c,f)

结果:

times =

297

wucha =

2.599344850768740e-14

程序:function [count,wucha] = zhouqisanduijaiozhuiganfa(a,b,c,f)

%x为所求解,count为所有乘除运算次数

n=length(f);

x=zeros(n,1);

y=zeros(n,1);

count=0;

l=zeros(1,n-2);

s=zeros(1,n-1);

u=zeros(1,n);

t=zeros(1,n-1);

u(1)=b(1);t(1)=1;

s(1)=1/u(1);y(1)=f(1);

for i=2:n-1

l(i-1)=a(i-1)/u(i-1);

u(i)=b(i)-l(i-1)*c(i-1);

t(i)=-l(i-1)*t(i-1);

s(i)=-s(i-1)*c(i-1)/u(i);

y(i)=f(i)-l(i-1)*y(i-1);

count=count+4;

end

st=0;

for k=1:n-1

st=st+s(k)*t(k);

count=count+1;

end

sy=0;

for k=1:n-2

sy=sy+s(k)*y(k);

count=count+1;

end

u(n)=b(n)-st-s(n-1)*(c(n-1)+t(n-1));

y(n)=f(n)-sy;

x(n)=y(n)/u(n);

for i=n-1:-1:1

x(i)=(y(i)-c(i)*x(i+1)-t(i)*x(n))/u(i);

count=count+1;

end

A=zeros(n,n);

A=diag(b,0)+diag(a,-1)+diag(c,1);

A(n,1)=1;

A(1,n)=1;

wucha=norm((A*x-f‘),2);

命令行:

n=10;

a=repmat(11,1,n-1);b=repmat(-19,1,n);

c=repmat(7,1,n-1);f1=repmat(1.1,1,n-2);f=[0 f1 1];

[count,wucha]= zhouqisanduijaiozhuiganfa(a,b,c,f)

运行结果:

count =

58

wucha =

4.525439045433075

n=30

count =

198

wucha =

5.951269557941316

n=100

count =

688

wucha =

5.993271932634396

原文:https://www.cnblogs.com/wander-clouds/p/9991527.html

高斯消去matlab,高斯消去、追赶法 matlab相关推荐

  1. matlab高斯型隶属函数,图高斯型隶属函数.PPT

    图高斯型隶属函数 第三章 模糊控制的理论基础 第一节 概述 第二节 模糊集合 第三节 隶属函数 第四节 模糊关系 第五节 模糊推理 在模糊控制中应用较多的隶属函数有以下6种隶属函数. (1)高斯型隶属 ...

  2. matlab 产生高斯噪声和高斯白噪声方法

    如何用matlab 产生 均值为0,方差为5的高斯噪声 2011-07-15 19:36 y=randn(1,2500);  y=y/std(y);  y=y-mean(y);  a=0;  b=sq ...

  3. 【光学】基于matlab GS算法高斯光转换成高阶高斯光+一阶空心高斯光+贝塞尔高斯光【含Matlab源码 2166期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GS算法高斯光转换成高阶高斯光+一阶空心高斯光+贝塞尔高斯光[含Matlab源码 2166期] 点击上面蓝色字体 ...

  4. MATLAB高斯-勒让德积分求解

    MATLAB高斯-勒让德积分求解 积分函数 function [ y ] = CalcuFunctionValue( x ) y=exp(-x^2);%积分函数 end 求积分算法函数 functio ...

  5. matlab 高斯迭代法求解,高斯迭代法matlab算例

    Matlab 线性方程组的迭代解法 Gauss-Seidel 迭代法 Matlab 线性方程组的迭代解法 Gauss-Seidel 迭代法实验报告 1.熟悉 Gauss-Seidel 迭代法,并编写 ...

  6. matlab 高斯展宽,高斯函数半高宽

    设入射椭圆高斯光束光强分布方程为其中 ωx0 和ωy0 分别为椭圆高斯光束 x 和 y 方向上的束腰,定义 ωy0/ωx0=m. 为方便积分,采用匀化洛伦兹函数作为出射光强分布: 式中 RFL 为出射 ...

  7. matlab 高斯一阶导,高斯函数及其各阶导数

    [使用Matlab进行拟合是图像处理中线条变换的一个重点内容,本文将详解Matlab中的直线拟合和曲线拟合用法.关键函数:fittypeFit type for curve and surface f ...

  8. matlab高斯白噪声功率,自定义高斯白噪声功率和带宽

    1.目标 在通信.雷达和计量等领域,在仿真.测试和计量过程中,常常需要使用信号源产生高斯白噪声信号,而且,重要的是,准确定义的噪声功率和带宽. 本文目的是产生用户自定义功率和带宽的高斯白噪声,方法是利 ...

  9. 带噪图像的高斯滤波MATLAB,图像处理___高斯滤波与高斯噪声

    噪声 1.噪声表现形式 噪声在图像上常表现为一引起较强视觉效果的孤立像素点或像素块.一般,噪声信号与要研究的对象不相关,它以无用的信息形式出现,扰乱图像的可观测信息.通俗的说就是噪声让图像不清楚. 2 ...

  10. 高斯消去、列主元消去、Lu分解、追赶法(matlab)

    文章目录 一.高斯消去法 二.高斯列主元消去法 三.Lu分解 四.追赶法 一.高斯消去法 比如对与上面的这个方程组,用消去法解方程组的基本思想是用逐次消 去未知数的方法把原方程组 Ax = b 化为与 ...

最新文章

  1. Linux上操作Docker守护态运行
  2. 开启tomcat的apr模式,并利用redis做tomcat7的session的共享。
  3. PHP简单功能的实现
  4. Git忽略规则.gitignore梳理
  5. 统信uos系统考试题_离Windows更近一步!微信Linux原生版上线:国产统信UOS系统已适配...
  6. oo0ooo0ooo0oo_OoO的完整形式是什么?
  7. dropdownlist三级联动怎么实现_一张表实现三级联动
  8. 【vue-element-admin 】侧栏原始图标颜色一键指定
  9. Lintcode93 Balanced Binary Tree solution 题解
  10. nginx查看配置文件nginx.conf路径
  11. 今日恐慌与贪婪指数为75 贪婪程度有所缓解
  12. python bool类型如何与整数比较_Python入门必读bool类型和比较运算符
  13. python自动化上传文件_python接口自动化测试二十三:文件上传
  14. 移动通讯市场发展概况及预测
  15. 十进制数转换BCD码
  16. IP转换器 V2.6
  17. 链家房源数据爬取(Scrapy)
  18. win10修改ntp服务器地址,修改win10 ntp服务器地址
  19. 单词串联记忆 - 故事 - Party上浪漫的事后传
  20. [python] paramiko实现SSH和SFTP

热门文章

  1. vscode找不到python环境_在vscode成功配置Python环境
  2. 终于有人说出来了——Java不适合于作为主要编程教学语言
  3. python丨制表符丨对齐
  4. tensorflow kaggle猫狗大战识别猫狗
  5. 转载:C# IO读取文件问题:正由另一进程使用
  6. 加入闲鱼是一种什么体验?
  7. [数学建模]最大最小化模型多目标规划问题
  8. 7、Java中的Map、Set、List
  9. Spring Boot 集成 FreeMarker 详解案例
  10. 7z.001压缩包解压方法。(Window+Linux)