数值分析原理课程实验——(高斯)Gauss列主元消去法_MAC、凉梦的博客-程序员信息网

技术标签: matlab  算法  c语言  线性代数  抽象代数  数值分析原理  

高斯(Gauss)列主元消去法

方法概要

在这里插入图片描述

待求问题

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

程序流程

在这里插入图片描述

程序代码

/*Matlab函数
function Result = Gauss(n, A, b)
    for k = 1:n-1
        max = abs(A(k, k));
        p = k;
        for j = k+1:n
            if(abs(A(j, k)) > max)
                max = abs(A(j, k));
                p = j;
            end
        end
        if(A(p, k) == 0)
            Result = 'Singular matrix!';
            return;
        end
        if(p ~= k)
           A([k p], :) = A([p k], :);
           b([k p], :) = b([p k], :);
        end
        for i = k+1:n
            Mik = A(i, k)/A(k, k);
            for j = k:n
                A(i, j) = A(i, j) - A(k, j)*Mik;
            end
            b(i) = b(i) - b(k)*Mik;
        end
    end
    if(A(n, n) == 0)
        Result = 'Singular matrix!';
        return;
    end
    Result = zeros(n, 1);
    Result(n, 1) = b(n)/A(n, n);
    for k = n-1:-1:1
        Sum = 0;
        for j = k+1:n
            Sum = Sum + A(k, j)*Result(j, 1);
        end
        Result(k, 1) = (b(k) - Sum)/A(k, k);
    end
end*/

/*C语言程序
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define N 10

int n;
double a[N][N], b[N], x[N];

int main() {
    scanf("%d", &n);
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= n; j++) scanf("%lf", &a[i][j]);
    for (int i = 1; i <= n; i++) scanf("%lf", &b[i]);
    for (int k = 1; k < n; k++) {
        int p = k;
        double maxabs = fabs(a[k][k]);
        for (int j = k + 1; j <= n; j++)
            if (fabs(a[j][k]) - maxabs > 0) {
                p = j;
                maxabs = fabs(a[j][k]);
            }
        if (a[p][k] == 0) {
            printf("Singular");
            return 0;
        }
        if (p != k) {
            double tmp;
            for (int j = 1; j <= n; j++) {
                tmp = a[p][j];
                a[p][j] = a[k][j];
                a[k][j] = tmp;
            }
            tmp = b[p];
            b[p] = b[k];
            b[k] = tmp;
        }
        for (int i = k + 1; i <= n; i++) {
            double m_ik = a[i][k] / a[k][k];
            for (int j = k + 1; j <= n; j++) a[i][j] -= a[k][j] * m_ik;
            b[i] -= b[k] * m_ik;
        }
    }
    if (a[n][n] == 0) {
        printf("Singular");
        return 0;
    }
    x[n] = b[n] / a[n][n];
    for (int k = n - 1; k >= 1; k--) {
        double sigma = 0.0;
        for (int j = k + 1; j <= n; j++) sigma += a[k][j] * x[j];
        x[k] = (b[k] - sigma) / a[k][k];
    }
    for (int i = 1; i <= n; i++) printf("%lf\t", x[i]);
    return 0;
}*/

运行结果

在这里插入图片描述

在这里插入图片描述

牛顿(Newton)迭代法,原文链接:

https://blog.csdn.net/KissMoon_/article/details/116277622

拉格朗日(Lagrange)插值,原文链接:

https://blog.csdn.net/KissMoon_/article/details/116278449

四阶龙格-库塔(Runge-Kutta)方法,原文链接:

https://blog.csdn.net/KissMoon_/article/details/116278567

Newton/Gauss/Lagrange/Runge-Kutta实验内容+方法指导+Matlab脚本+Matlab函数+Matlab运行报告+C程序+实验报告,一键下载:

https://download.csdn.net/download/KissMoon_/18244419

凉梦空间

欢迎你进入我的个人博客网站参观交流:https://www.liangmeng.xyz

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/KissMoon_/article/details/116278197

智能推荐

路由协议&BGP 边界网关路由协议(一)_pfxrcd_Go-0410的博客-程序员信息网

1.BGP的概念BGP:边界网关路由协议 -典型的EGP协议,用于AS和AS之间;协议更新中是否携带网络掩码:携带网络掩码协议算法:无算法 ,规则 ,路径矢量型协议封装:基于TCP封装 ,端口号 1792.BGP的特性特性:1、可靠性--不能周期更新,增量更新;-TCP2、可控性--该协议的真正意义, 在于AS间共享路由条目时更加方便快捷的干涉选路3、AS-BY-A...

linux一键安装MySQL,PHP,Nginx,Apache,memcached,Redis,HHVM_LonesomeRoad的博客-程序员信息网

  这个脚本是使用shell编写,为了快速在生产环境上部署lnmp/lamp/lnmpa(Linux、Nginx/Tengine/OpenResty、MySQL/MariaDB/Percona、PHP),适用于CentOS 6~7(包括redhat)、Debian 6~8、Ubuntu 12~16的32位和64位。脚本特性持续不断更新 源码编译安装,大多数源码是最新stable版,并从官...

FPGA与PCI-E_pcie与fpga通讯意义_ALIFPGA的博客-程序员信息网

从并行到串行:PCI Express(又称PCIe)是一种高性能、高带宽串行通讯互连标准,取代了基于总线的通信架构,如:PCI、PCI Extended (PCI-X) 以及加速图形端口(AGP)。PCI-e的主要性能:更低的生产成本更高系统吞吐量更好可扩展性和灵活性上述传统基于总线的互连几乎根本无法达到PCI-e所拥有的优秀性能。

aspx 页面数据绑定 前台数据绑定_aspx数据绑定_万事俱备,就差一个程序员了的博客-程序员信息网

asp.net代码中尖括号和百分号的含义在.aspx的文件中经常会碰到如下的代码,如:1、 里面放的变量名,如: Hello World Welcome to Beginning ASP.NET 3.5 on DateTime.Now.ToString() %> 输出结果为:Hello WorldWelcome to Beginning ASP.NET 3.5 o

MQTT(3)---MQTT协议及其在物联网中的应用_mqtt 网关拓扑发现_zhangbijun1230的博客-程序员信息网

MQTT (Message Queuing Telemetry Transport,消息队列遥测传输) 是一种标准化的发布/订阅消息传输协议,设计于1999年,最初是为了在卫星之类的物体上使用。它是一个非常轻量级的协议,由于对带宽需求很低,从而成为了 M2M 通信或物联网应用的理想选择,现在已经成为这类场景最常见的协议之一。本文会对该协议及一些使用范例做以简介,虽然没打算写成 MQTT 的综合性参...

操作系统复习:12.缺页中断以及内存页面置换算法_Java从跨平台到跨行业的博客-程序员信息网

目录缺页中断(缺页异常)页面置换算法1.基本概述2.OPT(最佳⻚⾯置换算法)3. FIFO(先进先出置换算法)4.LRU(最近最久未使⽤的置换算法)5.Lock(时钟⻚⾯置换算法)6.最不常⽤算法(LFU)缺页中断(缺页异常)当 CPU 访问的⻚⾯不在物理内存时,便会产⽣⼀个缺⻚中断,请求操作系统将所缺⻚调⼊到物理内存。与⼀般中断的主要区别:(1)缺⻚中断在指令执⾏期间产⽣和处理中断信号,⽽⼀般中断在⼀条指令执⾏完成后检查和处理中断信号。...

随便推点

天津联通光猫创维DT541-csf改桥接_解老师的博客-程序员信息网

天津联通光猫创维DT541-csf改桥接首先科普一下光猫的桥接模式和路由模式。桥接模式:光猫相当于一个能起到起到光电转换作用的网线,并不会参与控制数据,宽带拨号,DHCP等功能需要由路由器来完成。路由模式:光猫相当于路由器,除光电转换外,包括PPPOE拨号、WIFI发射、IP地址分派、NAT转换的各种路由器的工作均由光猫完成。我认为,路由器和光猫应该是各司其职的。光猫最原始的功能就是光信号转换,也就是桥接模式,这种情况下,拨号由路由器来做,相对应的NAT数据转发也由路由器来做。如果把路由功能集成到光

面试经历(签约华为,违约华为,签约移动)_华为解约函_shiddong的博客-程序员信息网

转自:毛小毛 完稿于2012年5月31日             Email: [email protected]前期准备:(一)华为华为每年校招的时间相对比较固定,以杭州地区为例,一般每年的9月份开始校招。9月份这批属于提前批,一般先从浙大开始,然后再到杭电来招生。有时间的话,希望大家能够去华为的校招官方网站注册简历career.huawei.com,在

php sql语句计算条数据,SQL_掌握SQL四条最基本的数据操作语句,掌握SQL四条最基本的数据操作 - phpStudy..._郭祥昊的博客-程序员信息网

掌握SQL四条最基本的数据操作语句掌握SQL四条最基本的数据操作语句:Insert,Select,Update和Delete。-dqx7O练掌握SQL是数据库用户的宝贵财 富。在本文中,我们将引导你掌握四条最基本的数据操作语句—SQL的核心功能—来依次介绍比较操作符、选择断言以及三值逻辑。当你完成这些学习后,显然你已经开始算是精通SQL了。-dqx7O在我们开始之前,先使用CREATE TABLE...

Github上设置小图标/小徽章_github风格的小徽章badgen_junpfeng的博客-程序员信息网

github 上的小图标看上去很炫酷如何实现基本格式如下https://img.shields.io/badge/{徽标标题}-{徽标内容}-{徽标颜色}.svg一个 markdown 例子![example](https://img.shields.io/badge/example-v1.0-red.svg)csdn显示不出来,可以复制到github或者其他markdown编辑器查看原理解释这个 shields 网站专门生产这种自定义的徽标。比如 https://img.sh..

词频计算_词频统计算法_changzoe的博客-程序员信息网

tf_idfTF-IDF(词频-逆文档频率)算法是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。该算法在数据挖掘、文本处理和信息检索等领域得到了广泛的应用,如从一篇文章中找到它的关键词。TFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在...

VSCode学习【5】: setting.json的两种配置位置_kunkliu的博客-程序员信息网

1、VSCode中setting.json的两种配置位置VSCode 提供设置setting.json的两种方式: User Settings(用户设置) - Settings that apply globally to any instance of VS Code you open.(用户区,即全局,关联于用户。在某个window用户下打开任意vscode界面都会用此配置,即应用于该用户打开的所有工程)Workspace Settings (工作区设置)- Settings stored insi

推荐文章

热门文章

相关标签