shoney 发表于 2009-9-9 22:57:04

运行结果出现这样的提示是什么意思?

自己编了一个求最优参数的程序(就是根据方程计算得到计算值,并与实验值比较,用最小二乘法),得到的结果总是等于初始值,并且出现这样的提示信息:
Optimization terminated: first-order optimality less than OPTIONS.TolFun,
and no negative/zero curvature detected in trust region model.

请问这个提示信息是什么意思啊?

ljelly 发表于 2009-9-10 09:54:07

就是没找到最优解,曲率为小于等于零的点不存在

你应该把代码贴出来,并把你的目的和方法说清楚

大家才好帮你解决问题

shoney 发表于 2009-9-12 10:07:16

就是没找到最优解,曲率为小于等于零的点不存在

你应该把代码贴出来,并把你的目的和方法说清楚

大家才好帮你解决问题
ljelly 发表于 2009-9-10 09:54 http://forum.simwe.com/images/common/back.gif谢谢,下面是我的代码

shoney 发表于 2009-9-12 10:11:09

模型的几何形状是一个圆柱,在0,1,2,5,10,20,30,60min这几个时间点上测得某种化学物质扩散入其中的量,模型方程是一个抛物线型的偏微分方程,要求最佳的扩散系数Deff。代码如下:
function ACdisc_Diffusion
clear all;clc;
global Cm;
%动力学数据
tlist=;    %测量的时间点,单位min
Cm=;    %测得的AC中DMSO平均浓度,单位%w/w

%非线性拟合
C0=0;
%Deff0=1;    %Deff的上限值,单位mm2/min
%Deffn=2;    %Deff的下限值
=lsqnonlin(@OptObjFunc,0.0114,[],[],[],tlist,C0,Cm)    %现在程序的问题是根本没有迭代发生
ci=nlparci(Deff,resid,jacobian)

%--------------------------------------------------------------------------
%求解PDE
function C=OptObjFunc(Deff,tlist,C0,Cm)   
%PDE问题定义及参数初始化
g='ACdiscg1';    %定义求解域,几何尺寸单位mm
b='ACdiscb1';    %定义边界条件
d=['x/' num2str(Deff)];c='x';a=0;f=0;    %方程的系数

%网格化(三角形网格划分及网格细化)
=initmesh(g);
=refinemesh(g,p,e,t);
p=jigglemesh(p,e,t);

%绘制PDE三角形网格
pdemesh(p,e,t);

u=parabolic(C0,tlist,b,p,e,t,c,a,f,d);    %计算得到的AC中任意时间任意位置DMSO浓度
%积分求解DMSO平均浓度的计算值
xi=linspace(0,3,35);yi=linspace(0,0.38,35);
for i=1:length(tlist)
    Cc{1,i}=tri2grid(p,t,u(:,i),xi,yi);
    Cc0=Cc{1,i};
    Cc1(1,i)=dblquad(@Func,0,3,0,0.38,[],@quadl,xi,yi,Cc0);
    Cc2(1,i)=Cc1(1,i)/(3*0.38);
end
C=Cc2-Cm;
   
%--------------------------------------------------------------------------
function f=Func(x,y,xi,yi,Cc0)
f=interp2(xi,yi,Cc0,x,y);
页: [1]
查看完整版本: 运行结果出现这样的提示是什么意思?