急!牛人帮忙,matlab程序求救!

来源:百度知道 编辑:UC知道 时间:2024/06/20 01:38:12
clear all
close all
clc

data = wk1read('kin', 3, 0, 'A4..FX14');
Y_HMF = wk1read('par_HMF', 0, 0, 'A1..A8');

kr1Go = 0.1; E1Go = 1e5;
kr2Go = 0.1; E2Go = 1e5;
aGo = 1; bGo = 1;
cGo = 1; dGo = 1;
Yo = [kr1Go E1Go kr2Go E2Go aGo bGo cGo dGo];

r = [1 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 10 11 11 11 11 11 11 11 11 10 11 11 11 11 11 11 11 11 11 11 11]; %11
c = [1 : 5 : (length(r)-1)*5];

OPTIONS = OPTIMSET('MaxFunEvals',5e5,'MaxIter',5e5,'TolFun',1e-14,'TolX',1e-14);
%[Y, fval,exitflag,output] = fminsearch('optim', Yo, OPTIONS, data, r, c)
LB = [0 0 0 0 0 0 0 0];
UB = [inf inf inf inf inf inf inf inf];
[Y,RESNORM,RESIDUAL,EXITFLAG,OUTPUT,LAMBDA,JACOBIAN] = lsqnonlin('optim',Yo,LB,UB,OPTIONS,data,Y_HMF,r,c);

%Y_cf = nlparci(Y,RESIDUAL,JACOBIA

data = wk1read('kin', 3, 0, 'A4..FX14');
Y_HMF = wk1read('par_HMF', 0, 0, 'A1..A8');

kr1Go = 0.1; E1Go = 1e5;
kr2Go = 0.1; E2Go = 1e5;
aGo = 1; bGo = 1;
cGo = 1; dGo = 1;
Yo = [kr1Go E1Go kr2Go E2Go aGo bGo cGo dGo];

r = [1 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 10 11 11 11 11 11 11 11 11 10 11 11 11 11 11 11 11 11 11 11 11]; %11
c = [1 : 5 : (length(r)-1)*5];

OPTIONS = OPTIMSET('MaxFunEvals',5e5,'MaxIter',5e5,'TolFun',1e-14,'TolX',1e-14);
%[Y, fval,exitflag,output] = fminsearch('optim', Yo, OPTIONS, data, r, c)
LB = [0 0 0 0 0 0 0 0];
UB = [inf inf inf inf inf inf inf inf];
[Y,RESNORM,RESIDUAL,EXITFLAG,OUTPUT,LAMBDA,JACOBIAN] = lsqnonlin('optim',Yo,LB,UB,OPTIONS,data,Y_HMF,r,c);

Y_cf = nlparci(Y,RESIDUAL,JACOBIAN);
compare(Y,data,Y_HMF,r,c)

_________________________________