找回密码
 欢迎注册
楼主: 笨笨

[求助] 用Mathematica编程求出最大误差函数值时如:10⁻⁸下的(x,a,b,c,d)

  [复制链接]
 楼主| 发表于 2023-7-17 22:37:26 | 显示全部楼层
Ickiverar 发表于 2023-7-17 20:30
当{a,b,c,d}~{0.58156,2.63274,0.830127,3.51668}时,Er(x)的界最小,为2.865e-6

请问先生,可否贴一下编程代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2023-7-19 07:01:21 | 显示全部楼层
Ickiverar 发表于 2023-7-17 20:30
当{a,b,c,d}~{0.58156,2.63274,0.830127,3.51668}时,Er(x)的界最小,为2.865e-6

先生你好,请给出必要你的分析过程或编程代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2023-7-28 07:56:43 | 显示全部楼层
顶一下,寻找论坛才俊
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2023-8-16 14:04:06 | 显示全部楼层
Ickiverar 发表于 2023-7-17 20:30
当{a,b,c,d}~{0.58156,2.63274,0.830127,3.51668}时,Er(x)的界最小,为2.865e-6

老师还在吗,请问当{a,b,c,d}~{0.58156,2.63274,0.830127,3.51668}时,Er(x)的界最小,为2.865e-6,这些数据在Mathematica中是怎么得出来的???
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-8-17 02:57:14 | 显示全部楼层
笨笨 发表于 2023-8-16 14:04
老师还在吗,请问当{a,b,c,d}~{0.58156,2.63274,0.830127,3.51668}时,Er(x)的界最小,为2.865e-6,这些 ...

我发现这不是最优值。当 {a,b,c,d}~{0.459, 2.905, 0.864, 3.5945} 时,Er(x)的界可以小于 1.8e-6。我再看看怎么搜索最优值吧。这个问题比较复杂,需要拿MMA做实验性的互动,不存在通用的算法。

点评

期待先生大作  发表于 2023-8-17 06:39
谢谢前辈  发表于 2023-8-17 06:05
当前我发现的最优:{0.463417,2.89576,0.86239,3.5826}, |Er|<1.569e-6。 目前我会的一切优化算法都报废了,我不确定有没有更好的参数。  发表于 2023-8-17 04:18
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2023-8-17 06:12:11 | 显示全部楼层
本帖最后由 笨笨 于 2023-8-17 08:44 编辑
Ickiverar 发表于 2023-8-17 02:57
我发现这不是最优值。当 {a,b,c,d}~{0.459, 2.905, 0.864, 3.5945} 时,Er(x)的界可以小于 1.8e-6。我再 ...


前辈可否看看一下这个帖子: 用梯度下降法求函数界的最小值

有网友老师说:
Mathematica 可以执行 while loop.  这意味着梯度方法自动优化参数的代码可以轻易编出求出误差函数界的最小值。

我不知道 while怎么编才能自动优化梯度参数且得到误差函数界的最小值。

点评

我那个最优就是梯度下降出来的。但目前目标函数有一些尖锐的“渠”,梯度下降报废。  发表于 2023-8-17 22:20
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2023-8-17 22:22:57 | 显示全部楼层
本帖最后由 笨笨 于 2023-8-17 22:29 编辑
笨笨 发表于 2023-8-17 06:12
前辈可否看看一下这个帖子: 用梯度下降法求函数界的最小值

有网友老师说:


前辈可否贴出你的Mathematica代码看看,另外到该贴链接下也看看有什么不同
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-8-17 23:47:50 | 显示全部楼层
结论:
在 {a,b,c,d} 取值 {-2.63010099114955,11.468733192809488,0.9377675568096427,1.3605922539441178} 时,
Abs[Er] 的最大值最小,为 2.7203060441574384E-7

Er[a,b,c,d].zip (73.51 KB, 下载次数: 5)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-8-18 06:23:24 | 显示全部楼层
本帖最后由 Ickiverar 于 2023-8-18 06:29 编辑

对于你 https://bbs.emath.ac.cn/thread-19045-1-1.html 帖子中加入一个新参数之后的情况,我用 kabcd 这五个字母表示你那个帖子中的 abcde,以避免修改已有字母 abcd 的意义。

新的最优值为 {k,a,b,c,d}~{infinity, 0.148646, 0, 0.949131, 0.811553} ,此时 Abs[Er] 的最大值最小,为 1.82658e-7

注意到 k b 分别为无穷大和0,这实际上要求你把拟合式中的 $k(1-x^b)^c$ 改为 $(kb^c)*((1-x^b)/b)^c$,此时 $kb^c$ 趋于一常数 17.7309, $((1-x^b)/b)^c$ 成为 $-\log^c(x)$。

Er[k,a,b,c,d].zip (369.18 KB, 下载次数: 6)

点评

先生辛苦了,我下载后慢慢学习大作.  发表于 2023-8-18 21:28
历害,确实不简单,再次感谢  发表于 2023-8-18 20:33
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2023-8-18 20:57:26 | 显示全部楼层
Ickiverar 发表于 2023-8-18 06:23
对于你 https://bbs.emath.ac.cn/thread-19045-1-1.html 帖子中加入一个新参数之后的情况,我用 kabcd 这五 ...

QQ截图20230818204052.jpg
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-7 18:58 , Processed in 0.028940 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表