求组:程序问题
麻烦各位大哥帮我看下,一运行就一直在循环..其中c=是初始值。。下面是主程序
clear
global c r
format long
dmin=0.0;
dmax=5;
qmin=0.0;
qmax=5;
c=;
n=0;
r=10;
whilen<1000 & r>1e-6
f1=dblquad('ff1',dmin,dmax,qmin,qmax)-1;
f2=dblquad('ff2',dmin,dmax,qmin,qmax)-1;
f3=dblquad('ff3',dmin,dmax,qmin,qmax)-32;
f=
ja(1,1)=dblquad('dff1',dmin,dmax,qmin,qmax);
ja(1,2)=dblquad('dff2',dmin,dmax,qmin,qmax);
ja(1,3)=dblquad('dff3',dmin,dmax,qmin,qmax);
ja(2,1)=dblquad('dff4',dmin,dmax,qmin,qmax);
ja(2,2)=dblquad('dff5',dmin,dmax,qmin,qmax);
ja(2,3)=dblquad('dff6',dmin,dmax,qmin,qmax);
ja(3,1)=dblquad('dff7',dmin,dmax,qmin,qmax);
ja(3,2)=dblquad('dff8',dmin,dmax,qmin,qmax);
ja(3,3)=dblquad('dff9',dmin,dmax,qmin,qmax);
ja
condition=cond(ja)
n=n+1
nc=c-inv(ja)*f;
ef=;
r=max(ef)
c=nc
end
y=c 请将ff1...函数给出,以便于调试程序.
回复 #2 xjzuo 的帖子
。谢谢下面是我定义的函数
[ 本帖最后由 underlion 于 2007-5-18 12:58 编辑 ] 算了一下,发现有奇异性出现,这个可能是模型的问题,而非程序的问题.
你自己再仔细检查一下. 以下是我的代码:
%%%%%%%%%%%%%%%%%%
function y=mydffun()
clear
global c r
format long
dmin=0.0;
dmax=5;
qmin=0.0;
qmax=5;
c=;
n=0;
r=10;
whilen<1000 & r>1e-6
f1=dblquad(@ff1,dmin,dmax,qmin,qmax)-1;
f2=dblquad(@ff2,dmin,dmax,qmin,qmax)-1;
f3=dblquad(@ff3,dmin,dmax,qmin,qmax)-32;
f=;
ja(1,1)=dblquad(@dff1,dmin,dmax,qmin,qmax);
ja(1,2)=dblquad(@dff2,dmin,dmax,qmin,qmax);
ja(1,3)=dblquad(@dff3,dmin,dmax,qmin,qmax);
ja(2,1)=dblquad(@dff4,dmin,dmax,qmin,qmax);
ja(2,2)=dblquad(@dff5,dmin,dmax,qmin,qmax);
ja(2,3)=dblquad(@dff6,dmin,dmax,qmin,qmax);
ja(3,1)=dblquad(@dff7,dmin,dmax,qmin,qmax);
ja(3,2)=dblquad(@dff8,dmin,dmax,qmin,qmax);
ja(3,3)=dblquad(@dff9,dmin,dmax,qmin,qmax);
ja;
condition=cond(ja);
n=n+1;
nc=c-inv(ja)*f;
ef=;
r=max(ef);
c=nc;
end
y=c
%%%%%%%%%%%%%%%%%%%%
function y=dff1(d,v)
global c r
format long
y=-exp(-c(1)-c(2).*d.^3-c(3).*d.^3.*v.^2)
%%%%%%%%%%%%%%%%%%%%%%%
function y=dff2(d,v)
global c r
format long
y=-d.^3.*exp(-c(1)-c(2).*d.^3-c(3).*d.^3.*v.^2)
%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=dff3(d,v)
global c r
format long
y=-d.^3.*v.^2.*exp(-c(1)-c(2).*d.^3-c(3).*d.^3.*v.^2)
%%%%%%%%%%%%%%%%%%%%%%%%%
function y=dff4(d,v)
global c r
format long
y=-d.^3.*exp(-c(1)-c(2).*d.^3-c(3).*d.^3.*v.^2)
%%%%%%%%%%%%%%%%%%%%%%%%%
function y=dff5(d,v)
global c r
format long
y=-d.^6.*exp(-c(1)-c(2).*d.^3-c(3).*d.^3.*v.^2)
%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=dff6(d,v)
global c r
format long
y=-d.^6.*v.^2.*exp(-c(1)-c(2).*d.^3-c(3).*d.^3.*v.^2)
%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=dff7(d,v)
global c r
format long
y=-d.^3.*v.^2.*exp(-c(1)-c(2).*d.^3-c(3).*d.^3.*v.^2)
%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=dff8(d,v)
global c r
format long
y=-d.^6.*v.^2.*exp(-c(1)-c(2).*d.^3-c(3).*d.^3.*v.^2)
%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=dff9(d,v)
global c r
format long
y=-d.^6.*v.^4.*exp(-c(1)-c(2).*d.^3-c(3).*d.^3.*v.^2)
%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=ff1(d,v)
global c r
format long
y=exp(-c(1)-c(2).*d.^3-c(3).*d.^3.*v.^2)
%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=ff2(d,v)
global c r
format long
y=d.^3.*exp(-c(1)-c(2).*d.^3-c(3).*d.^3.*v.^2)
%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=ff3(d,v)
global c r
format long
y=d.^3.*v.^2.*exp(-c(1)-c(2).*d.^3-c(3).*d.^3.*v.^2)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 谢谢。程序差不多了。看来模型是有点问题。。。
页:
[1]