C#,数值计算——积分方程与逆理论Fred2的计算方法与源程序

编程入门 行业动态 更新时间:2024-10-10 06:19:32

C#,数值计算——积分方程与逆理论Fred2的计算方法与<a href=https://www.elefans.com/category/jswz/34/1768784.html style=源程序"/>

C#,数值计算——积分方程与逆理论Fred2的计算方法与源程序

1 文本格式

using System;

namespace Legalsoft.Truffer
{
    public abstract class Fred2
    {
        public readonly double a;
        public readonly double b;
        public readonly int n;
        public double[] t;
        public double[] f;
        public double[] w;

        public abstract double g(double x);
        public abstract double ak(double x, double t);

        public Fred2(double aa, double bb, int nn)
        {
            this.a = aa;
            this.b = bb;
            this.n = nn;
            this.t = new double[n];
            this.f = new double[n];
            this.w = new double[n];
            double[,] omk = new double[n, n];
            GaussianWeights.gauleg(a, b, t, w);
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    //omk[i, j] = (double)(i == j) - ak(t[i], t[j]) * w[j];
                    omk[i, j] = (i == j ? 1 : 0) - ak(t[i], t[j]) * w[j];
                }
                f[i] = g(t[i]);
            }
            LUdcmp alu = new LUdcmp(omk);
            alu.solve( f, f);
        }

        public double fredin(double x)
        {
            double sum = 0.0;
            for (int i = 0; i < n; i++)
            {
                sum += ak(x, t[i]) * w[i] * f[i];
            }
            return g(x) + sum;
        }
    }
}
 

2 代码格式

using System;namespace Legalsoft.Truffer
{public abstract class Fred2{public readonly double a;public readonly double b;public readonly int n;public double[] t;public double[] f;public double[] w;public abstract double g(double x);public abstract double ak(double x, double t);public Fred2(double aa, double bb, int nn){this.a = aa;this.b = bb;this.n = nn;this.t = new double[n];this.f = new double[n];this.w = new double[n];double[,] omk = new double[n, n];GaussianWeights.gauleg(a, b, t, w);for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){//omk[i, j] = (double)(i == j) - ak(t[i], t[j]) * w[j];omk[i, j] = (i == j ? 1 : 0) - ak(t[i], t[j]) * w[j];}f[i] = g(t[i]);}LUdcmp alu = new LUdcmp(omk);alu.solve( f, f);}public double fredin(double x){double sum = 0.0;for (int i = 0; i < n; i++){sum += ak(x, t[i]) * w[i] * f[i];}return g(x) + sum;}}
}

更多推荐

C#,数值计算——积分方程与逆理论Fred2的计算方法与源程序

本文发布于:2023-12-02 05:29:24,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1651786.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:源程序   方程   数值   计算方法   积分

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!