📄 ip_m.c
字号:
/* Note:Your choice is C IDE */
#include "stdio.h"
#include "math.h"
#include "Lescape.c"//追赶法求解三对角线性方程组
#include "Ip_back.c"//细分节点,回代求解
void main()
{
int i,j;
double Ip,t;
double m[13],r[13],b[13],a[37];
static double x[13]={0.00,4.74,9.50,19.00,38.00,57.00,76.00,95.00,114.00,133.00,152.00,171.00,190.00};
static double y[13]={0.00,5.32,8.10,11.97,16.15,17.10,16.34,14.63,12.16,9.69,7.03,3.99,0.00};
for(i=1;i<=11;i++)
{
m[i]=fabs(x[i+1]-x[i])/(fabs(x[i]-x[i-1])+fabs(x[i+1]-x[i]));
r[i]=1-m[i];
b[i]=(6/(fabs(x[i]-x[i-1])+fabs(x[i+1]-x[i])))*((y[i+1]-y[i])/fabs(x[i+1]-x[i])-(y[i]-y[i-1])/fabs(x[i]-x[i-1]));
}
b[0]=0;b[12]=0;a[0]=a[36]=2;a[1]=a[35]=0;
j=1;
for(i=1;i<=11;i++)
{
a[2*i+(j-1)]=r[i];
a[2*i+j]=2;
a[(2*i)+(j+1)]=m[i];
j=j+1;
}
Lescape(a,b,13);
printf("the X_array is:\n");
for (i=0;i<=12;i++)
printf("x(%d)=%13.7e\n",i,b[i]);
printf("\n");
printf("机翼曲线三次样条插值结果:");
printf("\n");
for(t=0;t<=190;t++)
{
Ip=Ip_back(x,y,b,13,t);
printf("x=%6.3f, y=%6.3f\n",t,Ip);
/*printf("%6.3f %6.6f\n",t,Ip);*/
/*printf("x=%6.3f, f(x)=%e\n",t,Ip);*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -