前言
众所周知Excel是一款非常强大的实用的办公软件,其内嵌的数量巨大的函数库基本能够满足我们日常工作需求。但由于需求的多样性,仍有一些功能无法满足,如需要进行迭代计算的函数功能等,这就需要自己定义特殊的函数以供特殊需求用啦。本贴以迭代求解悬链线索长为例,给出在VBA中自定义函数的方法,以飨读者。
一、工程背景
悬链线是自然界中最常见的一类线形,如晾衣绳、轮船系泊链、斜拉桥拉索等,关于其介绍请读者参考其他相关读物。悬链线微分方程(已知索力T求索长S)的求解思路如下:


显然,方程式(6)为隐函数方程,通常没有解析解,因此需要构造迭代方程,进行迭代求解,思路如下:
- 选定迭代初值:取水平索力的迭代初值为H0=T*cos(atan(h/l));
- 根据公式(4)计算中间参数C1;
- 根据公式(5)计算A点斜率KA;
- 根据公式(6)迭代计算索力水平分力H1
- 比较迭代前后H0与H1的差值,如果满足误差精度要求,则结束迭代,否则令H0=H1,返回到步骤2
- 索力水平分力为H1
- 根据公式(7)和(9)计算索长与无应力索长。
二、功能实现
点击开发工具>Visual Ba

本文介绍了如何在Excel中利用VBA自定义函数解决需要迭代计算的问题,以求解悬链线索长为例,详细阐述了工程背景、迭代求解的思路,并提供了具体的VBA代码实现。用户可以按照提供的调用方法直接在Excel中使用此自定义函数。
 自定义函数 迭代计算 悬链线索长&spm=1001.2101.3001.5002&articleId=124010277&d=1&t=3&u=8dd9c5e854be490eb03ef998a96a79cd)
807

被折叠的 条评论
为什么被折叠?



