91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 14.97MB
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發布日期: 2023-07-31
  • 語言: C/C++
  • 標簽: C++??求解??數值??

資源簡介

用C/C++語言實現如下函數: 1. bool lu(double* a, int* pivot, int n);矩陣的LU分解。 假設數組anxn在內存中按行優先次序存放。此函數使用高斯列選主元消去法將其就地進行LU分解。pivot為輸出參數,pivot[0,n) 中存放主元的位置排列。 函數成功時返回false,否則返回true。 2. bool guass(double const* lu, int const* p, double* b, int n);求線代數方程組的解 設矩陣Lunxn為某個矩陣anxn的LU分解,在內存中按行優先次序存放。p[0,n)為LU分解的主元排列。b為方程組Ax=b的右端向量。此函數計算方程組Ax=b的解,并將結果存放在數組b[0,n)中。 函數成功時返回false,否則返回true。 3. void qr(double* a, double* d, int n);矩陣的QR分解 假設數組anxn在內存中按行優先次序存放。此函數使用HouseHolder變換將其就地進行QR分解。 d為輸出參數,d [0,n) 中存放QR分解的上三角對角線元素。 4. bool householder(double const*qr, double const*d, double*b, int n); 求線代數方程組的解 設矩陣qrnxn為某個矩陣anxn的QR分解,在內存中按行優先次序存放。d [0,n) 為QR分解的上三角對角線元素。b為方程組Ax=b的右端向量。 函數計算方程組Ax=b的解,并將結果存放在數組b[0,n)中。 函數成功時返回false,否則返回true。

資源截圖

代碼片段和文件信息

#include?“stdafx.h“

bool?lu(double*?a?int*?pivot?int?n)
{
for(int?i=0;i int?pivotIndex=(n+1)*i;//當前主元位置
int?maxCol=i;//當前主元所在行
for(int?j=0;j int?indexAdd=(j+1)*n;
if(fabs(*(a+maxCol*n+i)) maxCol=i+j+1;
}//選取列主元
}
if(*(a+pivotIndex)==0){
break;
return?true;
}//主元為0,行列式為0,不可分解

if(maxCol!=i){
????for(int?k=0;k ????double?doubleTemp;
????doubleTemp=*(a+i*n+k);
????*(a+i*n+k)=*(a+maxCol*n+k);
????*(a+maxCol*n+k)=doubleTemp;
????}//兩行互換

//更新主元向量
????int?intTemp=*(pivot+i);
????*(pivot+i)=*(pivot+maxCol);
????*(pivot+maxCol)=intTemp;
}

//消去
for(int?j=0;j double?multiple=*(a+pivotIndex+n*j+n)/(*(a+pivotIndex));
*(a+pivotIndex+n*j+n)=multiple;
for(int?k=1;k ????*(a+pivotIndex+n*j+n+k)-=(*(a+pivotIndex+k))*multiple;
}
}
}
return?false;
}

void?convert_b_lu(double?const*?ludouble*?bint?const*?pivotint?n){
//變換右端向量,根據消元過程刷新右端向量
for(int?i=0;i for(int?j=0;j *(b+(*(pivot+i+j+1)))-=(*(b+(*(pivot+i))))*(*(lu+(n+1)*i+n*(j+1)));
}
}

//根據主元選擇過程變換右端向量元素位置
double*?temp=new?double[n];
for(int?i=0;i *(temp+i)=*(b+i);
}
for(int?i=0;i *(b+i)=*(temp+(*(pivot+i)));
}

delete[]?temp;
}

bool?guass(double?const*?lu?int?const*?p?double*?b?int?n)
{
convert_b_lu(lubpn);
????*(b+n-1)=(*(b+n-1))/(*(lu+n*n-1));
//迭代
for(int?i=5;i>0;i--){
for(int?j=0;j *(b+i-1)=(*(b+i-1))-(*(b+n-j-1))*(*(lu+(n+1)*(i-1)+j+1));
}
*(b+i-1)=(*(b+i-1))/(*(lu+(n+1)*(i-1)));
}
return?false;
}

void?qr(double*?a?double*?d?int?n)
{
double?temp1temp2;
double*?temp=new?double[n];
for(int?i=0;i????{
temp1=0;
????????for(int?j=i;j ????temp1+=(*(a+j*n+i))*(*(a+j*n+i));

if(*(a+n*i+i)>0)
temp1=-sqrt(temp1);
????else?
????????temp1=sqrt(temp1);


????????*(d+i)=temp1;//存儲主元
????????*(a+i*n+i)-=temp1;

temp2=0;
for(int?j=i;?j<=n-1;?j++)
????????????temp2+=(*(a+n*j+i))*(*(a+n*j+i));
temp2=?sqrt(temp2);
for(int?j=i;?j<=n-1;?j++)
????*(a+n*j+i)=(*(a+n*j+i))/temp2?;

????????for(int?j=i+1;j ?{?
? ????for(int?k=i;?k ????{
???? temp2=0?;
???? for(int?l=i;?l???? ?????temp2+=(*(a+n*k+i))*(*(a+n*l+i))*(*(a+n*l+j));
????????*(temp+k)=(*(a+k*n+j))-2*temp2;
???? }
???? for(int?k=i;?k ??????*(a+k*n+j)=*(temp+k);
? ?}
?????}
?????*(d+n-1)=*(a+n*n-1);?
?delete[]?temp;
}

bool?householder(double?const*qr?double?const*d?double*b?int?n)
{
double?doubleTemp;
double*?temp=new?double[n];

for(int?i=0;?i {
for(int?j=i;?j {
doubleTemp=0;
for(int?k=i;k doubleTemp+=(*(qr+n*k+i))*(*(qr+n*j+i))*(*(b+k));
*(temp+j)=*(b+j)-2*doubleTemp;
}
for(int?j=i;?j *(b+j)=*(temp+

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????75776??2013-04-18?17:37??Task\Debug\Task.exe

?????文件?????424560??2013-04-18?17:37??Task\Debug\Task.ilk

?????文件????1256448??2013-04-18?17:37??Task\Debug\Task.pdb

?????文件???36372480??2013-04-13?18:57??Task\ipch\task-2269b20e\task-efa8f59f.ipch

?????文件???36438016??2013-04-18?17:35??Task\ipch\task-6e8e7c8e\task-efa8f59f.ipch

?????文件???????4006??2013-04-18?17:37??Task\Task\Debug\cl.command.1.tlog

?????文件??????19726??2013-04-18?17:37??Task\Task\Debug\CL.read.1.tlog

?????文件???????1318??2013-04-18?17:37??Task\Task\Debug\CL.write.1.tlog

?????文件?????113893??2013-04-18?17:37??Task\Task\Debug\functions.obj

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link-cvtres.read.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link-cvtres.write.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link-rc.read.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link-rc.write.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link.13556-cvtres.read.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link.13556-cvtres.write.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link.13556-rc.read.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link.13556-rc.write.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link.13556.read.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link.13556.write.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link.14760-cvtres.read.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link.14760-cvtres.write.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link.14760-rc.read.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link.14760-rc.write.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link.14760.read.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link.14760.write.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link.1596-cvtres.read.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link.1596-cvtres.write.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link.1596-rc.read.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link.1596-rc.write.1.tlog

?????文件??????????2??2013-04-18?17:37??Task\Task\Debug\link.1596.read.1.tlog

............此處省略81個文件信息

評論

共有 條評論