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

使用 LSSVM 的 Matlab 演示求解反常微分方程问题(Matlab代码实现)

       目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码


💥1 概述

LSSVM的特性

  1) 同样是对原始对偶问题进行求解,但是通过求解一个线性方程组(优化目标中的线性约束导致的)来代替SVM中的QP问题(简化求解过程),对于高维输入空间中的分类以及回归任务同样适用;

  2) 实质上是求解线性矩阵方程的过程,与高斯过程(Gaussian processes),正则化网络(regularization networks)和费雪判别分析(Fisher discriminant analysis)的核版本相结合;

  3) 使用了稀疏近似(用来克服使用该算法时的弊端)与稳健回归(稳健统计);

  4) 使用了贝叶斯推断(Bayesian inference);

  5) 可以拓展到非监督学习中:核主成分分析(kernel PCA)或密度聚类;

  6) 可以拓展到递归神经网络中。

📚2 运行结果

主函数部分代码:

% dot(x1)  = a * (x_2 -x_1)

% dot(x_2) = x_1 * (b- x_3) - x_2

% dot(x_3) = x_1 * x_2 -c* x_3

% 0 <=  t  < = t_f

% Initial Condition

% x_1(0) = -9.42, x_2(0)= -9.34, x_3(0)=28.3

% Theta=[a, b, c] = [10, 28, 8/3]

%% ============================================================================

clear all; close all; clc

t0=0;

tf=10;

sampling_time=0.05;

t=(t0:sampling_time:tf)';

initial=[-9.42 -9.34 28.3]; % initial values of the ODE used for generating simulated data

ExactTheta=[10; 28 ; 8/3];  % The exact parameters of the lorenz system used for generating simulated data

cprintf( [1 0.1 0],'**** Excat parameters of the Lorenz system ***** \n\n');

fprintf('True theta_1= %f \n', ExactTheta(1));

fprintf('True theta_2= %f \n', ExactTheta(2));

fprintf('True theta_3= %f \n\n', ExactTheta(3));

fprintf( '************************************* \n\n');

%%  ========= Generating the simulation data ======================

options = odeset('RelTol',1e-5,'AbsTol',[1e-5 1e-5 1e-5]);

sol = ode45(@ridg,[t0 tf],initial,options,ExactTheta);

Y=deval(sol,t);

Y=Y';

noise_level=0.01; % 0.03, 0.05, 0.07, 0.1

noise=noise_level*randn(size(t,1),1);

y1=Y(:,1)+noise;

y2=Y(:,2)+noise;

y3=Y(:,3)+noise;

%% Estimating the parameters of the ODE system:

num_realization =3;

K_fold=3;

num_grid_gam=10;

num_grid_sig=10;

gamma_range = logspace(0,6,num_grid_gam);

sigma_range = logspace(-3,1,num_grid_sig);

ER1=[];

ER2=[];

ER3=[];

Par1=zeros(num_realization,1);

Par2=zeros(num_realization,1);

Par3=zeros(num_realization,1);

BB1=zeros(num_grid_gam,num_grid_sig);

BB2=zeros(num_grid_gam,num_grid_sig);

BB3=zeros(num_grid_gam,num_grid_sig);

for itr=1:num_realization

    

    

    cprintf( [1 0.1 0],'**** iteration =%d\n',itr);

    n=size(t,1);

    ind=crossvalind('Kfold', n, K_fold);

    

    for gamma_idx=1:size(gamma_range,2)

        gamma = gamma_range(gamma_idx);

        

        for sig_idx=1:size(sigma_range,2)

            sig = sigma_range(sig_idx);

            

            test_errors_1=zeros(K_fold,1);

            test_errors_2=zeros(K_fold,1);

            test_errors_3=zeros(K_fold,1);

            

            

            for i=1:K_fold

                Xte=t(ind==i,1);

                Yte_1=y1(ind==i,1);

                Yte_2=y2(ind==i,1);

                Yte_3=y3(ind==i,1);

                Xtr=t(ind~=i,1);

                Ytr_1=y1(ind~=i,1);

                Ytr_2=y2(ind~=i,1);

                Ytr_3=y3(ind~=i,1);

                               

                K=KernelMatrix(Xtr,'RBF_kernel', sig);

                m=size(K,1);

                A= [K + (1/gamma) * eye(m), ones(m,1);...

                    ones(m,1)' ,0];

                B1= [Ytr_1;0];

                B2= [Ytr_2;0];

                B3= [Ytr_3;0];

                result1=A\B1;

                result2=A\B2;

                result3=A\B3;

                alpha1=result1(1:m);

                b1=result1(end);

                alpha2=result2(1:m);

                b2=result2(end);

                alpha3=result3(1:m);

                b3=result3(end);

                yhattr1 = K * alpha1 + b1;

                yhattr2 = K * alpha2 + b2;

                yhattr3 = K * alpha3 + b3;

🎉3 参考文献

[1]姜星宇. 基于动态粒子群算法的DPSO-LSSVM模型在短期电力负荷预测中的应用研究[D].沈阳农业大学,2022.DOI:10.27327/d.cnki.gshnu.2022.000596.

👨‍💻4 Matlab代码

相关文章:

使用 LSSVM 的 Matlab 演示求解反常微分方程问题(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 LSSVM的特性 1) 同样是对原始对偶问题进行求解&#xff0c;但是通过求解一个线性方程组&#xff08;优化目标中的线性约束导致…...

动态规划-背包问题

文章目录一、背包问题1. 背包问题简介2. 背包问题解决方法二、01 背包问题1. 实现思路2. 实现代码三、完全背包问题1. 实现思路2. 实现代码四、多重背包问题&#xff08;一&#xff09;1. 实现思路2. 实现代码五、多重背包问题&#xff08;二&#xff09;1. 实现思路2. 实现代码…...

计算24点与运算符重载

十几年前写过一个算24点的程序。记得当时有点费劲&#xff0c;不过最后总算捣鼓出来了。前几天突然想再写一次&#xff0c;结果轻松地写出来了。C&#xff0c;总行数不多&#xff0c;带命令行界面和注释共200行不到&#xff1b;利用了面向对象和运算符重载来简化代码。 首先谈…...

MES系统智能工厂,搭上中国制造2025顺风车

MES在电子制造业中的应用日益广泛&#xff0c;越来越多的厂商已经购置或自行开发了MES&#xff0c;并将其作为“智能化工厂”。国内大大小小、各行各业都有上百个MES系统&#xff0c;还有很多的国外MES系统&#xff0c;怎么才能在MES系统公司中找到适合自己的MES&#xff1f;希…...

【LeetCode】每日一题(1)

目录 题目&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 写在最后&#xff1a; 题目&#xff1a; 这是他给出的接口&#xff1a; class Solution { public:int fillCups(vector<int>& amount) {} }; 作为一个数学学渣&#xff0c;我想不出厉害的数学算法…...

SpringCloud-Netflix学习笔记11——Hystrix实现服务降级

服务降级 是什么&#xff1f; 整体资源快不够了&#xff0c;忍痛将某些服务先关掉&#xff0c;待渡过难关&#xff0c;再开启回来。 如下图&#xff0c;在某一个时间段&#xff0c;访问服务A的请求特别多&#xff0c;而访问服务B和服务C的请求特别少&#xff0c;这时我们可以把…...

Oracle Dataguard(主库为 Oracle rac 集群)配置教程(03)—— 创建 dataguard 数据库之前的准备工作

Oracle Dataguard&#xff08;主库为 Oracle rac 集群&#xff09;配置教程&#xff08;03&#xff09;—— 创建 dataguard 数据库之前的准备工作 / 本专栏详细讲解 Oracle Dataguard&#xff08;Oracle 版本为11g&#xff0c;主库为双节点 Oracle rac 集群&#xff09;的配置…...

零代码做分析报表的bi软件才是好软件

有些数据分析软件对IT的依赖比较重&#xff0c;在制作报表的过程中需要用到SQL&#xff0c;这就导致了IT人员懂技术不懂业务&#xff0c;业务人员懂业务不懂技术&#xff0c;数据分析做来做去总是差点什么的局面。要是遇到了IT部门相对较弱的情况&#xff0c;还会加重IT负担&am…...

linux ALSA 驱动架构

一、kernel Audio驱动架构主流有两大类&#xff0c;一类是SOC Machine架构&#xff0c;另一类是simple-card架构。 MTK、QCom主要采用machine架构&#xff0c;rockchip采用simple card架构。 二、Machine架构驱动介绍 machine 架构每家平台实现并不完全相同&#xff0c;mach…...

JDK 8 JVM内存结构详解

前言 本文所介绍的是 JDK 1.8 版本&#xff0c;其他版本的 JDK 在这里并不一定正确&#xff1b;内容主要摘自周志明的《深入理解Java虚拟机》一书的关键点&#xff0c;并根据自身的理解进行记录。感兴趣的同学可以去阅读原著。 JVM 的内存结构&#xff0c;主要包括以下 5 个区…...

黑马程序员 Linux 教程

目录Linux 简介不同应用领域主流操作系统Linux 系统历史Linux 系统版本Linux 安装安装方式网卡设置安装 SSH 连接工具使用 FinalShell 连接到 LinuxLinux 和 Windows 目录结构对比Linux 目录介绍Linux 常用命令Linux 命令初体验Linux 命令使用技巧Linux 命令格式文件目录操作命…...

文件操作 -- IO

文章目录文件操作 -- IO文件 :文件路径 :文件的类型java 中的文件操作文件内容的相关操作字节流的读和写操作字符流的读和写操作代码案例代码案例一 &#xff1a;代码案例二 &#xff1a;代码案例三 &#xff1a;文件操作 – IO 文件 : 文件相比大家都不陌生把 &#xff0c; 打…...

FPGA解析串口协议帧3.0版本,增加了错误重发功能,提供仿真文件以及源码

FPGA解析串口协议帧已经发布2个版本了&#xff0c;分别如下&#xff1a; 版本1&#xff1a;点击查看版本1 版本1详细介绍了串口协议帧的帧组成和设计思想&#xff0c;但设计粗糙&#xff0c;注释不详细&#xff1b; 版本1&#xff1a;点击查看版本2 版本2优化了代码&#xff0c…...

365天深度学习训练营 第P6周:好莱坞明星识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 内部限免文章&#xff08;版权归 K同学啊 所有&#xff09;&#x1f366; 参考文章地址&#xff1a; &#x1f517;第P6周&#xff1a;好莱坞明星识别 | 365天深度学习训练营&#x1f356; 作者&#xff1a;K同学啊 | 接…...

一文读懂 Zebec Chain 的“先行网络” Nautilus 链

最近&#xff0c;Zebec 上线了 DAO 治理系统后&#xff0c;上线并通过了关于 Nautilus 链的提案&#xff0c;这也是DAO系统上线后通过的首个提案。 Nautilus 链可以被看作是Zebec Chain上线前的“先行”链&#xff0c;并且是目前行业内为数不多的以“Layer3”作为特点的模块化通…...

FuzzyMathematicalModel模糊数学模型-2-多目标模糊综合评价案例分享

主函数&#xff1a;clc, clear% 输入模糊矩阵的原型x [4700 6700 5900 8800 76005000 5500 5300 6800 600004.0 06.1 05.5 07.0 06.80030 0050 0040 0200 01601500 0700 1000 0050 0100];r muti_objective_fuzzy_analysis(x);% 各指标在决策中占的权重(专家系统&#xff0c;自…...

单链表--C语言版(从0开始,超详细解析,小白一看就会)

目录 一、前言 &#x1f34e; 为什么要学习链表 &#x1f4a6;顺序表有缺陷 &#x1f4a6; 优化方案&#xff1a;链表 二、链表详解 &#x1f350;链表的概念 &#x1f349;链表的结构组成&#xff1a;节点 &#x1f353;链表节点的连接&#xff08;逻辑结构与物理结构的区…...

cv2-特征点匹配(bf、FLANN)

cv2-特征点匹配&#xff08;bf、KNN、FLANN&#xff09; 文章目录cv2-特征点匹配&#xff08;bf、KNN、FLANN&#xff09;1. 暴力匹配法&#xff08;bf&#xff09;1.1 bf.match()1.2 bf.knnMatch()3. FLANN匹配法4. 总结1. 暴力匹配法&#xff08;bf&#xff09; &#xff08…...

基于matlab多功能相控阵雷达资源管理的服务质量优化

一、前言此示例说明如何为基于服务质量 &#xff08;QoS&#xff09; 优化的多功能相控阵雷达 &#xff08;MPAR&#xff09; 监控设置资源管理方案。它首先定义必须同时调查的多个搜索扇区的参数。然后&#xff0c;它介绍了累积检测范围作为搜索质量的度量&#xff0c;并展示了…...

立创eda专业版学习笔记(6)(pcb板移动节点)

先要看一个设置方面的东西&#xff1a; 进入设置-pcb-通用 我鼠标放到竖着的线上面&#xff0c;第一次点左键是这样选中的&#xff1a; 再点一次左键是这样选中的&#xff1a; 这个时候&#xff0c;把鼠标放到转角的地方&#xff0c;点右键&#xff0c;就会出现对于节点的选项…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...