您的位置:首页 > 编程语言 > C语言/C++

改进平方根法求解方程组(C语言)

2018-02-10 10:37 274 查看
编写用改进平方根法解方程组 的程序,并解下列方程组:



#include<stdio.h>
main()
{
float x[6],y[8];
int i;
float a[6][7]={0.5,-0.5,0,0,0,0,-1,
-0.5,1.5,-0.5,-0.25,0.25,0,0,
0,-0.5,1.5,0.25,-0.25,0,0,
0,-0.25,0.25,1.5,-0.5,0,0,
0,0.25,-0.25,-0.5,1.5,-0.5,0,
0,0,0,0,-0.5,0.5,0};
float b[8][9]={1.35,0.35,2.00,2.00,-0.35,-0.35,-1.00,2.00,2.00,
0.35,1.35,2.00,-1.00,-0.35,-0.35,2.00,2.00,2.00,
2.00,2.00,1.35,-0.35,1.00,2.00,-0.35,0.35,12.00,
2.00,-1.00,-0.35,1.35,2.00,2.00,0.35,-0.35,12.00,
-0.35,-0.35,1.00,2.00,1.35,0.35,2.00,2.00,2.00,
-0.35,-0.35,2.00,2.00,0.35,1.35,2.00,-1.00,2.00,
-1.00,2.00,-0.35,0.35,2.00,2.00,1.35,-0.35,2.00,
2.00,2.00,0.35,-0.35,2.00,-1.00,-0.35,1.35,2.00};

void ping(float*,int,float[]);
ping(a[0],6,x);
ping(b[0],8,y);
for(i=0;i<=5;i++)printf("x[%d]=%f\n",i,x[i]);
printf("\n");
for(i=0;i<=7;i++)printf("y[%d]=%f\n",i,y[i]);
}
//改进平方根法
void ping(float*u,int n,float x[])
{
int i,r,k;
for(r=0;r<=n-1;r++)
{
for(i=r;i<=n;i++)
for(k=0;k<=r-1;k++)
*(u+r*(n+1)+i)-=*(u+r*(n+1)+k)*(*(u+k*(n+1)+i));
for(i=r+1;i<=n-1;i++)
{
*(u+i*(n+1)+r)=*(u+r*(n+1)+i)/(*(u+r*(n+1)+r));
}
}
for(i=n-1;i>=0;i--)
{
for(r=n-1;r>=i+1;r--)
*(u+i*(n+1)+n)-=*(u+i*(n+1)+r)*x[r];
x[i]=*(u+i*(n+1)+n)/(*(u+i*(n+1)+i));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: