C#,码海拾贝(33)——约化“一般实矩阵”为“赫申伯格矩阵”的“初等相似变换法”之C#源代码,《C#数值计算算法编程》源代码升级改进版

news2024/11/28 22:54:49

 

using System;

namespace Zhou.CSharp.Algorithm
{
    /// <summary>
    /// 矩阵类
    /// 作者:周长发
    /// 改进:深度混淆
    /// https://blog.csdn.net/beijinghorn
    /// </summary>
    public partial class Matrix
    {

        /// <summary>
        /// 约化一般实矩阵为赫申伯格矩阵的初等相似变换法
        /// </summary>
        /// <param name="src">源矩阵</param>
        public static void MakeHberg(Matrix src)
        {
            int i = 0, j, k, u, v;
            double d, t;

            for (k = 1; k <= src.Columns - 2; k++)
            {
                d = 0.0;
                for (j = k; j <= src.Columns - 1; j++)
                {
                    u = j * src.Columns + k - 1;
                    t = src[u];
                    if (Math.Abs(t) > Math.Abs(d))
                    {
                        d = t;
                        i = j;
                    }
                }

                if (Math.Abs(d) > float.Epsilon) //d != 0.0)
                {
                    if (i != k)
                    {
                        for (j = k - 1; j <= src.Columns - 1; j++)
                        {
                            u = i * src.Columns + j;
                            v = k * src.Columns + j;
                            t = src[u];
                            src[u] = src[v];
                            src[v] = t;
                        }

                        for (j = 0; j <= src.Columns - 1; j++)
                        {
                            u = j * src.Columns + i;
                            v = j * src.Columns + k;
                            t = src[u];
                            src[u] = src[v];
                            src[v] = t;
                        }
                    }

                    for (i = k + 1; i <= src.Columns - 1; i++)
                    {
                        u = i * src.Columns + k - 1;
                        t = src[u] / d;
                        src[u] = 0.0;
                        for (j = k; j <= src.Columns - 1; j++)
                        {
                            v = i * src.Columns + j;
                            src[v] = src[v] - t * src[k * src.Columns + j];
                        }

                        for (j = 0; j <= src.Columns - 1; j++)
                        {
                            v = j * src.Columns + k;
                            src[v] = src[v] + t * src[j * src.Columns + i];
                        }
                    }
                }
            }
        }
     }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/607301.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023CISCN初赛

两天时间题量还挺大的&#xff0c;简单记录 文章目录 misc签到卡pyshell国粹被加密的生产流量网络安全人才实战能力评价 webunzipdumpitBackendService reversebabyRE pwnfuncanary烧烤摊儿 crypto基于国密SM2算法的密文分发可信度量Sign_in_passwd misc 签到卡 就是做了个p…

CoreDX DDS应用开发指南(2)安装和应用开发

2 CoreDX DDS安装 2.1 系统支持 2.1.1 支持的CPU架构和操作系统 2.1.2 支持的语言和编译器

Linux 实操篇-进程管理(重点)

Linux 实操篇-进程管理(重点) 基本介绍 在LINUX 中&#xff0c;每个执行的程序都称为一个进程。每一个进程都分配一个ID 号(pid,进程号)。>windows > linux每个进程都可能以两种方式存在的。前台与后台&#xff0c;所谓前台进程就是用户目前的屏幕上可以进行操作的。后…

[BJDCTF 2020]easy_md5

TL;DR php弱类型比较md5碰撞绕过&#xff0c;强类型比较传数组绕过ffifdyop md5后的值字符串值为’or’6<乱码>&#xff0c;可用于构造sql注入的bypass没思路了看看网页源代码、看看响应头 过程 拿到题目链接&#xff0c;放到burp里&#xff0c;发现响应头中的提示&am…

JavaScript实现100以内奇数和的代码

以下为实现100以内奇数和的程序代码和运行截图 目录 前言 一、100以内奇数和 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 前言 1.若有选择&#xff0c;您可以在目录里进行快速查找&#xff1b; 2.本博文代码可以根据题目要求实现相关使用功能…

软件工程导论(三)系统概要设计

一、系统设计概述 1.1系统设计概述 设计和抽象 系统行为驱动完成设计面向对象设计系统数据驱动完成设计 面向操作的设计 面向数据的设计 设计主要分为三个步骤&#xff1a; 概要设计&#xff1a;接收需求的文档&#xff0c;完成模块的分解 详细设计&#xff1a;根据分解…

Linux 实操篇-网络配置

Linux 实操篇-网络配置 Linux 网络配置原理图 查看网络IP 和网关 查看虚拟网络编辑器和修改IP 地址 查看网关 查看windows 环境的中VMnet8 网络配置(ipconfig 指令) 查看linux 的网络配置ifconfig ping 测试主机之间网络连通性 基本语法 ping 目的主机&#xff08;功能描述…

CXGRid实现拖动鼠标多选

要实现在CXGrid中拖动鼠标多选&#xff0c;您可以按住鼠标左键并拖动鼠标&#xff0c;直到选择了要选择的单元格或行。您可以在拖动过程中按住Shift键来限制选择范围。拖动选择的单元格或行时&#xff0c;您可以按住Ctrl键来添加或删除单元格或行的选择。当您完成选择时&#x…

ChatGPT最全问答,你想知道的都在这里!

导读&#xff1a;ChatGPT最全问答&#xff0c;你想知道的都在这里&#xff01;本文为你详细解答了ChatGPT是什么、有哪些应用场景、如何更好地向ChatGPT提问以及ChatGPT的进阶技巧&#xff0c;让你轻松成为ChatGPT专家&#xff01; ChatGPT是什么&#xff1f; ChatGPT是一种自然…

简单Demo实现Javaweb的搭建在Tomcat

文章目录 环境准备程序编写 环境准备 本机&#xff1a;MacBook Pro 系统&#xff1a;MacOS 13.4 Tomcat 下载&#xff1a;Apache Tomcat - Welcome! 这里我下载的是9.0.75版本 启动Tomcat容器碰到Bug:Tomcat started.但是就是没法访问到相关页面&#xff0c;同时jps也没有相关…

Java数据驱动:CData JDBC Drivers 2022 Crack

JDBC 驱动程序 易于使用的 JDBC 驱动程序&#xff0c;具有强大的企业级功能 无与伦比的性能和可扩展性。 对实时数据的简单 JDBC/SQL 访问。 从流行的 BI 工具访问实时数据。 集成到流行的 IDE 中。 CData JDBC Drivers Software 是领先的数据访问和连接解决方​​案提供商。我…

附录4-微信开发者工具

目录 1.安装 2 微信开发者工具常用操作 2.1 创建项目 2.2 预览效果 2.3 查看小程序信息 2.4 自定义编译 2.4.1 创建编译模式 2.4.2 使用创建好的编译模式 2.4.3 删除编译模式 1.安装 【微信开发者工具下载】2023年最新官方正式版微信开发者工具免费下载 - 腾…

【企业化部署】Nginx之Rewrite与location的用法

文章目录 前言一、正则表达式1. Nginx 的正则表达式2. 正则表达的优势3. Nginx 使用正则的作用 二、location 的概念1. location 和 rewrite 区别2. location 匹配的分类3. location 常用的匹配规则3.1 location 匹配优先级3.2 location 匹配的实例3.3 实际网站规则定义第一个必…

Netty之EventLoop 解读

是什么 EventLoop &#xff08;事件循环对象&#xff09;本质是一个单线程执行器&#xff08;同时维护了一个 Selector&#xff09;&#xff0c;里面有 run 方法处理 Channel 上源源不断的 io 事件。 它的继承关系比较复杂 一条线是继承自 j.u.c.ScheduledExecutorService 因…

CenterSpace.NMath.Standard.Windows.X64 7.4 Crack

适用于所有 .NET 语言&#xff0c;包括 C#、Visual Basic 和 F#。 CenterSpace Software的NMath TM .NET 数学和统计库为.NET平台上的金融、工程和科学应用程序提供数值组件。 基础 .NET 数学和统计库NMath包括复数类、一般向量和矩阵类、结构化稀疏矩阵类和因式分解、一般稀疏…

华为OD机试真题 Java 实现【找出通过车辆最多颜色】【2023Q1 100分】

一、题目描述 在一个狭小的路口&#xff0c;每秒只能通过一辆车&#xff0c;假如车辆的颜色只有3种&#xff0c;找出n秒内经过的最多颜色的车辆数量。 三种颜色编号为0、1、2。 二、输入描述 第一行输入的是通过的车辆颜色信息 [0 1 1 2] 代表4秒钟通过的车辆颜色分别是0 1…

Rust每日一练(Leetday0020) 最后单词的长度、螺旋矩阵II、排列序列

目录 58. 最后一个单词的长度 Length of Last Word &#x1f31f; 59. 螺旋矩阵 II Spiral Matrix II &#x1f31f;&#x1f31f; 60. 排列序列 Permutation Sequence &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日…

Java企业级信息系统开发学习笔记14 Spring Boot(使用Spring Initializr方式构建Spring Boot项目)

文章目录 一、使用Spring Initializr方式构建Spring Boot项目&#xff08;一&#xff09;创建Spring Boot项目&#xff08;二&#xff09;创建控制器&#xff08;三&#xff09;运行入口类&#xff08;四&#xff09;访问Web页面&#xff08;五&#xff09;修改访问映射路径 一…

OpenMMLab-AI实战营第二期-MMPose代码介绍

课程介绍 原始视频链接&#xff1a; 安装MMDetection和MMPose&#xff1a;https://www.bilibili.com/video/BV1Pa4y1g7N7 MMDetection三角板目标检测&#xff1a;https://www.bilibili.com/video/BV1Lm4y1879K MMPose、RTMPose三角板关键点检测&#xff1a;https://www.bilibi…

chatgpt赋能python:Python取消Import:改变编程世界的未来发展趋势

Python取消Import&#xff1a;改变编程世界的未来发展趋势 Python是一门非常流行的编程语言&#xff0c;它是开源的&#xff0c;因此得到了许多人的喜爱。然而&#xff0c;在Python的发展过程中&#xff0c;有些人认为现有的模块和包管理方式不够理想&#xff0c;需要进行改进…