作者luckychild (兑现承诺)
看板C_and_CPP
标题[问题] 进不去while回圈
时间Tue Mar 3 21:05:30 2009
一下子找不到哪里弄错了 =.=
测试用的程式如下.谢谢指教了.
#include <iostream>
#include <cstdlib>
#include <vector>
#include <cmath>
#define gamma 2
using namespace std;
void solve(double tolerance, vector<vector<double> > &u,
vector<vector<double> > &rhs)
{
double AbsDelta=0.0;
while(AbsDelta>tolerance)
{
double J=-16+gamma*exp(u[1][1])*(1+u[1][1]);
double F=-16*u[1][1]+gamma*u[1][1]*exp(u[1][1])-rhs[1][1];
double delta=(-1)*F/J;
cout << "delta=" << delta << endl; //用来测试有无进入回圈
u[1][1]+=delta;
AbsDelta=abs(delta); //也许明显的错误是没定增量?
}
}
int main()
{
vector<vector<double> > u(3,vector<double>(3));
vector<vector<double> > rhs(3,vector<double>(3));
u[1][1]=5;
rhs[1][1]=5;
cout<< u[1][1] << endl;
solve(1.0e-7,u,rhs);
cout<< u[1][1] << endl;
system("pause");
return 0;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.120.11.75
1F:推 legnaleurc:0.0什麽时候才会大於0.002? XD 03/03 21:07
※ 编辑: luckychild 来自: 140.120.11.75 (03/03 21:09)
2F:→ luckychild:已修文 03/03 21:09
※ 编辑: luckychild 来自: 140.120.11.75 (03/03 21:10)
3F:推 legnaleurc:呣,我看不出来哪有有差耶 03/03 21:11
4F:→ james732:1.0e-7还是大於0吧...?? 03/03 21:12
5F:→ legnaleurc:要比0.0小不就只有负数吗? 03/03 21:12
6F:→ luckychild:干! 我耍笨 SORRY 03/03 21:14
7F:→ james732:上面这个推文让我笑了 XDDDD 03/03 21:14
8F:→ luckychild:在赶程式啦 慌了 =.= 03/03 21:16
9F:→ james732:我懂的 加油 XDDD 03/03 21:16
10F:推 whenyouregon:科科科…看到也囧了…XD 03/04 07:03