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

C#,数值计算——伽马微分(Gammadev)的计算方法与源程序

1 文本格式

using System;

namespace Legalsoft.Truffer
{
    public class Gammadev : Normaldev
    {
        private double alph { get; set; }
        private double oalph { get; set; }
        private double bet { get; set; }
        private double a1 { get; set; }
        private double a2 { get; set; }

        public Gammadev(double aalph, double bbet, ulong i) : base(0.0, 1.0, i)
        {
            this.alph = aalph;
            this.oalph = aalph;
            this.bet = bbet;
            if (alph <= 0.0)
            {
                throw new Exception("bad alph in Gammadev");
            }
            if (alph < 1.0)
            {
                alph += 1.0;
            }
            a1 = alph - 1.0 / 3.0;
            a2 = 1.0 / Math.Sqrt(9.0 * a1);
        }

        public new double dev()
        {
            double u;
            double v;
            double x;
            do
            {
                do
                {
                    x = base.dev();
                    v = 1.0 + a2 * x;
                } while (v <= 0.0);
                v = v * v * v;
                u = doub();
            } while (u > 1.0 - 0.331 * Globals.SQR(Globals.SQR(x)) && Math.Log(u) > 0.5 * Globals.SQR(x) + a1 * (1.0 - v + Math.Log(v)));
            //if (alph == oalph)
            if (Math.Abs(alph - oalph) <= float.Epsilon)
            {
                return a1 * v / bet;
            }
            else
            {
                do
                {
                    u = doub();
                } while (Math.Abs(u) <= float.Epsilon);//  (u == 0.0);               
                return Math.Pow(u, 1.0 / oalph) * a1 * v / bet;
            }
        }
    }
}

2 代码格式

using System;namespace Legalsoft.Truffer
{public class Gammadev : Normaldev{private double alph { get; set; }private double oalph { get; set; }private double bet { get; set; }private double a1 { get; set; }private double a2 { get; set; }public Gammadev(double aalph, double bbet, ulong i) : base(0.0, 1.0, i){this.alph = aalph;this.oalph = aalph;this.bet = bbet;if (alph <= 0.0){throw new Exception("bad alph in Gammadev");}if (alph < 1.0){alph += 1.0;}a1 = alph - 1.0 / 3.0;a2 = 1.0 / Math.Sqrt(9.0 * a1);}public new double dev(){double u;double v;double x;do{do{x = base.dev();v = 1.0 + a2 * x;} while (v <= 0.0);v = v * v * v;u = doub();} while (u > 1.0 - 0.331 * Globals.SQR(Globals.SQR(x)) && Math.Log(u) > 0.5 * Globals.SQR(x) + a1 * (1.0 - v + Math.Log(v)));//if (alph == oalph)if (Math.Abs(alph - oalph) <= float.Epsilon){return a1 * v / bet;}else{do{u = doub();} while (Math.Abs(u) <= float.Epsilon);//  (u == 0.0);               return Math.Pow(u, 1.0 / oalph) * a1 * v / bet;}}}
}

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

相关文章:

  • 【UE5 智慧城市系列】5-通过鼠标键盘控制摄像机
  • 工作纪实38-ES分页数据问题
  • 设计模式之访问器模式(Visitor)的C++实现
  • Python之OS模块
  • vue 使用canvas 详细教程
  • Git 基本操作【本地仓库与远程仓库的推送、克隆和拉取】
  • FPGA开发
  • js手撕代码
  • typecho反序列化
  • php程序设计的基本原则
  • python execute() 使用%s 拼接sql 避免sql注入攻击 好于.format
  • RPC项目解析(1)
  • 点云从入门到精通技术详解100篇-基于 RGB 图像与点云融合的三维点云分割算法及成像系统
  • JDK8新特性
  • X86_64函数调用汇编程序分(2)
  • 组件传值之ref(解决父传子动态绑定问题)
  • vscode-server
  • ubuntu 20.04安装开发环境总结_安装python
  • 尚硅谷_宋红康_IntelliJ IDEA 常用快捷键一览表
  • Java设计模式之建造者模式详解(Builder Pattern)
  • TCP的滑动窗口与拥塞控制
  • MySQL更新语句执行过程
  • Matlab图像处理-彩色图像基础
  • MATLAB算法实战应用案例精讲-【数模应用】数据中台
  • el-form动态检验无法生效问题(已解决)
  • 【python】代码学习过程问题总结
  • Qt应用开发(基础篇)——菜单 QMenu
  • MySQL-DDL语句
  • 总结987
  • 【服务器 | 测试】如何在centos 7上面安装jmeter