| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 694 人关注过本帖
标题:[求助]请教迭代法的问题
取消只看楼主 加入收藏
guiban
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-3-31
收藏
 问题点数:0 回复次数:1 
[求助]请教迭代法的问题

小弟要编个程序来解一个句包含积分的方程,
想用迭代法.然而不知为何结果总是死循环,但就是得不到所要的数,
请大家有时间的话可不可以帮忙看下这段程序啊

图片附件: 游客没有浏览图片的权限,请 登录注册


附件是方程.

程序如下:
#include <math.h>
main() ;估计是在主程序的循环中出问题,但我总找不到
{double s0=0.5,s,a=0.001;
s=jf(s0);
while(fabs(s0-s)>0.01)
{printf("s=%f",s);
s0=s0+a;
}
printf("the final s si %f",s);
}


jf(double s0) ;程分子程序,是用求梯形面积和的办法积分的
{double sum_1=0,sum_2=0,x=0,a=0.001,i,j,f1,f2,f3,f4,s;

for(i=0;i<1000;i++)
{
f1=0.5*(3*x*x-1)*exp(s0*x*x);
x=x+a;
f2=0.5*(3*x*x-1)*exp(s0*x*x);
sum_1=sum_1+(f1+f2)*a*0.5;
}

x=0;
for(i=0;i<1000;i++)
{
f3=exp(s0*x*x);
x=x+a;
f4=exp(s0*x*x);
sum_2=sum_2+(f3+f4)*a*0.5;
}

s=sum_1/sum_2;

return(s);

}

[此贴子已经被作者于2006-3-31 17:31:39编辑过]

搜索更多相关主题的帖子: 迭代法 
2006-03-31 17:29
guiban
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-3-31
收藏
得分:0 

回二楼的:我试过在jf前面加上个"double"但在编译时出现错误.说类型不匹配.while循环语句我是想实现的功能是先给一个初值S0,然后将求得的S与S0比较,当两者之差小于0.01时,就认为这个S是方程的解,跳出循环打印S到屏幕上,不然就S0加a再循环。直到求出为止。这个算法不知是不是迭代法。请问主函数能不能实现这个功能?谢谢各位抽时间来看我的程序了!!!!

2006-04-01 13:17
快速回复:[求助]请教迭代法的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012160 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved