C#,数值计算——插值和外推,谢别德(Shep)插值方法的计算方法与源程序

news2024/10/7 18:23:30

1 文本格式

using System;

namespace Legalsoft.Truffer
{
    /// <summary>
    /// 谢别德插值方法
    /// Object for Shepard interpolation using n points in dim dimensions. Call
    /// constructor once, then interp as many times as desired.
    /// </summary>
    public class Shep_interp
    {
        private int dim { get; set; }
        private int n { get; set; }
        private double[,] pts { get; set; }
        private double[] vals { get; set; }
        private double pneg { get; set; }

        /// <summary>
        /// The n dim matrix ptss inputs the data points, the vector valss the function
        /// values.Set p to the desired exponent.The default value is typical.
        /// </summary>
        /// <param name="ptss"></param>
        /// <param name="valss"></param>
        /// <param name="p"></param>
        public Shep_interp(double[,] ptss, double[] valss, double p = 2.0)
        {
            this.dim = ptss.GetLength(1);
            this.n = ptss.GetLength(0);
            this.pts = ptss;
            this.vals = valss;
            this.pneg = -p;
        }

        /// <summary>
        /// Return the interpolated function value at a dim-dimensional point pt.
        /// </summary>
        /// <param name="pt"></param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public double interp(double[] pt)
        {
            double r;
            double w;
            double sum = 0.0;
            double sumw = 0.0;
            if (pt.Length != dim)
            {
                throw new Exception("RBF_interp bad pt size");
            }
            for (int i = 0; i < n; i++)
            {
                //if ((r = rad(pt.ToArray(), pts.GetRow(i).ToArray())) == 0.0)
                r = Globals.dist(pt, Globals.CopyFrom(i, pts));
                if (Math.Abs(r) <= float.Epsilon)
                {
                    return vals[i];
                }
                sum += (w = Math.Pow(r, pneg));
                sumw += w * vals[i];
            }
            return sumw / sum;
        }
        /*
        public double rad(double[] p1, double[] p2)
        {
            double sum = 0.0;
            for (int i = 0; i < dim; i++)
            {
                sum += Globals.SQR(p1[i] - p2[i]);
            }
            return Math.Sqrt(sum);
        }
        */
    }
}
 

2 代码格式

using System;

namespace Legalsoft.Truffer
{
    /// <summary>
    /// 谢别德插值方法
    /// Object for Shepard interpolation using n points in dim dimensions. Call
    /// constructor once, then interp as many times as desired.
    /// </summary>
    public class Shep_interp
    {
        private int dim { get; set; }
        private int n { get; set; }
        private double[,] pts { get; set; }
        private double[] vals { get; set; }
        private double pneg { get; set; }

        /// <summary>
        /// The n dim matrix ptss inputs the data points, the vector valss the function
        /// values.Set p to the desired exponent.The default value is typical.
        /// </summary>
        /// <param name="ptss"></param>
        /// <param name="valss"></param>
        /// <param name="p"></param>
        public Shep_interp(double[,] ptss, double[] valss, double p = 2.0)
        {
            this.dim = ptss.GetLength(1);
            this.n = ptss.GetLength(0);
            this.pts = ptss;
            this.vals = valss;
            this.pneg = -p;
        }

        /// <summary>
        /// Return the interpolated function value at a dim-dimensional point pt.
        /// </summary>
        /// <param name="pt"></param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public double interp(double[] pt)
        {
            double r;
            double w;
            double sum = 0.0;
            double sumw = 0.0;
            if (pt.Length != dim)
            {
                throw new Exception("RBF_interp bad pt size");
            }
            for (int i = 0; i < n; i++)
            {
                //if ((r = rad(pt.ToArray(), pts.GetRow(i).ToArray())) == 0.0)
                r = Globals.dist(pt, Globals.CopyFrom(i, pts));
                if (Math.Abs(r) <= float.Epsilon)
                {
                    return vals[i];
                }
                sum += (w = Math.Pow(r, pneg));
                sumw += w * vals[i];
            }
            return sumw / sum;
        }
        /*
        public double rad(double[] p1, double[] p2)
        {
            double sum = 0.0;
            for (int i = 0; i < dim; i++)
            {
                sum += Globals.SQR(p1[i] - p2[i]);
            }
            return Math.Sqrt(sum);
        }
        */
    }
}

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

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

相关文章

nodejs微信小程序+python+PHP金融产品销售系统的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

NSDT场景编辑器实现真数字孪生

在线工具推荐&#xff1a; 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务 1、什么是数字孪生&#xff1f; 数字孪生是资产或系统的实时虚拟模型&#xff0c;它使用来自连…

15、 深度学习之正向传播和反向传播

上一节介绍了训练和推理的概念,这一节接着训练和推理的概念讲一下,神经网络的正向传播和反向传播。 其实单看正向传播和反向传播这两个概念,很好理解。 正向传播(Forward Propagation)是指从输入层到输出层的数据流动过程,而反向传播(Backpropagation)是指数据从输出…

Unity | 渡鸦避难所-0 | 创建 URP 项目并导入商店资源

0 前言 知识点零零碎碎&#xff0c;没有目标&#xff0c;所以&#xff0c;一起做游戏吧 各位老师如果有什么指点、批评、漫骂、想法、建议、疑惑等&#xff0c;欢迎留言&#xff0c;一起学习 1 创建 3D&#xff08;URP&#xff09;项目 在 Unity Hub 中点击新项目&#xff…

L1-006:连续因子

题目描述 一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3567&#xff0c;其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N&#xff0c;要求编写程序求出最长连续因子的个数&#xff0c;并输出最小的连续因子序列。 输入格式&#xff1a; 输入在一行…

腾讯云避坑——无法远程root登录

因为各种原因&#xff0c;最近需要使用腾讯云来代替阿里云。 但在ubuntu18/20的服务器中&#xff0c;我使用另一个电脑试图用scp命令来拷贝服务器中的一些文件&#xff0c;命令为: scp root服务器ip:文件目录 本地目录但一直显示密码错误。 原因是腾讯云ubuntu系统在创建时并不…

Node-red入门设计-时序信号输出

Note-red入门设计 - 时序信号输出 Note-red环境 打开Note-red 通过运行栏输入powershell&#xff0c;使用管理员权限运行后&#xff0c;执行如下命令&#xff1a; note-red运行note-red的指令&#xff0c;将输入如下内容&#xff1a; 此时&#xff0c;在浏览器界面录入相应…

PgSQL技术内幕 • statement_timeout做的那些事

PgSQL技术内幕 • statement_timeout做的那些事 statement_timeout是Postgres种的一个配置参数&#xff0c;用于指定SQL语句执行的超时时间&#xff0c;当超时时就取消该SQL的执行&#xff0c;并返回错误信息。这个参数通常用于控制运行时间较长的查询&#xff0c;避免影响数据…

利用 NRF24L01 无线收发模块实现传感器数据的无线传输

NRF24L01 是一款常用的无线收发模块&#xff0c;适用于远程控制和数据传输应用。本文将介绍如何利用 NRF24L01 模块实现传感器数据的无线传输&#xff0c;包括硬件的连接和配置&#xff0c;以及相应的代码示例。 一、引言 NRF24L01 是一款基于 2.4GHz 射频通信的低功耗无线收发…

第九节HarmonyOS 常用基础组件-Text

一、组件介绍 组件&#xff08;Component&#xff09;是界面搭建与显示的最小单位&#xff0c;HarmonyOS ArkUI声名式为开发者提供了丰富多样的UI组件&#xff0c;我们可以使用这些组件轻松的编写出更加丰富、漂亮的界面。 组件根据功能可以分为以下五大类&#xff1a;基础组件…

API成批分配漏洞介绍与解决方案

一、API成批分配漏洞介绍 批量分配&#xff1a;在API的业务对象或数据结构中&#xff0c;通常存在多个属性&#xff0c;攻击者通过篡改属性值的方式&#xff0c;达到攻击目的。比如通过设置user.is_admin和user.is_manager的值提升用户权限等级&#xff1b;假设某API的默认接口…

Mapper文件夹在resource目录下但是网页报错找不到productMapper.xml文件的解决

报错如下&#xff1a; 我的Mapper文件夹在resourse目录下但是网页报错找不到productMapper.xml。 结构如下&#xff1a;代码如下&#xff1a;<mappers><mapper resource"com/dhu/mapper/productMapper.xml" /> </mappers> 这段代码是在mybatis-co…

html实现各种好看的鼠标滑过图片特效模板

文章目录 1.鼠标悬浮效果1.1 渐动效果1.2 渐变效果1.3 边框效果1.4 线行效果1.5 图标效果1.6 块状效果1.7 边线效果1.8 放大效果1.9 渐出效果1.10 痕迹效果1.11 交叉效果1.12 着重效果1.13 详展效果1.14 能动效果1.15 明细效果 2.主要源码2.1 源代码 源码下载 作者&#xff1a;…

windows系统如何配置yarn环境变量

启动前端项目&#xff0c;突然遇到报错&#xff1a; 原因在于没有安装yarn&#xff0c;或没有配置环境变量。 全局安装 yarn 可在vsCode中输入&#xff0c;也可在命令行输入&#xff08;winR&#xff0c;输入cmd&#xff09; npm install -g yarn添加环境变量 找到yarn的安…

【算法】单调栈题单——字典序最小⭐(一种类型的模板题)

文章目录 题目列表316. 去除重复字母⭐⭐⭐⭐⭐&#xff08;类型题模板&#xff1a;单调栈&#xff0c;字典序最小&#xff09;221021天池-03. 整理书架&#xff08;保留数量为 limit 的字典序最小&#xff09;402. 移掉 K 位数字&#xff08;最多删除 k 次 前导零的处理&…

从0开始学习JavaScript--JavaScript 单元测试

JavaScript单元测试是保障代码质量和可维护性的关键步骤之一。通过编写和运行单元测试&#xff0c;开发者可以确保代码在不断迭代的过程中依然具有正确的行为。本文将深入探讨JavaScript单元测试的核心概念、工具使用和最佳实践&#xff0c;并通过丰富的示例代码演示其实际应用…

mac 系统 vmware 安装centos8

选择镜像 安装系统 依次设置有告警的项目 设置用户名密码 设置root密码 重启系统 重启成功进入下面界面 勾选&#xff0c;点击done 点击箭头所指按钮 输入密码登录 安装成功了 设置网络 打开终端 切换root用户 输入下面指令 su root 输入root的密码 安装git

振动温度一体式传感器的工作原理及其在设备状态监测中的作用

振动温度一体式传感器是一种先进的监测设备&#xff0c;可以同时测量和监测目标物体的振动和温度信息。它结合了振动传感技术和温度传感技术&#xff0c;为工业领域提供了全面而高效的设备状态监测解决方案。在振动温度一体式传感器中&#xff0c;有线和无线两种类型分别在设备…

[github全教程]github版本控制最全教学------- 大厂找工作面试必备!

作者&#xff1a;20岁爱吃必胜客&#xff08;坤制作人&#xff09;&#xff0c;近十年开发经验, 跨域学习者&#xff0c;目前于新西兰奥克兰大学攻读IT硕士学位。荣誉&#xff1a;阿里云博客专家认证、腾讯开发者社区优质创作者&#xff0c;在CTF省赛校赛多次取得好成绩。跨领域…

iOS简单理解区分MVC、MVP、MVVM

MVC、MVP、MVVM 前言 这篇文章简单介绍MVC、MVP和MVVM三种架构&#xff0c;并配上一个简单的Swift demo来区分MVC和MVVM两种架构。 MVC 传统MVC 下图是传统结构MVC&#xff0c;可以看到这种结构是紧耦合的&#xff0c;不推荐使用。 苹果的MVC 如下图&#xff0c;这是苹果…