计算机数值计算方法总结
计算机数值计算方法
电气信息工程学院
3090501067
黄柯玮
2011 年 1 月 11 日
第 1 页第 1 页
计算机数值计算方法总结
第一题
有方程f (x ) 2x 3x 4x 0 ,用牛顿迭代法,求f (x) 0 位于(1, 2) 的唯一实根
1 5
并要求 10 。
2
#include
#include
#define f(x) pow(2,x)+pow(3,x)-pow(4,x)
#define f1(x) pow(2,x)*log(2)+pow(3,x)*log(3)-pow(4,x)*log(4)
void main()
{double a=1.5,b,f0,f1;
FILE *p;
p=fopen("g:\\1.out","w");
f0=f(a);
f1=f1(a);
while(fabs(f0)>0.000005)
{b=a-f0/f1;
a=b;
f0=f(a);
f1=f1(a);
}
fprintf(p,"%f\n",a);
fclose(p);
}
输入:1.5
输出:1.507127
第二题
设AX B
5 7 9 10 1
(1) A 6 8 10 9 B 1
7 10 8 7 1
5 7 6 5 1
2x x 3x 5
1 2 3
(2) 3x1 6x2 2x3 9
4x 5x 3x 5
1 2 3
试用高斯-约旦消去法求方程组的解。
#include
#define n
void main()
{float a[n+1][n+2]={},c;
int k,i,j,l;
第 2 页第 2 页
计算机数值计算方法总结
FILE *p;
p=fopen("g:\\2.out","a");
for(k=1;k
{for(i=k+1,l=k;i
if(a[i][k]>a[l][k])
l=i;
if(a[l][k]==0) {fprintf(p,"@#$%!%$##@!\n");exit(0);}
if(l!=k)
for(j=1;j