You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Matlab中使用指定函数拟合衰减指数函数并求解对应参数

实现思路

你需要拟合的是三参数非线性指数函数,使用fminsearch实现最小二乘拟合是符合要求的最优方案:先构造拟合值和真实值的残差平方和作为目标损失函数,再用fminsearch搜索使损失最小的参数a、b、c即可。

完整可运行代码

% 1. 导入测量数据(删除了你之前无效的前两行x、y赋值)
x = [12.5,11.8,10.8,10.9,6.5,6.2,6.1,5.423,4.625];
y = [0,0.61,1.3,1.4,14.9,18.5,20.1,29.7,58.2];

% 2. 定义损失函数:输入参数向量params = [a,b,c],输出残差平方和
loss_fun = @(params) sum( (y - (params(1)*exp(-params(2)*x) + params(3))).^2 );

% 3. 设定参数初始猜测值(需根据数据分布合理设置,避免陷入局部最优)
% 初始值逻辑:x趋近于0时y≈a+c≈58,x趋近于正无穷时y≈c≈0,b取经验值0.2
params0 = [60, 0.2, 0];

% 4. 调用fminsearch求解最优参数
params_opt = fminsearch(loss_fun, params0);
a = params_opt(1)
b = params_opt(2)
c = params_opt(3)

% 5. 绘制拟合结果对比
x_fit = linspace(min(x), max(x), 100);
y_fit = a*exp(-b*x_fit) + c;
plot(x, y, 'o', x_fit, y_fit, '-', 'LineWidth',1.5)
xlabel('Conductivité')
ylabel('Inductance')
legend('原始测量点','拟合曲线')
grid on

注意事项

运行代码后会直接输出拟合得到的a、b、c数值,同时弹出拟合对比图验证效果。如果拟合结果偏差较大,可以调整初始猜测值params0重新运行即可。

内容的提问来源于stack exchange,提问作者Ines Mir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 19:15:03