| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 607 人关注过本帖
标题:[求助]我自己改写了一个求解三次方程序,不能编译成功,望各位同人指点??????
只看楼主 加入收藏
momokill
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-10-28
收藏
 问题点数:0 回复次数:6 
[求助]我自己改写了一个求解三次方程序,不能编译成功,望各位同人指点??????

/* 牛顿迭代法 编程c语言
求下面方程的根x*x*x-E*x*x+A=0*/


#include <stdio.h>
#include <math.h>
#define MN 51
int RN=1;
double X0[MN],Y0[MN],Z0[MN],X1[MN],ERR[MN];
double A0=1.0,B0=3.0,EPS=0.4E-13;
int SHURUSHUJU()
{
float B,R,GN,GM,TN,TM,CM,I;
double A,D,E;
printf("CN:导线应力δn CM:导线应力δm\n");
printf("TN:温度tn? TM:温度tm\n");
printf("GN:导线比载gn GM:导线比载gm\n");
printf("I:线路档距L F:导线弧垂 f\n");
printf("B:弹性伸长系数β R:温度膨胀系数α\n");
printf("请按以下参数输入:\n");getch();
scanf("%f,%f,%f,%f",&B,&R,&GN,&GM);
scanf("%f,%f,%f,%f",&TN,&TM,&CM,&I);
A=I*I*GN*GN/24/B;
D=I*I*GM*GM/24/B/CM/CM;
E=CM-D-R/B*(TN-TM)
double f(double x){return x*x*x-E*x*x-A;}
double g(double x){return 3*x*x-2*E*x;}
}
int NEWTON()
{
int k;
if (f(A0)>0 ) X0[0]=A0;
else X0[0]=B0;
Y0[0]=f(X0[0]);
Z0[0]=g(X0[0]);
X1[0]=X0[0]-Y0[0]/Z0[0];
ERR[0]=fabs(X1[0]-X0[0]);
for(k=1;k<MN;k++)
{
X0[k]=X1[k-1];
Y0[k]=f(X0[k]);
Z0[k]=g(X0[k]);
X1[k]=X0[k]-Y0[k]/Z0[k];
ERR[k]=fabs(X1[k]-X0[k]);
if(ERR[k]<EPS)break;
}
RN=k+1;
return 0;
}

int ShowTable()
{
int K;
printf("===================================================\n");
printf(" K X0[K] Y0[K] Z0[K] ERR[K] \n");
printf("---------------------------------------------------\n");
for(K=0;K<RN;K++)
printf("\n %2d %10.6f %12.8f %12.8f %12.4e",K,X0[K],Y0[K],Z0[K],ERR[K]);
printf("\n--------------------------------------------------\n");
printf(" 解为=%12.8f",X0[RN-1]);
printf("\n==================================================\n");
return 0;
}
void main()
{
SHURUSHUJU()
NEWTON();
ShowTable();
}

我的邮箱ffg8435@163.com

搜索更多相关主题的帖子: 三次方 同人 EPS 牛顿 
2007-10-29 22:49
momokill
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-10-28
收藏
得分:0 
错误 liti.c 28: 表达式语法错在 SHURUSHUJU 函数中
警告 liti.c 30: 'E' 被赋值但却没有使用在 SHURUSHUJU 函数中
警告 liti.c 30: 'A' 被赋值但却没有使用在 SHURUSHUJU 函数中

以上编译错误消息,不知道有什么用????
2007-10-29 22:55
第二梦
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-10-29
收藏
得分:0 
不好意思帮不了你,我也看不懂,编程这东西我觉得有点难!
2007-10-29 22:58
Allul85
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-10-29
收藏
得分:0 
牛顿迭代法 忘记得差不多了

2007-10-29 23:17
Allul85
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-10-29
收藏
得分:0 
E=CM-D-R/B*(TN-TM)
double f(double x){return x*x*x-E*x*x-A;}
double g(double x){return 3*x*x-2*E*x;}
}
只发现这里E=CM-D-R/B*(TN-TM)后要加“;”吧?
3个“}”不知道你接哪的?

2007-10-29 23:21
Allul85
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-10-29
收藏
得分:0 
不好意思 看错了

2007-10-29 23:21
liuyxdn
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-10-30
收藏
得分:0 
有点头疼!
2007-10-30 07:44
快速回复:[求助]我自己改写了一个求解三次方程序,不能编译成功,望各位同人指点? ...
数据加载中...
 
   



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

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