LSQcurvefit为可比数据集不会产生相同的结果

2视图(30天)
我用下面的代码来适应我的数据。关键是适合捕捉曲线的峰值开始。
很多数据集的方法(例子是x_good, y_good)。
两套这种方法不工作足够足够(x5,日元和x10,日元)
谁可以看到如果我做错了什么?或者给一个不同的方法哪个更有效?
清晰的所有
clc
关闭所有
%的工作数据集
x_good = [0 0.0025 0.020666667 0.0915 0.129 0.169916667 0.204 0.2415 0.299833333 0.359833333 0.409833333 - 0.459833333 0.589833333 - 0.674833333);
y_good = [0.000001 -1.791689626 -2.085814283 -1.254192484 -1.130978553 -0.852663995 -0.650156083 -0.605732792 -0.552092535 -0.466707459 -0.381595899 - -0.341840176 -0.112360934 - -0.107089368);
%不工作数据集
x5 = [0 0.0025 0.020666667 0.0915 0.129 0.169916667 0.204 - 0.299833333 0.359833333 - 0.509833333 0.589833333 - 0.674833333);
日元= [0.000001 -1.512917459 -1.397221246 -0.861543826 -0.678138048 -0.538930943 -0.440640054 -0.253865251 -0.192352332 - 0.001791084 0.078138742 - 0.156925367);
%不工作数据集
x10 = [0 0.0025 0.020666667 0.0915 0.129 0.169916667 0.204 0.2415 0.299833333 0.359833333 0.409833333 - 0.459833333 0.589833333 - 0.674833333);
日元= [0.000001 -0.909146404 -1.389416499 -0.736431181 -0.767464076 -0.430784784 -0.298350016 -0.477736703 -0.174485909 -0.10975744 -0.038531763 - 0.009471926 0.133414928 - 0.178482903);
% LSQ
t = x5;
y =日元;
xspace = linspace (t (1), t(结束),1000);
选择= optimoptions (“lsqcurvefit”,“MaxFunctionEvaluations”100 e3)
%配合函数y = c (1) * exp (lam (1) * t) + c (2) * exp (lam (2) * t)
F = @ (x, t) (x (1) * exp (t - x (2) *) + x (3) * exp (t - x (4) *));
x4 = [1 1 1 0];
[x, resnorm, ~, ~,输出]= lsqcurvefit (F, x4, t y[],[],选项)
情节(t y“罗”)
标题(“最小平方方法”)
持有
情节(t、F (x, t),“r”)
持有
情节(xspace F (x, xspace),“——r”)
集(gca),“YDir”,“反向”)
传奇(“数据”,“LSQ resnorm:“+ resnorm,“LSQ连续”)

接受的答案

Torsten
Torsten 2022年9月29日
使用
x4 = (-2.1782 - 5.0283 2.1782 - 720.8491);
而不是
x4 = [1 1 1 0];
作为初始估计参数。
2的评论

登录置评。

更多的答案(0)

s manbetx 845


释放

R2020a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的