当前位置: 首页 > news >正文

C#,数值计算——Multinormaldev的计算方法与源程序

 

1 文本格式

using System;

namespace Legalsoft.Truffer
{
    public class Multinormaldev : Ran
    {
        public Cholesky chol { get; set; } = null;

        private int mm { get; set; }
        private double[] mean { get; set; }
        private double[,] xvar { get; set; }
        private double[] spt { get; set; }
        private double[] pt { get; set; }

        public Multinormaldev(ulong j, double[] mmean, double[,] vvar) : base(j)
        {
            this.mm = mmean.Length;
            this.mean = Globals.CopyFrom(mmean);
            this.xvar = Globals.CopyFrom(vvar);
            this.chol = new Cholesky(xvar);
            this.spt = new double[mm];
            this.pt = new double[mm];

            if (xvar.GetLength(1) != mm || xvar.GetLength(0) != mm)
            {
                throw new Exception("bad sizes");
            }
        }

        public double[] dev()
        {
            double u;
            double v;
            double q;
            for (int i = 0; i < mm; i++)
            {
                do
                {
                    u = doub();
                    v = 1.7156 * (doub() - 0.5);
                    double x = u - 0.449871;
                    double y = Math.Abs(v) + 0.386595;
                    q = Globals.SQR(x) + y * (0.19600 * y - 0.25472 * x);
                } while (q > 0.27597 && (q > 0.27846 || Globals.SQR(v) > -4.0 * Math.Log(u) * Globals.SQR(u)));
                spt[i] = v / u;
            }
            chol.elmult(spt, pt);
            for (int i = 0; i < mm; i++)
            {
                pt[i] += mean[i];
            }
            return pt;
        }

    }
}
 

2 代码格式

using System;namespace Legalsoft.Truffer
{public class Multinormaldev : Ran{public Cholesky chol { get; set; } = null;private int mm { get; set; }private double[] mean { get; set; }private double[,] xvar { get; set; }private double[] spt { get; set; }private double[] pt { get; set; }public Multinormaldev(ulong j, double[] mmean, double[,] vvar) : base(j){this.mm = mmean.Length;this.mean = Globals.CopyFrom(mmean);this.xvar = Globals.CopyFrom(vvar);this.chol = new Cholesky(xvar);this.spt = new double[mm];this.pt = new double[mm];if (xvar.GetLength(1) != mm || xvar.GetLength(0) != mm){throw new Exception("bad sizes");}}public double[] dev(){double u;double v;double q;for (int i = 0; i < mm; i++){do{u = doub();v = 1.7156 * (doub() - 0.5);double x = u - 0.449871;double y = Math.Abs(v) + 0.386595;q = Globals.SQR(x) + y * (0.19600 * y - 0.25472 * x);} while (q > 0.27597 && (q > 0.27846 || Globals.SQR(v) > -4.0 * Math.Log(u) * Globals.SQR(u)));spt[i] = v / u;}chol.elmult(spt, pt);for (int i = 0; i < mm; i++){pt[i] += mean[i];}return pt;}}
}

http://www.lryc.cn/news/173281.html

相关文章:

  • 软件项目测试用例评审
  • 图像处理与计算机视觉--第二章-成像与图像表示-8问
  • python中使用多线程批量导入包
  • 齿轮减速机设备类网站pbootcms模板(PC端+手机端自适应)
  • MySQL报错:this is incompatible with sql_mode=only_full_group_by 解决方法
  • impala常用时间函数,date->string->timestamp互转
  • 无源供电无线测温系统的应用意义
  • 使用 PyTorch 的计算机视觉简介 (1/6)
  • 用PHP实现极验验证功能
  • 【数据结构初阶】三、 线性表里的链表(无头+单向+非循环链表)
  • Mybatis 映射器与XML配置职责分离
  • 微服务引擎
  • 前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS基础(三)
  • 搭建部署属于自己的基于gpt3.5的大语言模型(基于flask+html+css+js+mysql实现)
  • AI创作专家,免费的AI创作专家工具
  • Nginx之gzip模块解读
  • 微软在Windows 11推出Copilot,将DALL-E 3集成在Bing!
  • SLAM从入门到精通(消息传递)
  • 思科路由器:NAT的基础配置
  • 动态代理。
  • Learn Prompt-GPT-4:能力
  • iOS——ViewController的生命周期
  • SkyWalking内置参数与方法
  • 【C++面向对象侯捷】12.虚函数与多态 | 13.委托相关设计【设计模式 经典做法,类与类之间关联起来,太妙了,不断的想,不断的写代码】
  • 基于若依ruoyi-nbcio增加flowable流程待办消息的提醒,并提供右上角的红字数字提醒(五)
  • hive数据初始化
  • React+Node——next.js 构建前后端项目
  • CRM系统主要包括哪些功能?
  • Nginx location 精准匹配URL = /
  • 使用JAXB将Java对象转xml