C#,数值计算——插值和外推,PolCoef的计算方法与源程序

1 文本格式
using System;
namespace Legalsoft.Truffer
{
/// <summary>
/// polynomial coefficients from polynomial values
/// </summary>
public class PolCoef
{
public PolCoef()
{
}
/// <summary>
/// Given arrays x[0..n - 1] and y[0..n - 1] containing a tabulated function yi D f
/// .xi /, this routine returns an array of coefficients cof[0..n - 1],
/// such that yi =sum(cofj* xij)(j=0...n-1).
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="cof"></param>
public static void polcoe(double[] x, double[] y, double[] cof)
{
int n = x.Length;
double[] s = new double[n];
for (int i = 0; i < n; i++)
{
s[i] = cof[i] = 0.0;
}
s[n - 1] = -x[0];
for (int i = 1; i < n; i++)
{
for (int j = n - 1 - i; j < n - 1; j++)
{
s[j] -= x[i] * s[j + 1];
}
s[n - 1] -= x[i];
}
for (int j = 0; j < n; j++)
{
double phi = n;
for (int k = n - 1; k > 0; k--)
{
phi = k * s[k] + x[j] * phi;
}
double ff = y[j] / phi;
double b = 1.0;
for (int k = n - 1; k >= 0; k--)
{
cof[k] += b * ff;
b = s[k] + x[j] * b;
}
}
}
/// <summary>
/// Given arrays xa[0..n - 1] and ya[0..n - 1] containing a tabulated function yai
/// D f.xai /, this routine returns an array of coefficients
/// cof[0..n - 1], such that yai = sum(cofj * xaij)(j = 0...n - 1).
/// </summary>
/// <param name="xa"></param>
/// <param name="ya"></param>
/// <param name="cof"></param>
public static void polcof(double[] xa, double[] ya, double[] cof)
{
int n = xa.Length;
double[] x = new double[n];
double[] y = new double[n];
for (int j = 0; j < n; j++)
{
x[j] = xa[j];
y[j] = ya[j];
}
for (int j = 0; j < n; j++)
{
double[] x_t = new double[n - j];
double[] y_t = new double[n - j];
for (int i = 0; i < n - j; i++)
{
x_t[i] = x[i];
y_t[i] = y[i];
}
Poly_interp interp = new Poly_interp(x, y, n - j);
cof[j] = interp.rawinterp(0, 0.0);
double xmin = 1.0e99;
int k = -1;
for (int i = 0; i < n - j; i++)
{
if (Math.Abs(x[i]) < xmin)
{
xmin = Math.Abs(x[i]);
k = i;
}
if (x[i] != 0.0)
{
y[i] = (y[i] - cof[j]) / x[i];
}
}
for (int i = k + 1; i < n - j; i++)
{
y[i - 1] = y[i];
x[i - 1] = x[i];
}
}
}
}
}
2 代码格式
using System;namespace Legalsoft.Truffer
{/// <summary>/// polynomial coefficients from polynomial values/// </summary>public class PolCoef{public PolCoef(){}/// <summary>/// Given arrays x[0..n - 1] and y[0..n - 1] containing a tabulated function yi D f/// .xi /, this routine returns an array of coefficients cof[0..n - 1],/// such that yi =sum(cofj* xij)(j=0...n-1)./// </summary>/// <param name="x"></param>/// <param name="y"></param>/// <param name="cof"></param>public static void polcoe(double[] x, double[] y, double[] cof){int n = x.Length;double[] s = new double[n];for (int i = 0; i < n; i++){s[i] = cof[i] = 0.0;}s[n - 1] = -x[0];for (int i = 1; i < n; i++){for (int j = n - 1 - i; j < n - 1; j++){s[j] -= x[i] * s[j + 1];}s[n - 1] -= x[i];}for (int j = 0; j < n; j++){double phi = n;for (int k = n - 1; k > 0; k--){phi = k * s[k] + x[j] * phi;}double ff = y[j] / phi;double b = 1.0;for (int k = n - 1; k >= 0; k--){cof[k] += b * ff;b = s[k] + x[j] * b;}}}/// <summary>/// Given arrays xa[0..n - 1] and ya[0..n - 1] containing a tabulated function yai/// D f.xai /, this routine returns an array of coefficients/// cof[0..n - 1], such that yai = sum(cofj * xaij)(j = 0...n - 1)./// </summary>/// <param name="xa"></param>/// <param name="ya"></param>/// <param name="cof"></param>public static void polcof(double[] xa, double[] ya, double[] cof){int n = xa.Length;double[] x = new double[n];double[] y = new double[n];for (int j = 0; j < n; j++){x[j] = xa[j];y[j] = ya[j];}for (int j = 0; j < n; j++){double[] x_t = new double[n - j];double[] y_t = new double[n - j];for (int i = 0; i < n - j; i++){x_t[i] = x[i];y_t[i] = y[i];}Poly_interp interp = new Poly_interp(x, y, n - j);cof[j] = interp.rawinterp(0, 0.0);double xmin = 1.0e99;int k = -1;for (int i = 0; i < n - j; i++){if (Math.Abs(x[i]) < xmin){xmin = Math.Abs(x[i]);k = i;}if (x[i] != 0.0){y[i] = (y[i] - cof[j]) / x[i];}}for (int i = k + 1; i < n - j; i++){y[i - 1] = y[i];x[i - 1] = x[i];}}}}
}
相关文章:
C#,数值计算——插值和外推,PolCoef的计算方法与源程序
1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// polynomial coefficients from polynomial values /// </summary> public class PolCoef { public PolCoef() { } /// <summary>…...
单体进化微服务:拆分、注册、调用、网关、过滤、治理、分布式事务
这里写目录标题 基本介绍生产-消费-网关父依赖生产者服务消费者服务网关服务common服务 感想 基本介绍 Spring Cloud 是一个用于构建分布式系统和微服务架构的开发工具包。它提供了一系列的功能和组件,用于解决微服务架构中的常见问题,如服务注册与发现…...
介绍正则表达式及其用法
正则表达式(Regular Expression),简称为"正则",是一种用于描述、匹配、搜索文本的方式。正则表达式通常由符号和字符组成,可以用于匹配和搜索特定模式的文本。 以下是一些常用的正则表达式元字符及其用法&am…...
SpEL 表达式 是什么
SpEL(Spring Expression Language)是一种强大的表达式语言,用于在运行时查询和操作对象图。它是 Spring 框架的一部分,但也可以独立于 Spring 使用。SpEL 提供了丰富的特性集,包括对象图遍历、方法调用、算术、逻辑和关…...
gbase 8s 按时间点恢复
如果要实现8S按照时间点进行恢复,需要使用onbar进行备份和恢复,而PSM是又是onbar不可或缺的。 之前我鄙视过onpsm的健壮性,最近反复测试,发现比预想的结果好很多。 onpsm的安装手册详见:GBase 8s PSM简单配置 | GBas…...
OceanBase:OBServer节点管理
目录 1.查看节点 2.添加节点 2.1 创建数据目录 2.2.OceanBase 运行时所依赖的部分三方动态库 2.3.安装 OceanBase 数据库的 RPM 包 2.4.启动节点 observer 进程 2.5.向集群中添加节点 3.隔离节点 4.重启节点 4.1 停止服务 4.2 转储 4.3 关闭进程 4.4 启动进程 4.…...
记录一个简单的博客系统该开发过程
文章目录 1.1 设计前端页面1.2 编写数据库相关代码1.3 实现功能的前后端交互 总结 1.1 设计前端页面 首先我们的博客系统要有几个网页界面 博客列表页博客详情页登录页博客编辑页 1.2 编写数据库相关代码 本环节我们需要完成以下几个步骤. 先设计数据库(表设计), 然后编写…...
计算机毕业设计选题推荐-家庭理财微信小程序/安卓APP-项目实战
✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...
html实现计算器源码
文章目录 1.设计来源1.1 主界面1.2 计算效果界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/134532725 html实现计算器源码,计算器源码,简易计…...
处理无线debug问题
无限debug的产生 条件说明 开发者工具是打开状态 js代码中有debugger js有定时处理 setInterval(() > {(function (a) {return (function (a) {return (Function(Function(arguments[0]" a ")()))})(a)})(bugger)(de, 0, 0, (0, 0)); }, 1000); #这里就…...
redis的性能管理
查看内存使用指标 查看内存使用指标 info memory used_memory:1800800 redis中主句占用的内存 used_memory_rss:5783552 redis向操作系统申请的内存 used_memory_peak:1800800使用内存的峰值 系统巡检:硬件巡检,数据库,nginx redis docke…...
es各种报错问题及解决方案20231121
报错一 org.elasticsearch.ElasticsearchStatusException: Elasticsearch exception [typesearch_phase_execution_exception, reasonall shards failed]Suppressed: org.elasticsearch.client.ResponseException: method [POST], host [http://localhost:9200], URI [/wzx-te…...
python数据结构与算法-10_递归
递归 Recursion is a process for solving problems by subdividing a larger problem into smaller cases of the problem itself and then solving the smaller, more trivial parts. 递归是计算机科学里出现非常多的一个概念,有时候用递归解决问题看起来非常简单…...
如何设计鞋材出库入账管理系统
如何设计鞋材出库入账管理系统 系统概述系统需求分析系统设计系统实施与测试系统上线与维护 系统概述 本系统旨在设计一个针对鞋材出库入账管理的数字化解决方案,以提高管理效率、降低运营成本并确保材料账目清晰。系统将结合先进的信息化技术,实现对鞋…...
一个简单的QT应用示例
一个简单的QT应用示例:创建一个窗口程序。 首先,确保已经安装了Qt开发环境。接下来,按照以下步骤创建一个简单的窗口程序: 1. 打开Qt Creator,点击“新建文件或项目”。 2. 选择“应用程序”,然后点击“下…...
南京数字孪生赋能工业制造,加速推进制造业数字化转型
随着南京信息技术的迅猛发展和工业管理的不断演进,传统的工业管理方式已经无法满足企业对高效、智能和可持续发展的需求。针对这一情况,数字孪生技术应运而生,为南京工业管理带来了全新的变革和机遇。以数字孪生为理念,三维可视化…...
Visual Studio Code 从英文界面切换中文
1、先安装中文的插件,直接安装。 2、点击右下角的 change language restart, 让软件重启即可以完成了。...
邦芒支招:利用自荐电话求职的七大技巧
如何利用自荐电话向招聘官推荐自己,现在人们在求职过程中都会自己争取面试机会,其中自荐电话是比较常见的一种方式,但是想要向面试官成功推荐自己也是不容易的,下面分享如何利用自荐电话向招聘官推荐自己。 1、以对方为…...
埃尔米特插值(hermite 插值) C++
埃尔米特插值 原理 #pragma once #include <vector> #include <functional> /*埃尔米特插值*/ struct InterpolationPoint {double x; // 插值点的横坐标double y; // 插值点的纵坐标double derivative; // 插值点的导数值// 默认构造函数InterpolationPoint() : x…...
mysql优化之explain 以及 索引优化
Mysql安装文档参考:https://blog.csdn.net/yougoule/article/details/56680952 Explain工具介绍 使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈 在 select 语句之前增加 explain 关键字,MySQL 会在查询上设…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
