登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
请高手帮我看看这个牛顿迭代法求解数值相 ..
发帖
回复
1083
阅读
3
回复
[
求助
]
请高手帮我看看这个牛顿迭代法求解数值相速度的程序
离线
learnerlcy
UID :43237
注册:
2009-10-07
登录:
2014-01-15
发帖:
55
等级:
仿真一级
0楼
发表于: 2010-08-21 12:05:44
这个程序时按照葛德彪书上第43页的公式编写的。但是不知道为什么,迭代结果不对。[table=100%][tr][td]//这个程序用牛顿迭代法求解数值色散方程。具体算法请参见葛书43页!
m@F`!qY~Y\
#include <stdio.h>
S9D<8j^
#include <math.h>
FP`b>E qOH
#include <stdlib.h>
)Y0!~# `
#define DELTA_LAMBDA 0.2
=tn)}Y.<e
#define PI 3.1415926535
z}9(x.I
double function( const double, const double );
"'.UU$]d
int main()
9Cp-qA%t
{
r~8 $1"
double beta=1.0, beta1=0.0;
aQc leTb
double error;
beGa#JH,
double phi = 1.0;
Hqx-~hQO
FILE *fp;
E \EsWb
"ycJ:Xv49
fp = fopen("data.dat","w");
6=/F$|
while ( phi <= 360.0 )
nYSiS}?S.
{
RnE4<Cy
error = 1.0;
l0m-$/
while( fabs(beta - beta1) > 1e-6 )
fu ,}1Mq#
{
70nqD>M4
beta1 = beta - function(beta,phi);
n\D&!y[]F
beta = beta1;
n\'4
}
9YyLf ;
printf( "%lg %lg\n",phi,1.0/beta );
(OL4Ex' ]
fprintf( fp, "%lg %lg\n",phi,1.0/beta );
xml7Uarc
phi = phi + 1.0;
k5e;fA/w
beta=3.0;
}?i0 I
beta1=0.0;
zxl@(hd
}
,PW'#U:
fclose(fp);
uyWunpT
}
783,s_
double function( const double beta, const double phi )
o[w:1q7
{
@n /nH?L
double result, tmp;
ie95rZp
double A, B, C; //定义三个系数;
()?(I?II
double a = 0.5;
lgy<?LI\
C = (PI*DELTA_LAMBDA)*(PI*DELTA_LAMBDA);
/-'}q=M
A = PI*DELTA_LAMBDA*cos(phi);
'GWN~5
B = PI*DELTA_LAMBDA*sin(phi);
U9 s&
result = (sin(A*beta)*si ..
t%)7t9j
-d/ =5yxL
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
条评分
离线
learnerlcy
UID :43237
注册:
2009-10-07
登录:
2014-01-15
发帖:
55
等级:
仿真一级
1楼
发表于: 2010-08-21 12:06:41
这个程序时按照葛德彪书上第43页的公式编写的。但是不知道为什么,迭代结果不对,我自己实在是看不出个所以然来,请诸位高手指教!
共
条评分
离线
xingangahu
UID :22197
注册:
2008-11-28
登录:
2016-05-31
发帖:
900
等级:
积极交流五级
2楼
发表于: 2010-08-21 12:59:44
你的角度要转化为 弧度 不然 用 sin cos 是不对的
共
1
条评分
gwzhao
技术分
+1
积极参与讨论, 再接再厉!
2011-11-07
离线
learnerlcy
UID :43237
注册:
2009-10-07
登录:
2014-01-15
发帖:
55
等级:
仿真一级
3楼
发表于: 2010-08-21 13:57:35
回 2楼(xingangahu) 的帖子
哦,谢谢你,问题解决了,很感谢!
共
1
条评分
gwzhao
rf币
+3
积极参与论坛交流,欢迎继续参与本贴交流!
2011-11-07
发帖
回复