⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yangtiao.c

📁 两种曲线拟合的算法
💻 C
字号:
#include <stdio.h>
chashang(float x[],float y[],int n)
{int i,j;
 for(i=1;i<n;i++)
	 for(j=n-1;j>=i;j--)
		 y[i]=(y[i]-y[i-1])/(x[j]-x[j-1]);
}
 
main()
{float x[20],y[20];
 float M[20],h[20],d[20],u[20],r[20];
 float a,b;
 int i,j,n,type;
 printf("请输入点的个数:");
 scanf("%d",&n);
 printf("\n");
 printf("请输入各个点的x,y值:\n");
 for(i=0;i<n;i++)
	 scanf("%f,%f",&x[i],&y[i]);
 for(i=0;i<n;i++)
	 h[i]=x[i+1]-x[i];
 printf("请输入边界问题类别:type=:");
 scanf("%d",&type);
 if(type==1)
 {   printf("请输入y'0,y'n:");
	 scanf("%f,y'%f",&a,&b);
     printf("\n");
	 r[0]=u[n-1]=1;
 }
 else
	 if(type==2)
	 {   
		 printf("请输入y''0,y''n:"); 
		 scanf("%f,%f",&a,&b);
	     printf("\n");
	     r[0]=u[n-1]=0;
	 }
 for(i=1;i<n-1;i++)
	 u[i]=1-r[i];
 chashang(x,y,n);
 if(type==1)
 {   d[0]=6*(y[1]-a)/h[0];
     d[n-2]=6*(b-y[n-1])/h[n-1];
	 for(i=1;i<n-2;i++)
		 d[i]=6*y[i+1];
 }
 else
	 if(type==2)
	 {
		 d[0]=2*a;
	     d[n-1]=2*b;
 }
 for(i=0;i<n-1;i++)
	 printf("%f  ",d[i]);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -