24小时热门版块排行榜    

查看: 1173  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

duwei789551

新虫 (小有名气)

[求助] 求助,两个uds变量相除就显示发散是什么问题? 已有1人参与

如题,需要计算保存为两个标量方程源项的比值。当只用这一段代码时
r=C_UDSI(c,c_thread,1)/C_UDSI(c,c_thread,0);
计算一开始就显示uds-1发散;

为避免发散出现,对分母做出限制
if (C_UDSI(c,c_thread,0)<=1.0)
{
        r=0.00000001;
}
else
{
        r=C_UDSI(c,c_thread,1)/C_UDSI(c,c_thread,0);
}
这样的话算到途中,uds迭代曲线将要出现的时候显示uds-1发散;

不加r=C_UDSI(c,c_thread,1)/C_UDSI(c,c_thread,0);这句话就没有问题,不知是什么原因
谢谢解答!
回复此楼
qq:2777094835
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qc12345

至尊木虫 (职业作家)

引用回帖:
3楼: Originally posted by duwei789551 at 2016-10-13 11:28:41
我的程序是这样的
标量方程1源相:
real s;
...
s=C_UDSI(c,c_thread,0;
if (C_UDSI(c,c_thread,0)<=1.0)
{
        r=0.00000001;
}
else
{
        r=C_UDSI(c,c_thread,1)/s;
}
J=pow(rou,2.0)/roul;
C_U ...

if (C_UDSI(c,c_thread,0)<=1.0)改成if (s<=1.0)
聽海
5楼2016-10-13 14:05:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

qc12345

至尊木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
duwei789551: 金币+100, ★★★★★最佳答案, 解决问题 2016-10-13 20:05:11
設s=C_UDSI(c,c_thread,0)再相除

» 本帖已获得的红花(最新10朵)

聽海
2楼2016-10-12 17:59:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duwei789551

新虫 (小有名气)

送红花一朵
引用回帖:
2楼: Originally posted by qc12345 at 2016-10-12 17:59:34
設s=C_UDSI(c,c_thread,0)再相除

我的程序是这样的
标量方程1源相:
real s;
...
s=C_UDSI(c,c_thread,0;
if (C_UDSI(c,c_thread,0)<=1.0)
{
        r=0.00000001;
}
else
{
        r=C_UDSI(c,c_thread,1)/s;
}
J=pow(rou,2.0)/roul;
C_UDSI(c,c_thread,0)=J;
C_UDMI(c,c_thread,0)=J;
dS[eqn]=0.0;
        return J;
源相方程2
real s;
...
s=C_UDSI(c,c_thread,0;
if (C_UDSI(c,c_thread,0)<=1.0)
{
        r=0.00000001;
}
else
{
        r=C_UDSI(c,c_thread,1)/s;
}
...
yihao=C_UDMI(c,c_thread,0)*r+C_UDSI(c,c_thread,0)*rou;
C_UDSI(c,c_thread,1)=yihao;
C_UDMI(c,c_thread,5)=yihao;
dS[eqn]=0.0;
return yihao;
改写成这样还是算到迭代曲线出现时发散,不知道有什么问题
qq:2777094835
3楼2016-10-13 11:28:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qc12345

至尊木虫 (职业作家)

???????:
3?: Originally posted by duwei789551 at 2016-10-13 11:28:41
??????????????
????????1???
real s??
...
s=C_UDSI(c,c_thread,0??
if (C_UDSI(c,c_thread,0)<=1.0)
{
        r=0.00000001;
}
else
{
        r=C_UDSI(c,c_thread,1)/s;
}
J=pow(rou,2.0)/roul??
C_U ...

???????,??message??printf?????P??г???????,????t?↖?}???????
聽海
4楼2016-10-13 14:00:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见