无法使用数值模型数据,错误“无法满足集成公差没有减少步长低于最小值允许在时间t (4.708773 e-14)。”

9的观点(30天)
你好!
我用一个函数与数值内作为nlinfit modelfun适合我的数据使用参数“测试版”,但它给了荒谬的答案或放弃,任何想法?
代码:
清晰的所有;clc;clf;
c0 = (0.0188, 0);
一个= readmatrix (1020 _conc.txt);%装载数据
n = 2:长度(A)%修复任何奇怪点数据. .
如果一个(n) < 0.001 | | (n) > 0.02
(n) = (n - 1);
结束
结束
(1)= (2);%修复任何奇怪点数据. .
temp = 1000;
tspan = linspace(1、长度(A),长度(A)) * 0.6;%的时间数据
beta0 = (1、2、0.5、0.5);%初始猜测
情节(tspan)
持有
c0 = (0.0188, 0);
β= nlinfit (tspan、@fun1 beta0);
CA = fun1 (beta0 tspan);
情节(tspan, CA)
函数tspan CA = fun1(β)
c0 = (0.0188, 0);
[~ C] = ode23t (@ (t, C) odefun (t、C、β),tspan, c0);
ylim ([0, 0.02])
CA = C (: 1);
CA = CA ';
结束
函数dcdt = odefun (tspan cβ)
c =β(3)*(1)^β(1);
B =β(4)* c(2) ^β(2);
dcdt (1) = b;
dcdt (2) = a - b;
dcdt = dcdt ';
结束
浓度数据拟合率法解决了数值:附呈。

答案(1)

沃尔特·罗伯森
c0 = (0.0188, 0);
c =β(3)*(1)^β(1);B =β(4)* c(2) ^β(2);

我认为很有可能,ode23t将探讨c(2)是消极的,会导致复杂的^的结果

有一个选项为非负约束,如果我没记错的话。

标签

下载188bet金宝搏


释放

R2023a

社区寻宝

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

开始狩猎!