学习笔记

来源:互联网 发布:网络创世纪uo服务端 编辑:程序博客网 时间:2024/04/19 10:18

#define ll long long
#define cit(a) scanf("%d",&a)
#define cis(a) scanf("%s",a)
#define pit(a) printf("%d\n",a)
#defien pis(a) printf("%s\n",a)
/*  相关公式
S(x) = M[j]*(x[j+1]-x)^3/(6*h[j])+M[j+1]*(x-x[j])^3/(6*h[j])+
  (y[j]-M[j]*h[j]^2/6)*(x[j+1]-x)/h[j]+(y[j+1]-M[j+1]*h[j]^2/6)*(x-x[j])/h[j];
ps:h[j] = x[j+1]-x[j];
ps:u[j] = h[j-1]/(h[j-1]+h[j]), l[j] = h[j]/(h[j-1]+h[j]);
ps:d[j] = 6*fs[x[j-1],x[j],x[j+1]] = 6*(ff[x[j],x[j+1]]-ff[x[j-1],x[j]])/(h[j-1]+h[j]);
ps:d[j] = 6*fs[j-1][j][j+1] = 6*(ff[j][j+1]-ff[j-1][j])/(h[j-1]+h[j]);
ps:ff[i][j] = (f[j]-f[i])/(x[j]-x[i]);
 追赶法
ps: a=u,b=2,l=c,x=M,f=d
ps: B[1] = c[1]/b[1]; B[i] = c[i]/(b[i]-a[i]*B[i-1]); -> B[1-n]
ps: y[1] = f[1]/b[1]; y[i] = (f[i]-a[i]*y[i-1])/(b[i]-a[i]*B[i-1]);
ps: x[n] = y[n]; x[i] = y[i]-B[i]*x[i+1];
替换:
b[0] = l[0]/2; b[i] = l[i]/(2-u[i]*b[i-1]);
y[0] = d[0]/2; y[i] = (d[i]-u[i]*y[i-1])/(2-u[i]*b[i-1]);
M[n] = y[n]; M[i] = y[i]-b[i]*M[i+1];
ps:第一类边界条件: S'(x[0])=f'[0], S'(x[n])=f'[n]
 l[0]=1,d[0]=6*(ff[0][1]-f'[0])/h[0],u[n]=1,d[n]=6*(f'[n]-ff[n-1][n])/h[n-1];
ps:第二类边界条件: S"(x[0])=f"[0], S"(x[n])=f"[n]
 M[0]=f"[0],M[n]=f"[n],l[0]=u[n]=0,d[0]=2*f"[0],d[n]=2*f"[n]; 
*/

0 0