資源簡介
這是數值分析中的反冪法代碼,有需要的可以下載試用

代碼片段和文件信息
#include?
#include?
#include?
#define?N?3
#define?D?0.005
double?Abs(double?x)
{
return?x?>=?0???x?:?-x;
}
double?Fan_two(double?x[])
{
double?sum?=?0;
int?i;
for?(i?=?0;?i? {
sum?+=?pow(x[i]2);
}
return?sqrt(sum);
}
void?*?Solve(double?(*A)[N]?double?*bdouble?*xdouble?(*T)[N]double?*tb)
{
double?y[N];
double?s[N];
double?sum?=?0;
double?temp;
double?max;
int?i?j?kt;
int?M[N];
for?(i?=?0;?i? {
for?(j?=?0;?j? T[i][j]?=?A[i][j];
}
for?(i?=?0;?i? tb[i]?=?b[i];
//計算數組U?L
for?(k?=?0;?k? {
//計算中間量//////////////////////////////
i?=?k;
while?(i? {
for?(t?=?0;?t?<=?k?-?1;?t++)
{
sum?+=?A[i][t]?*?A[t][k];
}
s[i]?=?A[i][k]?-?sum;
i++;
sum?=?0;
}
////////////////////////////////////////////
//選行號///////////////////////////////////////
max?=?Abs(s[k]);
M[k]?=?k;
for?(i?=?k+1;?i? {
if?(max? {
M[k]?=?i;
max?=?Abs(s[i]);
}
}
///////////////////////////////////////////////
//交換//////////////////////////////////////////////
if?(k?!=?M[k])
{
for?(t?=?0;?t?<=?k?-?1;?t++)
{
temp?=?A[k][t];
A[k][t]?=?A[M[k]][t];
A[M[k]][t]?=?temp;
}
for?(t?=?k;?t? {
temp?=?A[k][t];
A[k][t]?=?A[M[k]][t];
A[M[k]][t]?=?temp;
}
temp?=?s[k];
s[k]?=?s[M[k]];
s[M[k]]?=?temp;
}
////////////////////
//計算///////////////////
j?=?k?+?1;
i?=?k?+?1;
A[k][k]?=?s[k];
while?(1)
{
if?(k?==?N?-?1)
break;
if?(N??==?j)
break;
for?(t?=?0;?t?<=?k?-?1;?t++)
{
sum?+=?A[k][t]?*?A[t][j];
}
A[k][j]?=?A[k][j]?-?sum;
j++;
sum?=?0;
if?(i?==?N)
break;
A[i][k]?=?s[i]?/?A[k][k];
i++;
}
}
//求Qb/////////////////////////////
for?(k?=?0;?k? {
t?=?M[k];
temp?=?b[k];
b[k]?=?b[t];
b[t]?=?temp;
}
//////////////////////////////////////
//計算解向量
sum?=?0;
y[0]?=?b[0];
for?(i?=?1;?i? {
for?(t?=?0;?t?<=?i?-?1;?t++)
{
sum?+=?A[i][t]?*?y[t];
}
y[i]?=?b[i]?-?sum;
sum?=?0;
}
x[N-1]?=?y[N-1]?/?A[N-1][N-1];
for?(i?=?N?-?2;?i?>=?0;?i--)
{
for?(t?=?i+1;?t?<=?N-1;?t++)
{
sum?+=?A[i][t]?*?x[t];
}
x[i]?=?(y[i]?-?sum)?/?A[i][i];
sum?=?0;
}
for?(i?=?0;?i? {
for?(j?=?0;?j? A[i][j]?=?T[i][j];
}
for?(i?=?0;?i? b[i]?=?tb[i];
return?NULL;
}
void?main()
{
double?u[N]?=?{1.0?1.0?1.0};
double?A[N][N]?=?{6.0?-12.0?6.0?-21.0?-3.0?24.0?-12.0?-12.0?51};
double?T[N][N];
double?ty[N];
double?y[N];
double?ita;
double?bta?=?1;
double?sum?=?0;
double?temp?=?0;
int?ijk?=?0;
while?(Abs(1/bta?-?1/temp)?/?Abs(1/bta)?>?D)
{
printf(“k?=?%dbta?=?%lf\n“kbta);
for?(i?=?0;?i? {
pri
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????33792??2011-10-23?13:48??反冪法\Debug\vc60.idb
?????文件??????45056??2011-10-23?13:48??反冪法\Debug\vc60.pdb
?????文件?????217145??2011-10-23?13:48??反冪法\Debug\反冪法.exe
?????文件?????226700??2011-10-23?13:48??反冪法\Debug\反冪法.ilk
?????文件???????9472??2011-10-23?13:48??反冪法\Debug\反冪法.obj
?????文件?????223872??2011-10-21?21:32??反冪法\Debug\反冪法.pch
?????文件?????459776??2011-10-23?13:48??反冪法\Debug\反冪法.pdb
?????文件???????3643??2011-10-23?13:48??反冪法\反冪法.cpp
?????文件???????3403??2011-10-21?16:30??反冪法\反冪法.dsp
?????文件????????520??2011-10-21?16:51??反冪法\反冪法.dsw
?????文件??????41984??2011-10-23?13:48??反冪法\反冪法.ncb
?????文件??????48640??2011-10-23?13:48??反冪法\反冪法.opt
?????文件???????1233??2011-10-23?13:48??反冪法\反冪法.plg
?????目錄??????????0??2011-10-23?13:48??反冪法\Debug
?????目錄??????????0??2011-10-23?13:48??反冪法
-----------?---------??----------?-----??----
??????????????1315236????????????????????15
- 上一篇:基于51單片機的出租車計費系統
- 下一篇:天線的分類與選擇與全向天線
評論
共有 條評論