C#,数值计算——数据建模Fitab的计算方法与源程序

1 文本格式

using System;

namespace Legalsoft.Truffer
{
    /// <summary>
    /// Fitting Data to a Straight Line
    /// </summary>
    public class Fitab
    {
        private int ndata { get; set; }
        private double a { get; set; }
        public double b { get; set; }
        private double siga { get; set; }
        private double sigb { get; set; }
        private double chi2 { get; set; }
        private double q { get; set; }
        private double sigdat { get; set; }
        private double[] x { get; set; }
        private double[] y { get; set; }
        private double[] sig { get; set; }

        public Fitab(double[] xx, double[] yy, double[] ssig)
        {
            this.ndata = xx.Length;
            this.x = xx;
            this.y = yy;
            this.sig = ssig;
            this.chi2 = 0.0;
            this.q = 1.0;
            this.sigdat = 0.0;
            Gamma gam = new Gamma();

            double ss = 0.0;
            double sx = 0.0;
            double sy = 0.0;
            double st2 = 0.0;
            b = 0.0;
            for (int i = 0; i < ndata; i++)
            {
                double wt = 1.0 / Globals.SQR(sig[i]);
                ss += wt;
                sx += x[i] * wt;
                sy += y[i] * wt;
            }
            double sxoss = sx / ss;
            for (int i = 0; i < ndata; i++)
            {
                double t = (x[i] - sxoss) / sig[i];
                st2 += t * t;
                b += t * y[i] / sig[i];
            }
            b /= st2;
            a = (sy - sx * b) / ss;
            siga = Math.Sqrt((1.0 + sx * sx / (ss * st2)) / ss);
            sigb = Math.Sqrt(1.0 / st2);
            for (int i = 0; i < ndata; i++)
            {
                chi2 += Globals.SQR((y[i] - a - b * x[i]) / sig[i]);
            }
            if (ndata > 2)
            {
                q = gam.gammq(0.5 * (ndata - 2), 0.5 * chi2);
            }
        }

        public Fitab(double[] xx, double[] yy)
        {
            this.ndata = xx.Length;
            this.x = xx;
            this.y = yy;
            this.sig = xx;
            this.chi2 = 0.0;
            this.q = 1.0;
            this.sigdat = 0.0;

            double sx = 0.0;
            double sy = 0.0;
            double st2 = 0.0;
            b = 0.0;
            for (int i = 0; i < ndata; i++)
            {
                sx += x[i];
                sy += y[i];
            }
            double ss = ndata;
            double sxoss = sx / ss;
            for (int i = 0; i < ndata; i++)
            {
                double t = x[i] - sxoss;
                st2 += t * t;
                b += t * y[i];
            }
            b /= st2;
            a = (sy - sx * b) / ss;
            siga = Math.Sqrt((1.0 + sx * sx / (ss * st2)) / ss);
            sigb = Math.Sqrt(1.0 / st2);
            for (int i = 0; i < ndata; i++)
            {
                chi2 += Globals.SQR(y[i] - a - b * x[i]);
            }
            if (ndata > 2)
            {
                sigdat = Math.Sqrt(chi2 / (ndata - 2));
            }
            siga *= sigdat;
            sigb *= sigdat;
        }
    }
}
 

2 代码格式

using System;namespace Legalsoft.Truffer
{/// <summary>/// Fitting Data to a Straight Line/// </summary>public class Fitab{private int ndata { get; set; }private double a { get; set; }public double b { get; set; }private double siga { get; set; }private double sigb { get; set; }private double chi2 { get; set; }private double q { get; set; }private double sigdat { get; set; }private double[] x { get; set; }private double[] y { get; set; }private double[] sig { get; set; }public Fitab(double[] xx, double[] yy, double[] ssig){this.ndata = xx.Length;this.x = xx;this.y = yy;this.sig = ssig;this.chi2 = 0.0;this.q = 1.0;this.sigdat = 0.0;Gamma gam = new Gamma();double ss = 0.0;double sx = 0.0;double sy = 0.0;double st2 = 0.0;b = 0.0;for (int i = 0; i < ndata; i++){double wt = 1.0 / Globals.SQR(sig[i]);ss += wt;sx += x[i] * wt;sy += y[i] * wt;}double sxoss = sx / ss;for (int i = 0; i < ndata; i++){double t = (x[i] - sxoss) / sig[i];st2 += t * t;b += t * y[i] / sig[i];}b /= st2;a = (sy - sx * b) / ss;siga = Math.Sqrt((1.0 + sx * sx / (ss * st2)) / ss);sigb = Math.Sqrt(1.0 / st2);for (int i = 0; i < ndata; i++){chi2 += Globals.SQR((y[i] - a - b * x[i]) / sig[i]);}if (ndata > 2){q = gam.gammq(0.5 * (ndata - 2), 0.5 * chi2);}}public Fitab(double[] xx, double[] yy){this.ndata = xx.Length;this.x = xx;this.y = yy;this.sig = xx;this.chi2 = 0.0;this.q = 1.0;this.sigdat = 0.0;double sx = 0.0;double sy = 0.0;double st2 = 0.0;b = 0.0;for (int i = 0; i < ndata; i++){sx += x[i];sy += y[i];}double ss = ndata;double sxoss = sx / ss;for (int i = 0; i < ndata; i++){double t = x[i] - sxoss;st2 += t * t;b += t * y[i];}b /= st2;a = (sy - sx * b) / ss;siga = Math.Sqrt((1.0 + sx * sx / (ss * st2)) / ss);sigb = Math.Sqrt(1.0 / st2);for (int i = 0; i < ndata; i++){chi2 += Globals.SQR(y[i] - a - b * x[i]);}if (ndata > 2){sigdat = Math.Sqrt(chi2 / (ndata - 2));}siga *= sigdat;sigb *= sigdat;}}
}

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

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

相关文章

CTF之信息收集

什么是信息收集 信息收集是指通过各种方式获取所需要的信息&#xff0c;以便我们在后续的渗透过程更好的进行。最简单的比如说目标站点的IP、中间件、脚本语言、端口、邮箱等等。我觉得信息收集在我们参透测试的过程当中&#xff0c;是最重要的一环&#xff0c;这一环节没做好…

Java-Exception

目录 异常概念ErrorException 体系图常见运行时异常NullPointerExceptionArithmeticExceptionArrayIndexOutOfBoundExceptionClassCastExceptionNumberFormatException 常见的编译异常异常处理机制自定义异常throw和throws对比 异常是Java编程中的常见问题&#xff0c;了解如何…

nsoftware Cloud SMS 2022 .NET 22.0.8 Crack

nsoftware Cloud SMS 能够通过各种流行的消息服务&#xff08;包括 Twilio、Sinch、SMSGlobal、SMS.to、Vonage、Clickatell 等&#xff09;发送、接收和安排 SMS 消息&#xff0c;从而提供了一种简化且高效的消息服务方法。 Cloud SMS 提供单个 SMS 组件&#xff0c;允许通过…

JDBC-day02(使用PreparedStatement实现CRUD操作)

所需的数据库数据要导入到自己的数据库库中 三&#xff1a;使用PreparedStatement实现CRUD操作 数据库连接被用于向数据库服务器发送命令和 SQL 语句&#xff0c;并接受数据库服务器返回的结果。其实一个数据库连接就是一个Socket连接。CRUD操作&#xff1a;根据返回值的有无…

【Go】go-es统计接口被刷数和ip访问来源

go-es模块统计日志中接口被刷数和ip访问来源 以下是使用go的web框架gin作为后端&#xff0c;展示的统计页面 背景 上面的数据来自elk日志统计。因为elk通过kibana进行展示&#xff0c;但是kibana有一定学习成本且不太能满足定制化的需求&#xff0c;所以考虑用编程的方式…

Eclipse iceoryx™ - 真正的零拷贝进程间通信

1 序言 通过一个快速的背景教程&#xff0c;介绍项目范围和安装所需的所有内容以及第一个运行示例。 首先&#xff1a;什么是冰羚&#xff1f; iceoryx是一个用于各种操作系统的进程间通信&#xff08;IPC&#xff09;中间件&#xff08;目前我们支持Linux、macOS、QNX、FreeBS…

C语言中文网 - Shell脚本 - 1

Shell 既是一个连接用户和 Linux 内核的程序&#xff0c;又是一门管理 Linux 系统的脚本语言。Shell 脚本虽然没有 C、Python、Java、C# 等编程语言强大&#xff0c;但也支持了基本的编程元素。 第1章 Shell基础&#xff08;开胃菜&#xff09; 欢迎来到 Linux Shell 的世界&am…

asp.net闲置物品购物网系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net闲置物品购物网系统是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语 言开发 asp.net 闲置物品购物网 二、功…

JavaScript中的map()和forEach()方法有什么区别?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

DevEco Studio下载/安装与配置开发环境

一、下载与安装DevEco Studio 在HarmonyOS应用开发学习之前&#xff0c;需要进行一些准备工作&#xff0c;首先需要完成开发工具DevEco Studio的下载与安装以及环境配置。 1.进入DevEco Studio下载官网 单击“立即下载”进入下载页面。 DevEco Studio提供了Windows版本和Mac…

学信息系统项目管理师第4版系列20_风险管理

1. 针对不确定性的应对方法 1.1. 【高23上选58】 1.2. 收集信息 1.2.1. 可以对信息收集和分析工作进行规划&#xff0c;以便发现更多信息&#xff08;如进行研究、争取专家参与或进行市场分析&#xff09;来减少不确定性 1.3. 为多种结果做好准备 1.3.1. 制定可用的解决方…

高级 I/O【Linux】

阅读前导&#xff1a; “高级 I/O”处于知识树中网络和操作系统的最后&#xff0c;因此本文默认读者有计算机网络和操作系统的基础。 1. 什么是 I/O 下面以“流”&#xff08;stream&#xff09;和冯诺依曼体系架构的视角来简单回顾一下什么是 I/O&#xff1a; I/O可以理解…

2023全新小红书图集和视频解析去水印网站源码

2023全新小红书图集和视频解析去水印网站源码 小红书视频图集解析网站源码&#xff0c;在红书看到好看的图片以及好看的头像&#xff0c;但是直接下载又有水印就非常难受&#xff0c;这个可以一键解析去除水印&#xff0c;支持统计解析次数&#xff0c;本地接口。 源码下载&a…

【C++】指针与引用(学习笔记)

一、左值与右值 左值&#xff1a;编译器为其单独分配了一块存储空间&#xff0c;可以取其地址的&#xff0c;可以放在赋值运算符左边 右值&#xff1a;数据本身。不能取到其自身地址&#xff0c;只能赋值运算右边 左值最常见的情况如西数和数据成员的名字 右值是没有标识符、…

k8s 集群安装(vagrant + virtualbox + CentOS8)

主机环境&#xff1a;windows 11 k8s版本&#xff1a;v1.25 dashboard版本&#xff1a;v2.7.0 calico版本&#xff1a; v3.26.1 CentOS8版本&#xff1a;4.18.0-348.7.1.el8_5.x86_64 用到的脚本&#xff1a; https://gitcode.net/sundongsdu/k8s_cluster 1. Vagrant创建…

2023去水印小程序源码修复版-前端后端内置接口+第三方接口

去水印小程序源码&#xff0c;前端后端&#xff0c;内置接口第三方接口&#xff0c;修复数据库账号密码错误问题&#xff0c;内置接口支持替换第三方接口&#xff0c;看了一下文件挺全的&#xff0c;可以添加流量主代码&#xff0c;搭建需要准备一台服务器&#xff0c;备案域名…

论文阅读--Energy efficiency in heterogeneous wireless access networks

异构无线接入网络的能源效率 论文信息&#xff1a;Navaratnarajah S, Saeed A, Dianati M, et al. Energy efficiency in heterogeneous wireless access networks[J]. IEEE wireless communications, 2013, 20(5): 37-43. I. ABSTRACT && INTRODUCTION 本文提出了无…

【虚拟机栈】

文章目录 1. 虚拟机栈概述2. 局部变量表(Local Variables)3. 操作数栈4. 动态链接4.1 方法的调用&#xff1a;解析与分配 1. 虚拟机栈概述 每个线程在创建时都会创建一个虚拟机栈&#xff0c;其内部保存一个个的栈帧&#xff08;Stack Frame&#xff09;&#xff0c;对应着一次…

互联网Java工程师面试题·Redis 篇·第二弹

目录 16、Redis 集群方案什么情况下会导致整个集群不可用&#xff1f; 17、Redis 支持的 Java 客户端都有哪些&#xff1f;官方推荐用哪个&#xff1f; 18、Jedis 与 Redisson 对比有什么优缺点&#xff1f; 19、Redis 如何设置密码及验证密码&#xff1f; 20、说说 Redis…

CSS学习笔记

目录 1.CSS简介1.什么是CSS2.为什么使用CSS3.CSS作用 2.基本用法1.CSS语法2.CSS应用方式1. 内部样式2.行内样式3.外部样式1.使用 link标签 链接外部样式文件2.import 指令 导入外部样式文件3.使用举例 3.选择器1.基础选择器1.标签选择器2.类选择器3.ID选择器4.使用举例 2.复杂选…