📄 yl1.cpp
字号:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
void main()
{
float x[30],y[30],m[30],h[29],u[29],v[29],d[30],b[30],r[29],l[30],s[30];
int i,N;
printf("Please input the number of the insert point\n");
scanf("%d",&N);
printf("Please input parametres of the insert point:\n");
for(i=0;i<N;i++)
{
scanf("%f",&x[i]);
scanf("%f",&y[i]);
}
printf("Please input intial facto:\n");
scanf("%f",&m[0]);
scanf("%f",&m[N-1]);
for(i=1;i<=N-1;i++)
h[i-1]=x[i]-x[i-1];
for(i=1;i<=N-2;i++)
{
u[i-1]=h[i-1]/(h[i-1]+h[i]);
v[i]=1-u[i-1];
}
u[N-2]=v[0]=0;
b[0]=b[N-1]=1;
for(i=1;i<N-1;i++)
b[i]=2;
d[0]=m[0];
d[N-1]=m[N-1];
for(i=1;i<=N-2;i++)
d[i]=6/(h[i-1]+h[i])*(((y[i+1]-y[i])/h[i])-((y[i]-y[i-1])/h[i-1]));
l[0]=b[0];
s[0]=d[0]/l[0];
for(i=1;i<N;i++)
{
r[i-1]=v[i-1]/l[i-1];
l[i]=b[i]-u[i-1]*r[i-1];
s[i]=(d[i]-u[i-1]*s[i-1])/l[i];
}
m[N-1]=s[N-1];
for(i=N-2;i>=0;i--)
m[i]=s[i]-r[i]*m[i+1];
for(i=0;i<N;i++)
printf("%f\n",m[i]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -