专栏
标签
如何使用Syslab进行0阶贝塞尔函数的数值拟合
技术分享
发布于 2025-07-10 10:35:27
查看 1过去327天

实现方式包括以下2种

方式一:
using TyMath
menxian = 3;
f2 = (x, pow1, pow2, sigma) -> @. x / sigma / pow1 * 2 * exp(-(x * x + pow2 * pow2) / pow1 / sigma) * besseli(0, x * pow2 / sigma * 2 / pow1, 0);
sigma = 35.481;
1 - ty_integral(x -> f2(x, 1 / 15, 8 / 15, sigma / 100), 0, sqrt(0.5))

方式二:
using TyMath
menxian=3;
f2=(x,pow1, pow2, sigma) -> @. x/sigma/pow1*2*exp(-(x*x+pow2*pow2)/pow1/sigma)*besseli(0,x*pow2/sigma*2/pow1,0);
sigma =35.481;
1 - integral(x->f2(x,1/15,8/15,sigma/100),0,sqrt(0.5))[1]

如果 menxian 换成数组 可以使用下面广播 @. 形式

using TyMath
menxian = [3:0.2:5; 5.2];
f2 = (x, pow1, pow2, sigma) -> @. x / sigma / pow1 * 2 * exp(-(x * x + pow2 * pow2) / pow1 / sigma) * besseli(0, x * pow2 / sigma * 2 / pow1, 0);
sigma = 35.481;
@. 1 - ty_integral(x -> f2(x, 1 / 15, 8 / 15, sigma / 100), 0, sqrt(menxian / 6))
所属专栏:Julia语言
产品信息:Syslab科学计算环境
科学计算

全部回答

暂无数据
暂无数据
用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天