数值分析C程序

这篇博客详细介绍了数值分析中的多种算法,并结合C程序进行了实现,包括埃特肯法、杜氏分解、二分法、分段线性插值、复合积分方法(梯形法与辛普森法)、改进欧拉法、简单迭代法、列主元消元法、龙贝格算法以及龙格-库塔方法等,是理解与应用数值计算的宝贵资源。
摘要由CSDN通过智能技术生成

I显示方法

#include <stdio.h>

#define HEIGHT 17

int main(void)
{
   

	int i=0;
	printf("\n\nIIIIIII\n");
	while (i<HEIGHT)
	{
   
		printf("  III\n");
		i++;
    }
	printf("IIIIIII\n\n\n");

	return 0;
}

埃特肯

#include<stdio.h>
#include<math.h>
float f(float a)
{
   float b;
 b=pow(2,-a);
 return b;
}

main()
{
   float x0,x1,e,y,z;
 int k;
 scanf("%f,%f",&x0,&e);
 for(k=0;k<100;k++)
  {
   y=f(x0);
   z=f(y);
   x1=x0-(y-x0)*(y-x0)/(z-2*y+x0);
   if(fabs(x1-x0)<e)
    {
   printf("%f",x1);
     break;
    }
   else x0=x1;
  }
}

杜氏分解法

#include<stdio.h>
#include<math.h>

main()
{
   int n,i,j,k,t,sum;
 float a[10][10],b[10],x[10],y[10];
 printf("the top exp is ");
 scanf("%d",&n);
 for(i=0;i<n;i++)
  for(j=0;j<n;j++)
   scanf("%d",&a[i][j]);
 for(i=0;i<n;i++)
  scanf("%d",&b[i]);
 for(i=1;i<n;i++)
  a[i][1]=a[i][1]/a[1][1];
   for(k=1;k<n;k++)
    {
   for(j=k;j<n;j++)
      {
   sum=0;
       for(t=0;t<k;t++)
	sum+=a[k][t]*a[t][j];
       a[k][j]=a[k][j]-sum;
      }
     if(k!=n-1)
      {
   for(i=k+1;i<n;i++)
	{
   sum=0;
	 for(t=0;t<k;t++)
	  sum+=a[i][t]*a[t][k];
	 a[i][k]=(a[i][k]-sum)/a[k][k];
	}
      }
    }
 y[0]=b[0];
 for(i=1;i<n;i++)
  {
   sum=0;
   for(k=0;k<i;k++)
    sum+=a[i][k]*y[k];
   y[i]=b[i]-sum;
  }
 x[n-1]=y[n-1]/a[n-1][n-1];
 for(i=n-2;i>=0;i--)
  {
   sum=0;
   for(k=i+1;k<n;k++)
    sum+=a[i][k]*x[k];
   x[i]=(y[i]-sum)/a[i][i];
  }
 for(i=0;i<n;i++)
  printf("%f\n",x[i]);
}

二分法

#include<stdio.h>
#
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值