C#,码海拾贝(41)——求解“线性最小二乘问题”的“广义逆法”之C#源代码

news2024/10/7 3:22:39

 

using System;

namespace Zhou.CSharp.Algorithm
{
    /// <summary>
    /// 求解线性方程组的类 LEquations
    /// 原作 周长发
    /// 改编 深度混淆
    /// </summary>
    public static partial class LEquations
    {

        /// <summary>
        /// 求解线性最小二乘问题的广义逆法
        /// </summary>
        /// <param name="mtxLECoef">指定的系数矩阵</param>
        /// <param name="mtxLEConst">指定的常数矩阵</param>
        /// <param name="mtxResult">Matrix对象,返回方程组解矩阵</param>
        /// <param name="mtxAP">Matrix对象,返回系数矩阵的广义逆矩阵</param>
        /// <param name="mtxU">Matrix对象,返回U矩阵</param>
        /// <param name="mtxV">Matrix对象,返回V矩阵</param>
        /// <param name="eps">控制精度</param>
        /// <return>bool 型,方程组求解是否成功</return>
        public static bool GetRootsetGinv(Matrix mtxLECoef, Matrix mtxLEConst, Matrix mtxResult, Matrix mtxAP, Matrix mtxU, Matrix mtxV, double eps)
        {
            // 方程个数和未知数个数
            int m = mtxLECoef.GetNumRows();
            int n = mtxLECoef.GetNumColumns();

            // 初始化解向量
            mtxResult.Init(n, 1);

            double[] pDataConst = mtxLEConst.GetData();
            double[] x = mtxResult.GetData();

            // 临时矩阵
            Matrix mtxA = new Matrix(mtxLECoef);

            // 求广义逆矩阵
            if (!Matrix.InvertUV(mtxA, mtxAP, mtxU, mtxV, eps))
            {
                return false;
            }

            double[] pAPData = mtxAP.GetData();

            // 求解
            for (int i = 0; i <= n - 1; i++)
            {
                x[i] = 0.0;
                for (int j = 0; j <= m - 1; j++)
                {
                    x[i] = x[i] + pAPData[i * m + j] * pDataConst[j];
                }
            }
            return true;
        }
}

}

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

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

相关文章

chatgpt赋能python:Python发送邮件的完整指南

Python发送邮件的完整指南 如果您想通过Python发送电子邮件&#xff0c;则需要进行一些基本设置。例如&#xff0c;您需要了解SMTP服务器的详细信息&#xff0c;配置帐户凭据以及定义电子邮件的内容。本文将指导您完成这些步骤&#xff0c;并为您提供一个完整的Python代码示例…

有可以在游泳戴的耳机吗?适合游泳佩戴的耳机推荐

1.南卡Runner Pro4S骨传导游泳耳机 作为国内骨传导天花板品牌的南卡其发布的新产品Runner Pro 4S与之前的Pro 3和Pro 4在佩感方面没有太大改变&#xff0c;依旧舒适牢固&#xff0c;不会发生掉落的情况&#xff0c;实测重量31.7g&#xff0c;几乎是无感佩戴&#xff0c;毫无负担…

ZooKeeper 的架构是怎样的?

前言 本文隶属于专栏《大数据技术体系》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见大数据技术体系 正文 ZooKeeper 的架构图主要包含以下几个部分&…

chatgpt赋能python:Python中如何取出字符串中的字符

Python中如何取出字符串中的字符 在Python编程中&#xff0c;经常会涉及到需要对字符串中的字符进行操作&#xff0c;比如提取某些特定的字符等。那么&#xff0c;Python中如何取出字符串中的字符呢&#xff1f;本文将为您进行详细介绍。 1. 使用索引 在Python中&#xff0c…

Rust每日一练(Leetday0027) 单词搜索、删除重复项II、搜索旋转排序数组II

目录 79. 单词搜索 Word Search &#x1f31f;&#x1f31f; 80. 删除有序数组中的重复项 II Remove-duplicates-from-sorted-array-II &#x1f31f;&#x1f31f; 81. 搜索旋转排序数组 II Search-in-rotated-sorted-array-II &#x1f31f;&#x1f31f; &#x1f31…

Shell编程循环语句(for、while、until)

目录 一、for 循环 1.用法和特点 2.执行指定次数 3.遍历和迭代 &#xff08;1&#xff09;遍历 &#xff08;2&#xff09;迭代 4.操作实例 二、 while 循环 1.用法和特点 2.操作实例 三、until 循环 1.用法和特点 2.操作实例 一、for 循环 1.用法和特点 读取不…

chatgpt赋能python:Python如何去除列表中重复的元素?

Python如何去除列表中重复的元素&#xff1f; 在Python编程中&#xff0c;经常会遇到需要操作列表的情况。而有时候列表中会出现重复的元素&#xff0c;这会给后续的数据处理带来麻烦。那么如何去除列表中重复的元素呢&#xff1f;下面将为大家介绍几种方法。 1. 使用set()函…

Golang每日一练(leetDay0093) 丢失的数字、整数转换英文表示

目录 268. 丢失的数字 Missing Number &#x1f31f; 273. 整数转换英文表示 Integer To English Words &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 C/C每日…

北邮国院物联网Software Engineering软件工程笔记

主要依照课上ppt的面向考试学习。 pdf文件获取&#xff1a;添加文章末尾微信公众号&#xff1a;灰海宽松&#xff0c;后台回复“软件工程”获取文件。 文章目录 Introductionsoftware typesgood software featureswhat is software engineering?4 layersWhy important?Genera…

Django、数据库----------ORM框架

目录 1.安装第三方模块 2.ORM 1.自己创建数据库 2.django连接数据库 3.django操作表 创建表&#xff1a;在models.py文件中 删除表以及修改表 在表中新增列时&#xff0c;由于已存在列中可能已有数据&#xff0c;所以新增列必须要指定新增列对应的数据 Django开发操作数…

vector 迭代器失效问题

vector 迭代器失效 迭代器的主要作用就是让算法能够不用关心底层数据结构&#xff0c;其底层实际就是一个指针&#xff0c;或者是对指针进行了封装&#xff0c;比如&#xff1a;vector的迭代器就是原生态指针T* 。因此迭代器失效&#xff0c;实际就是迭代器底层对应指针所指向…

总结896

学习目标&#xff1a; 月目标&#xff1a;6月&#xff08;线性代数强化9讲&#xff0c;背诵15篇短文&#xff0c;考研核心词过三遍&#xff09; 周目标&#xff1a;线性代数强化3讲&#xff0c;英语背3篇文章并回诵&#xff0c;检测 每日必复习&#xff08;5分钟&#xff09;…

读改变未来的九大算法笔记09_指尖的精灵

1. 人类很有可能“在未来像过去所做过的一样行事” 2. 计算机科学领域并不仅仅是编程 2.1. 编程知识是计算机科学家所必需的&#xff0c;但它却只是前提 2.2. 要应用并试验算法&#xff0c;计算机科学研究者就需要将算法转换成计算机程序&#xff0c;而每个程序都由Java、C或…

AMC12和高考数学哪个更难?知识点有哪些不同?

AMC12和高考数学哪个更难&#xff1f;知识点有哪些不同&#xff1f;今天小编给大家来详细介绍一下&#xff01; 难度对比 从难度上看&#xff0c;高考数学的计算量更大&#xff0c;并且知识点比AMC10/12超前&#xff0c;需要用到极限和微积分的知识。 反观AMC10/12不需要用到…

LinkedHashMap源码

介绍 LinkedHashMap是HashMap的子类 Key和Value都允许空有序key可重复可覆盖&#xff0c;value可重复非线程安全可用于实现LRU public class LinkedHashMap<K,V>extends HashMap<K,V>implements Map<K,V>LinkedHashMap的原理图&#xff1a; LinkedHashMa…

【Jetpack】Room 中的销毁重建策略 ( 创建临时数据库表 | 拷贝数据库表数据 | 删除旧表 | 临时数据库表重命名 )

文章目录 一、销毁 和 重建策略二、销毁 和 重建策略 核心要点1、创建 Migration 迁移类 - 重点2、配置 Migration 迁移类3、修改数据库版本号4、修改实体类数据类型 三、完整代码示例1、数据库版本 3 代码示例RoomDatabase 数据库类完整代码Student 实体类完整代码执行结果 2、…

chatgpt赋能python:Python编程爱好者必备:如何参加线上比赛

Python编程爱好者必备&#xff1a;如何参加线上比赛 作为一名拥有10年Python编程经验的工程师&#xff0c;我非常喜欢参加线上编程比赛。在这些比赛中&#xff0c;我可以与全球的编程爱好者一起竞技&#xff0c;展现自己编程的优势和挑战自己的能力。在这篇SEO文章中&#xff…

数论与组合数学 期末总结(完结)

数论与组合数学 自然数的基本性质整除最大公约数&#xff08;GCD&#xff09;辗转相除法欧几里得算法 互质 Coprime素数算数基本定理 同余欧拉定理欧拉函数费马小定理威尔逊定理 逆元求逆&#xff1a;欧几里得扩展算法 线性同余方程组 ( a x b m o d m ) (axb\ mod\ m) (axb m…

2023数维杯A题水体污染对流弥散吸附完整论文及所有数值计算模拟代码

大家好呀&#xff0c;从昨天发布赛题一直到现在&#xff0c;总算完成了数维杯A题完整的成品论文。 A题论文37页&#xff0c;一些修改说明提醒7页&#xff0c;正文22页&#xff0c;附录8页 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴…

chatgpt赋能python:Python如何快速取出所有元素?

Python如何快速取出所有元素&#xff1f; 随着Python编程的流行&#xff0c;我们常常需要处理列表、元组和字典等数据结构。在这些数据结构中&#xff0c;最常见的操作是获取所有元素。本文将介绍如何使用Python来快速取出所有元素。 获取列表中所有元素 在Python中&#xf…