1 文本格式
using System;
namespace Legalsoft.Truffer
{
public class Quad_matrix : UniVarRealMultiValueFun
{
private int n { get; set; }
private double x { get; set; }
public Quad_matrix(double[,] a)
{
this.n = a.GetLength(0);
double h = Math.PI / (n - 1);
Wwghts w = new Wwghts(h, n, this);
for (int j = 0; j < n; j++)
{
x = j * h;
double[] wt = w.weights();
double cx = Math.Cos(x);
for (int k = 0; k < n; k++)
{
a[j, k] = wt[k] * cx * Math.Cos(k * h);
}
++a[j, j];
}
}
public double[] funk(double y)
{
return kermom(y);
}
public double[] kermom(double y)
{
double[] w = new double[4];
if (y >= x)
{
double d = y - x;
double df = 2.0 * Math.Sqrt(d) * d;
w[0] = df / 3.0;
w[1] = df * (x / 3.0 + d / 5.0);
w[2] = df * ((x / 3.0 + 0.4 * d) * x + d * d / 7.0);
w[3] = df * (((x / 3.0 + 0.6 * d) * x + 3.0 * d * d / 7.0) * x + d * d * d / 9.0);
}
else
{
double x2 = x * x;
double x3 = (x2) * x;
double x4 = x2 * x2;
double y2 = y * y;
double d = x - y;
double clog = Math.Log(d);
w[0] = d * ((clog) - 1.0);
w[1] = -0.25 * (3.0 * x + y - 2.0 * clog * (x + y)) * d;
w[2] = (-11.0 * x3 + y * (6.0 * x2 + y * (3.0 * x + 2.0 * y)) + 6.0 * clog * (x3 - y * y2)) / 18.0;
w[3] = (-25.0 * x4 + y * (12.0 * x3 + y * (6.0 * x2 + y * (4.0 * x + 3.0 * y))) + 12.0 * clog * (x4 - (y2 * y2))) / 48.0;
}
return w;
}
}
}
2 代码格式
using System;
namespace Legalsoft.Truffer
{
public class Quad_matrix : UniVarRealMultiValueFun
{
private int n { get; set; }
private double x { get; set; }
public Quad_matrix(double[,] a)
{
this.n = a.GetLength(0);
double h = Math.PI / (n - 1);
Wwghts w = new Wwghts(h, n, this);
for (int j = 0; j < n; j++)
{
x = j * h;
double[] wt = w.weights();
double cx = Math.Cos(x);
for (int k = 0; k < n; k++)
{
a[j, k] = wt[k] * cx * Math.Cos(k * h);
}
++a[j, j];
}
}
public double[] funk(double y)
{
return kermom(y);
}
public double[] kermom(double y)
{
double[] w = new double[4];
if (y >= x)
{
double d = y - x;
double df = 2.0 * Math.Sqrt(d) * d;
w[0] = df / 3.0;
w[1] = df * (x / 3.0 + d / 5.0);
w[2] = df * ((x / 3.0 + 0.4 * d) * x + d * d / 7.0);
w[3] = df * (((x / 3.0 + 0.6 * d) * x + 3.0 * d * d / 7.0) * x + d * d * d / 9.0);
}
else
{
double x2 = x * x;
double x3 = (x2) * x;
double x4 = x2 * x2;
double y2 = y * y;
double d = x - y;
double clog = Math.Log(d);
w[0] = d * ((clog) - 1.0);
w[1] = -0.25 * (3.0 * x + y - 2.0 * clog * (x + y)) * d;
w[2] = (-11.0 * x3 + y * (6.0 * x2 + y * (3.0 * x + 2.0 * y)) + 6.0 * clog * (x3 - y * y2)) / 18.0;
w[3] = (-25.0 * x4 + y * (12.0 * x3 + y * (6.0 * x2 + y * (4.0 * x + 3.0 * y))) + 12.0 * clog * (x4 - (y2 * y2))) / 48.0;
}
return w;
}
}
}