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

优化非线性复杂系统的参数

非线性项组合的系统

对于系统中的每一个复杂拟合,即每一个残差函数,都能表示为非线性方程的趋势,例如较为复杂的系统函数组,

from optimtool.base import sp, np
x = sp.symbols("x1:5")
res1 = 0.5*x[0] + 0.2*x[1] + 1.5*x[0]**3 - 2*x[2] # Damped oscillator with nonlinear term
res2 = 3*x[0] + x[1]**2 - x[2]**2 - 0.1*np.random.normal() # Coupled oscillator system
res3 = x[2]*(1 - x[3]) - x[0]*x[1] + 1.5*sp.sin(x[3]) # Predator-prey like interaction
res4 = x[3]*(x[0] - x[1]) + 0.5*sp.exp(-x[2]) - 2.0*x[1] # Delay differential equation component

要解上述方程组,需要用到线搜索、非线性最小二乘、系统初始状态,这些方法在optimtool的nonlinear_least_square模块中能找到。在给定系统初始状态为(1.0, 0.5, 0.2, 0.8),默认线搜索的前提下,优化的系统组是[res1, res2, res3, res4],使用如下指令调用levenberg_marquardt方法,

import optimtool.unconstrain as ou
ou.nonlinear_least_square.levenberg_marquardt([res1, res2, res3, res4], x, (1.0, 0.5, 0.2, 0.8), verbose=True, epsilon=1e-3)

系统内的迭代趋势如下,一个系统的解在优化过程里的局部最优解可以有多个,这里给出的是系统达到收敛阈值的平滑区域的解,

(1.0, 0.5, 0.2, 0.8)    6.457126524403201       0
[ 0.40429326  0.43564665 -0.17927255  1.02536062]       1.7366068984048804      1
[0.1438984  0.25405175 0.10550085 0.32590509]   0.2107042535909221      2
[0.04771543 0.25630044 0.0574562  0.0532376 ]   0.014097257076394237    3
[ 0.02155738  0.24964789  0.0327689  -0.00291764]       0.0005100292092591925   4
[ 0.01767332  0.2456185   0.02926977 -0.01465774]       1.103580671559125e-05   5
[ 0.01711515  0.24490507  0.02880226 -0.01647978]       1.2913438683552677e-07  6

可视化图例中迭代点快速收敛到局部最优的原因是wolfe线搜索方法和非线性系统的乘积组合funcs=(1/2)funcr.T*funcr,也是最小二乘法的线搜索基础。
在这里插入图片描述

相关文章:

  • Linux基础IO(十一)之动态库(基础IO的最后一篇啦!)
  • CentOS系统防火墙服务介绍
  • 发放优惠券
  • 初窥Java内存模型(JMM)
  • 精益数据分析(24/126):聚焦第一关键指标,驱动创业成功
  • 边界凸台建模与实例
  • PGSql查看表结构以及注释信息
  • NAT穿透
  • 通过API接口在自己的独立站系统上架商品信息。(实战案例)
  • 【Java学习笔记】冒泡排序
  • NEGATIVE LABEL GUIDED OOD DETECTION WITH PRETRAINED VISION-LANGUAGE MODELS
  • WHAT - 前端开发书单推荐
  • 【vue】【element-plus】 el-date-picker使用cell-class-name进行标记,type=year不生效解决方法
  • DeepSeek回答过于笼统,提示词如何优化
  • RK3562/3588 系列之0—NPU基础概念
  • 高防IP+CDN组合:电商大促的“双保险”防护方案
  • 常见网络安全攻击类型深度剖析(二):SQL注入攻击——原理、漏洞利用演示与代码加固方法
  • linux系统问题杂谈
  • 六个能够白嫖学习资料的网站
  • Spring MVC 数据绑定利器:深入理解 @InitBinder
  • 常熟银行一季度净赚超10亿增逾13%,净息差较上年末下降0.1个百分点
  • 夜读丨囿于厨房与爱
  • 上海发布一组人事任免信息:钱晓、翁轶丛任市数据局副局长
  • 上海2025年普通高等学校招生志愿填报与投档录取实施办法公布
  • “网红”谭媛去世三年:未停更的账号和困境中的家庭
  • “两高”发布侵犯知产犯罪司法解释:降低部分犯罪入罪门槛