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

全局优化搜索高次方程的解

高次方程的解

某高中自主招生试题的形式是 ( 3 x − 2 ) 4 + ( 3 x − 4 ) 4 = 16 (3x-2)^4+(3x-4)^4=16 (3x2)4+(3x4)4=16,从方程常数项观察得到方程具备两个分式解 4 3 \frac{4}{3} 34 2 3 \frac{2}{3} 32,在一般的高次方程求解问题中,这类方程可能不具备易于观察得到的解,这里把函数构造成绝对值的形式,
∣ ( 3 x − 2 ) 4 + ( 3 x − 4 ) 4 − 16 ∣ = 0 |(3x-2)^4+(3x-4)^4-16|=0 (3x2)4+(3x4)416∣=0
此时 x x x定义域到值域的最小值是0,也是方程的最小值,那么Python程序的目标函数设计为,

objective_function = lambda x: numpy.abs((3*x-2)**4 + (3*x-4)**4 - 16)

从方程的区间端点的值域,起始搜索区间定义为(-10, 10),程序代码如下,

import porgo
import numpyobjective_function = lambda x: numpy.abs((3*x-2)**4 + (3*x-4)**4 - 16)
bounds = [(-10, 10)]
# bounds = [(-10, 1.2)]test = porgo.glos(objective_function, bounds) # mutation=0.5, recombination=0.9test.rand_pop(40)
for i in range(6):test.train_gen(100)test.result()print('{} epoch, minimum {}, medium {}, maximum {}'.format(i, test.fit_mini, test.fit_medi, test.fit_maxi))
print(test.mini, test.fit_mini)

得到第一个解是1.33333333,也就是4/3,

0 epoch, minimum [[5.65592018e-12]], medium [[5.65592018e-12]], maximum [[5.65592018e-12]]
1 epoch, minimum [[0.]], medium [[0.]], maximum [[0.]]
2 epoch, minimum [[0.]], medium [[0.]], maximum [[0.]]
3 epoch, minimum [[0.]], medium [[0.]], maximum [[0.]]
4 epoch, minimum [[0.]], medium [[0.]], maximum [[0.]]
5 epoch, minimum [[0.]], medium [[0.]], maximum [[0.]]
[[1.33333333]] [[0.]]

缩小搜索区间到bounds = [(-10, 1.2)],得到第二个解是2/3,

0 epoch, minimum [[0.]], medium [[0.]], maximum [[0.]]
1 epoch, minimum [[0.]], medium [[0.]], maximum [[0.]]
2 epoch, minimum [[0.]], medium [[0.]], maximum [[0.]]
3 epoch, minimum [[0.]], medium [[0.]], maximum [[0.]]
4 epoch, minimum [[0.]], medium [[0.]], maximum [[0.]]
5 epoch, minimum [[0.]], medium [[0.]], maximum [[0.]]
[[0.66666667]] [[0.]]

修改搜索区间到bounds = [(1.4, 10)]或[(-10, 0.6)],均无最小值,bounds=[(0.7, 1.2)]也无最小值。这时可以得到 ( 3 x − 2 ) 4 + ( 3 x − 4 ) 4 − 16 (3x-2)^4+(3x-4)^4-16 (3x2)4+(3x4)416共有两个解,第一个解是4/3,第二个解是2/3,其他高次方程的解也可以通过绝对值函数把定义域到值域的关系映射到极值为0,这种做法是无梯度搜索最值的方法,也是无需代数运算和变换的数值解法。

http://www.xdnf.cn/news/6091.html

相关文章:

  • C++学习之打车软件git版本控制
  • RabbitMQ 快速上手:安装配置与 HelloWorld 实践(二)
  • 【SSL证书系列】客户端如何验证https网站服务器发的证书是否由受信任的根证书签发机构签发
  • 【原创】使用阿里云存放一个临时共享的文件
  • FunASR:语音识别与合成一体化,企业级开发实战详解
  • 论MCU如何在Fatfs中使用Flash接口的方法
  • 前端面试每日三题 - Day 34
  • 白盒测试——基本路径测试法
  • copy_paste
  • 如何实现一个运动会计分系统?(C语言版)
  • 高速系统设计实例设计分析二
  • Java—类与对象(一)
  • LLM(大语言模型)部署加速方法——PagedAttention
  • c# 倒序方法
  • 【Java】 volatile 和 synchronized 的比较及使用场景
  • 【RabbitMQ】路由模式和通配符模式的具体实现
  • 嵌入式培训之数据结构学习(三)gdb调试
  • dify 连接不上ollama An error occurred during credentials validation:
  • gitlab提交测试分支的命令和流程
  • HCIP(BFD)
  • Linux——CMake的快速入门上手和保姆级使用介绍、一键执行shell脚本
  • 硬盘序列号(SN码)4种常用查询方法分享
  • Java基础之静态代理和动态代理
  • ValueError: 4 columns passed, passed data had 51141 columns解决
  • 【消息队列】RabbitMQ基本认识
  • Git仓库迁移
  • 深度解析 Sora:从技术原理到多场景实战的 AI 视频生成指南【附学习资料包下载】
  • 模糊数学方法之模糊贴近度
  • 现代 Web 自动化测试框架对比:Playwright 与 Selenium 的深度剖析
  • AI智能分析网关V4周界入侵检测算法精准监测与智能分析,筑牢周界安全防线