资源简介
二分法求解;.牛顿法求解;高斯消去法求解;雅可比迭代法求解;拉格朗日插值;牛顿插值;最小二乘法拟合;龙贝格方法计算积分;欧拉方法求解初值问题;
代码片段和文件信息
#include
#include
#include
using namespace std;
void twoFF()
{cout<<“所求方程为x*x*x-x*x-2*x+1=0\n“;
double ab;
cout<<“请输入求根区间:\n“;
cout<<“a=“;
cin>>a;
cout<<“b=“;
cin>>b;
double cd;
cout<<“请输入要求达到的精度:\n“;
cout<<“精度为“;
cin>>d;
cout<<“a=0\n“;
cout<<“b=1\n“;
int n=0;
while(c>d || c<-d)
{if((a*a*a-a*a-2*a+1)*((a+b)*(a+b)*(a+b)/8-(a+b)*(a+b)/4-a-b+1)>0){a=(a+b)/2;cout<<“a=“<else {b=(a+b)/2;cout<<“b=“<n++;
c=a-b;}
cout<<“迭代次数为“< }
void Newton()
{cout<<“求方程x*(x+1)*(x+1)-1=0在x=0.4附近的根\n“;
double x=0.4m;
double cd;
cout<<“请输入要求达到的精度:\n“;
cout<<“精度为“;
cin>>d;
cout<<“x=0.4\n“;
int n=0;
while(c>d || c<-d){m=x;
x = x -(x*(x+1)*(x+1)-1) /(3*x*x+4*x+1);
cout<<“x=“< c=m-x;
n++;}
cout<<“迭代次数为“< }
int n;
double a[100][101];
double m[100];
void changerow(int g)
{int ij;
if(a[g-1][g-1]==0)
{int k;
for(k=g;k {if(a[k][g-1]!=0)break;
}
for(j=0;j {m[j]=a[g-1][j];
a[g-1][j]=a[k][j];
a[k][j]=m[j];}
}
for(i=g;i m[i]=a[i][g-1]/a[g-1][g-1];
for(i=g;i for(j=g-1;j a[i][j]=a[i][j]-m[i]*a[g-1][j];
for(i=0;i {cout<<“\n“;
for(j=0;j printf(“ %2f“a[i][j]);
}
cout<<“\n“;
}
void GSXU()
{
printf(“输入方程个数:“);
cin>>n;
printf(“按行输入各个方程的系数:\n“);
int ij;
for(i=0;i for(j=0;j cin>>a[i][j];
for(i=0;i {cout<<“\n“;
for(j=0;j printf(“ %2f“a[i][j]);}
cout<<“\n“;
for(i=1;i {changerow(i);}
double x[100];
int r=n-1;
x[n-1]=a[n-1][n]/a[n-1][n-1];
double p=0q;
for(i=n-2;i>=0;i--)
{
for(j=n-1;j>=r;j--)
{q=a[i][j]*x[j];
p=p+q;
}
x[i]=(a[i][n]-p)/a[i][i];
r--;
p=0;}
printf(“方程组解为“);
cout<<“X=“<<“(“;
for(i=0;i cout< cout< cout<<“)“< }
void Jacobi()
{double a[4][4] x1[100]x2[100]x3[100];
x1[0]=0;x2[0]=0;x3[0]=0;
printf(“按行输入三元方程的各个系数:\n“);
int ij;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
cin>>a[i][j];
x1[1]=a[0][3]/a[0][0];
x2[1]=a[1][3]/a[1][1];
x3[1]=a[2][3]/a[2][2];
double c=1;
for(i=1;c>0.000001;i++)
{
x1[i]=x1[1]-a[0][1]/a[0][0]*x2[i-1]-a[0][2]/a[0][0]*x3[i-1];
x2[i]=x2[1]-a[1][0]/a[1][1]*x1[i-1]-a[1][2]/a[1][1]*x3[i-1];
x3[i]=x3[1]-a[2][0]/a[2][2]*x1[i-1]-a[2][1]/a[2][2]*x2[i-1];
c=fabs(x1[i]-x1[i-1])+fabs(x2[i]-x2[i-1])+fabs(x3[i]-x3[i-1]);
cout<}
}
double x[100]y[100];
void input(int n)
{
int i;
for(i=0;i {cout<<“x[“<scanf(“%lf“&x[i]);
cout<<“y[“<scanf(“%lf“&y[i]);}
}
void Lagrange()
{
int m;
printf(“输入点的个数:\n“);
scanf(“%d“&m);
double v;
printf(“输入所求X的值:\n“);
scanf(“%lf“&v);
input(m);
int ij;
double ab=1cd=1ef=1gh=1pq=0;
for(i=0;i { for(j=0;j {a=x[i]-x[j];
b=b*a;
c=v-x[j];
d=d*c;}
for(j=i+1;j {e=x[i]-x[j];
f=f*e;
g=v-x[j];
h=h*g;}
p=d*h*y[i]/b/f;
cout<<“L“<
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6710 2007-01-14 19:57 常用数值计算方法c++源代码实现\wyl.cpp
文件 3723 2011-10-11 09:19 常用数值计算方法c++源代码实现\wyl.dsp
文件 74752 2011-10-11 09:19 常用数值计算方法c++源代码实现\Debug\vc60.idb
文件 110592 2011-10-11 09:19 常用数值计算方法c++源代码实现\Debug\vc60.pdb
文件 2079664 2011-10-11 09:19 常用数值计算方法c++源代码实现\Debug\wyl.pch
文件 306473 2011-10-11 09:19 常用数值计算方法c++源代码实现\Debug\wyl.obj
文件 831928 2011-10-11 09:19 常用数值计算方法c++源代码实现\Debug\wyl.ilk
文件 589938 2011-10-11 09:19 常用数值计算方法c++源代码实现\Debug\wyl.exe
文件 1131520 2011-10-11 09:19 常用数值计算方法c++源代码实现\Debug\wyl.pdb
文件 33792 2011-10-11 09:21 常用数值计算方法c++源代码实现\wyl.ncb
文件 1165 2011-10-11 09:19 常用数值计算方法c++源代码实现\wyl.plg
文件 48640 2011-10-11 09:21 常用数值计算方法c++源代码实现\wyl.opt
文件 531 2011-10-11 09:21 常用数值计算方法c++源代码实现\wyl.dsw
目录 0 2011-10-11 09:19 常用数值计算方法c++源代码实现\Debug
目录 0 2011-10-11 09:18 常用数值计算方法c++源代码实现
----------- --------- ---------- ----- ----
5219428 15
评论
共有 条评论