ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 江南156

[求助] 请问有数学好的老师吗?我这有个公式请帮忙改一下,谢谢了。

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-3 09:19 | 显示全部楼层
wanghan519 发表于 2023-5-3 08:54
反推不会,还是逼近求解吧,写了个函数,写的不好凑活用。。。

谢谢  接近于正确值了  不过我这个要求精度     

TA的精华主题

TA的得分主题

发表于 2023-5-3 09:23 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
江南156 发表于 2023-5-3 09:19
谢谢  接近于正确值了  不过我这个要求精度

那就把0.0001那里再改小一些

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-3 09:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wanghan519 发表于 2023-5-3 09:23
那就把0.0001那里再改小一些

请问在哪里改?我不懂

TA的精华主题

TA的得分主题

发表于 2023-5-3 09:28 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
江南156 发表于 2023-5-3 05:21
谢谢,用我的那个公式不能逆向的计算吗?

可以,但是最后要求解一元四次方程,公式很长

TA的精华主题

TA的得分主题

发表于 2023-5-3 09:28 | 显示全部楼层
江南156 发表于 2023-5-3 06:18
请问 用单变量求解能批量计算A列的吗?

当然可以了,不过得用VBA解决

TA的精华主题

TA的得分主题

发表于 2023-5-3 09:33 | 显示全部楼层
wanghan519 发表于 2023-5-3 08:54
反推不会,还是逼近求解吧,写了个函数,写的不好凑活用。。。

老师可以贴出代码分享吗?代码有任何简体或是繁体字都自动遗失成空

TA的精华主题

TA的得分主题

发表于 2023-5-3 09:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
niko88819 发表于 2023-5-3 09:33
老师可以贴出代码分享吗?代码有任何简体或是繁体字都自动遗失成空

不敢称老师,就是二分法求解,写的不好见笑了

  1. Public Function p(x As Double, y As Double) As Double
  2.     p = WorksheetFunction.Pi() * ((x / 2) + (y / 2)) * (1 + 3 * (((x / 2) - (y / 2)) / ((x / 2) + (y / 2))) ^ 2 / (10 + Sqr(4 - 3 * (((x / 2) - (y / 2)) / ((x / 2) + (y / 2))) ^ 2)))
  3. End Function

  4. Public Function b(c As Double, a As Double) As Double
  5.     Dim x As Double, y As Double, z As Double
  6.     x = 0
  7.     y = a
  8.     If c < p(a, 0) Then
  9.         b = -1
  10.         Exit Function
  11.     End If
  12.     While c > p(a, y)
  13.         x = y
  14.         y = y + 100
  15.     Wend
  16.     Do
  17.         z = (x + y) / 2
  18.         If c > p(a, z) Then
  19.             x = z
  20.         Else
  21.             y = z
  22.         End If
  23.     Loop While Abs(c - p(a, z)) > 0.0000000001
  24.     b = z
  25. End Function
复制代码


test.zip

13.91 KB, 下载次数: 2

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-3 10:01 | 显示全部楼层
高个子 发表于 2023-5-3 09:28
当然可以了,不过得用VBA解决

这个VBA要怎么写啊? 我加你好友了

TA的精华主题

TA的得分主题

发表于 2023-5-3 10:57 | 显示全部楼层
本帖最后由 niko88819 于 2023-5-3 11:04 编辑

向 wanghan519 老师学习 , 借花献佛

短轴 =Function Ellipse_Short_Axis(周长,长轴)

  1. Public Function Ellipse_Short_Axis(c As Double, a As Double) As Double
  2.     Dim x As Double, y As Double, z As Double, p_value As Double
  3.     x = 0
  4.     y = a
  5.     If c < p(a, 0) Then
  6.         Ellipse_Short_Axis = -1
  7.         Exit Function
  8.     End If
  9.     While c > p(a, y)
  10.         x = y
  11.         y = y + 100
  12.     Wend
  13.     Do
  14.         z = (x + y) / 2
  15.         p_value = p(a, z)
  16.         If c > p_value Then
  17.             x = z
  18.         Else
  19.             y = z
  20.         End If
  21.     Loop While Abs(c - p_value) > 0.000000000001
  22.     Ellipse_Short_Axis = z
  23. End Function
复制代码

TA的精华主题

TA的得分主题

发表于 2023-5-3 11:14 | 显示全部楼层
江南156 发表于 2023-5-3 10:01
这个VBA要怎么写啊? 我加你好友了

楼上帮你写好了。。。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-1 12:26 , Processed in 0.035255 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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