声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1360|回复: 4

[编程技巧] 求组:程序问题

[复制链接]
发表于 2007-5-17 17:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
麻烦各位大哥帮我看下,一运行就一直在循环..
其中c=[0.1;0.3;0.2]是初始值。。下面是主程序
clear
global c r
format long

dmin=0.0;
dmax=5;
qmin=0.0;
qmax=5;

c=[0.1;0.3;0.2];
n=0;
r=10;
while  n<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=[f1;f2;f3]

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=[abs((nc(1)-c(1))/c(1));abs((nc(2)-c(2))/c(2));abs((nc(3)-c(3))/c(3))];
r=max(ef)
c=nc
end
y=c
回复
分享到:

使用道具 举报

发表于 2007-5-17 23:40 | 显示全部楼层
请将ff1...函数给出,以便于调试程序.
 楼主| 发表于 2007-5-18 12:56 | 显示全部楼层

回复 #2 xjzuo 的帖子

。谢谢
下面是我定义的函数

[ 本帖最后由 underlion 于 2007-5-18 12:58 编辑 ]

dff1.m

88 Bytes, 下载次数: 7

dff2.m

94 Bytes, 下载次数: 5

dff3.m

100 Bytes, 下载次数: 5

dff4.m

94 Bytes, 下载次数: 5

dff5.m

94 Bytes, 下载次数: 5

dff6.m

100 Bytes, 下载次数: 5

dff7.m

100 Bytes, 下载次数: 5

dff8.m

100 Bytes, 下载次数: 5

dff9.m

100 Bytes, 下载次数: 5

ff1.m

86 Bytes, 下载次数: 5

ff2.m

92 Bytes, 下载次数: 5

ff3.m

98 Bytes, 下载次数: 5

发表于 2007-5-18 19:33 | 显示全部楼层
算了一下,发现有奇异性出现,这个可能是模型的问题,而非程序的问题.
你自己再仔细检查一下. 以下是我的代码:
%%%%%%%%%%%%%%%%%%
function y=mydffun()
clear
global c r
format long

dmin=0.0;
dmax=5;
qmin=0.0;
qmax=5;

c=[0.1;0.3;0.2];
n=0;
r=10;

while  n<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=[f1;f2;f3];

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=[abs((nc(1)-c(1))/c(1));abs((nc(2)-c(2))/c(2));abs((nc(3)-c(3))/c(3))];
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

查看全部评分

 楼主| 发表于 2007-5-22 21:24 | 显示全部楼层
谢谢。程序差不多了。看来模型是有点问题。。。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-24 15:19 , Processed in 0.069069 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表