泛函分析(1)-泛函简介与实践
泛函是函数的函数,可以将一个函数映射到另一个函数。以下是一个简单的C++程序计算泛函
#include <iostream>
#include <cmath>
#include <functional>using namespace std;// 定义泛函的类型
typedef std::function<double(double)> Functional;// 定义积分的类型
typedef std::function<double(double, double, Functional)> Integral;// 定义求导的类型
typedef std::function<double(double, Functional)> Derivative;// 中心差商法求导
double central_difference(double x, Functional f) {double h = 0.0001;return (f(x + h) - f(x - h)) / (2 * h);
}// 梯形法进行积分
double trapezoidal_integral(double a, double b, Functional f) {int n = 1000;double h = (b - a) / n;double sum = 0.0;for (int i = 1; i < n; i++) {double x = a + i * h;sum += f(x);}return h * (0.5 * (f(a) + f(b)) + sum);
}// 计算泛函F(f(x)) = ∫[a,b] g(x, f(x)) dx 的值
double functional(double a, double b, Functional f, std::function<double(double, double)> g) {return trapezoidal_integral(a, b, [&](double x){return g(x, f(x));});
}int main() {// 定义函数f(x) = sin(x)Functional f = [](double x){return std::sin(x);};// 定义函数g(x, y) = x^2 + y^2std::function<double(double, double)> g = [](double x, double y){return x * x + y * y;};// 计算泛函F(f(x)) = ∫[0,pi] (x^2 + sin^2(x)) dx 的值double result = functional(0, M_PI, f, g);std::cout << "The value of the functional is " << result << std::endl;return 0;
}
上述代码中,定义了泛函的类型Functional
,积分的类型Integral
,以及求导的类型Derivative
。使用梯形法进行积分,使用中心差商法进行求导。在functional
函数中,将函数f作为参数传递给积分函数,将函数g作为参数传递给积分函数,计算泛函的值。
泛函分析(1)-泛函简介与实践相关推荐
- 分布式缓存系统Memcached简介与实践(.NET memcached client library)
原文:分布式缓存系统Memcached简介与实践(.NET memcached client library) 缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加 ...
- 领域驱动DDD原理简介与实践
整洁架构图 依赖方向朝内,每个环可以依赖它本身这一层及其所有内部的层,但不能依赖它外部的层 Entities 用来放实体.值对象.聚合等领域模型的 业务逻辑都应该尽量内聚在这一层 这一层是最纯净的,不 ...
- Go: panic / recover 简介与实践
文章目录 简介 1.特性 2.panic触发流程 3.recover使用要点 4.使用场景 一.实践 1.跨线程失效 2.不起作用的recover 3.嵌套使用panic 4.注意事项 小结 简介 g ...
- Go:基于BDD的测试框架 Ginkgo 简介及实践
文章目录 简介 1. TDD 2. BDD 3. Ginkgo 一.Ginkgo实践 1. 安装Ginkgo 2. 使用 二.高级用法 1. 标志 2. 并发 3. goroutine 4. Desc ...
- SignalR简介及实践指南
SigalR简介 ASP.NET Core SignalR 是一个开放源代码库,可用于简化向应用添加实时 Web 功能. 实时 Web 功能使服务器端代码能够将内容推送到客户端. 适合 SignalR ...
- Doc2Bow简介与实践Demo
Doc2Bow是Gensim中封装的一个方法,主要用于实现Bow模型,下面主要介绍下Bow模型. 1.BoW模型原理 Bag-of-words model (BoW model) 最早出现在自然语言处 ...
- Python静态类型解析工具简介和实践
简介: Python是一门强类型的动态类型语言,开发者可以给对象动态指定类型,但类型不匹配的操作是不被允许的.动态类型帮助开发者写代码轻松愉快,然而,俗话说:动态一时爽,重构火葬场.动态类型也带来了许 ...
- 变分法理解1——泛函简介
变分法是处理泛函的数学领域,和处理函数的传统微积分相对. 对泛函求极值的问题称为变分问题,使泛函取极值的函数称为变分问题的解,也称为极值函数. 传统的微积分中的一个常见的问题是找到一个xxx 值使得 ...
- Thanos 简介和实践
女主宣言 随着 Openstack 集群规模越来越大,监控数据呈现指数级增长,给后期计算.存储资源扩容带来了极大的考验.如何稳定.永久存储监控数据.快速查询热数据与历史数据一直是大规模云计算集群存在的 ...
最新文章
- 洛谷.4234.最小差值生成树(LCT)
- 开源:分享10 个让你笑的合不拢嘴的 GitHub 项目!
- 160 - 2 Afkayas.1
- 利用Kinect将投影变得可直接用手操控
- 地贝扫地机器人维修_扫地机器人常见故障及维修方法
- Oracle备份还原
- 特斯拉CEO马斯克:可能明年3月左右在中国推出Model S Plaid
- 044、JVM实战总结:高级工程师的硬核技能:JVM的Young GC日志应该怎么看?
- 一款脑洞大开的表格可视化神器
- 2020 【第十一届蓝桥杯省赛】 C/C++ B组 (第二场)
- Python基础语法测验习题(有答案版)
- html特殊符号的表示
- HDU-1212-Big Number【大数】
- android usb 键盘,android4.4 修改USB外接法语键盘
- 26两种主界面的设计
- python辅助u盘数据恢复
- 发个谷歌,百度网盘,谷歌学术可用的网站
- 高大上的调音台,一秒变成调音师!
- python实现对小说的文本分析(人物关系图,人物词云等)
- Hinton 最新研究:神经网络的未来是前向-前向算法
热门文章
- Concept-第19章翻译
- 【HDU 1873 --- 看病要排队】优先队列
- GDB使用手册(五)、在GDB下运行程序
- html loader使用方法,webpack中loader的使用方法,以及几个常用loader的应用小实例
- QProcess的使用流程(从启动到关闭)
- win10实时监控用java_利用btrace工具监控在线运行java程序
- c#中导入excel至sql server时出现“外部表不是预期格式”
- socket编程:socket()函数详解
- finereport—累计计算
- [论文解读] DeepRoad: GAN-Based Metamorphic Testing and Input Validation Framework for Autonomous Driving