⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 program.cs

📁 神经网络实现电力预测
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace BpNetp2
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            //0.1399,0.1467,0.1567,0.1595,0.1588,0.1622,0.1611,0.1615,0.1685,0.1789,0.1790

            //double[,] p1 = new double[,] { { 0.05, 0.02 }, { 0.09, 0.11 }, { 0.12, 0.20 }, { 0.15, 0.22 }, { 0.20, 0.25 }, { 0.75, 0.75 }, { 0.80, 0.83 }, { 0.82, 0.80 }, { 0.90, 0.89 }, { 0.95, 0.89 }, { 0.09, 0.04 }, { 0.1, 0.1 }, { 0.14, 0.21 }, { 0.18, 0.24 }, { 0.22, 0.28 }, { 0.77, 0.78 }, { 0.79, 0.81 }, { 0.84, 0.82 }, { 0.94, 0.93 }, { 0.98, 0.99 } };
            //double[,] t1 = new double[,] { { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 } };
            //double[,] p1 = new double[,] { { 0.1399, 0.1467, 0.1567, 0.1595, 0.1588, 0.1622 }, { 0.1467, 0.1567, 0.1595, 0.1588, 0.1622, 0.1611 }, { 0.1567, 0.1595, 0.1588, 0.1622, 0.1611, 0.1615 }, { 0.1595, 0.1588, 0.1622, 0.1611, 0.1615, 0.1685 }, { 0.1588, 0.1622, 0.1611, 0.1615, 0.1685, 0.1789 } };
            //double[,] t1 = new double[,] { { 0.1622 }, { 0.1611 }, { 0.1615 }, { 0.1685 }, { 0.1789 } };
            double[,] p1 ={ { 530092, 518743, 545639, 536369, 535346, 542842, 710893, 651351, 603625, 616120, 595818, 614996 }, { 619545, 556173, 640618, 615509, 621767, 697324, 769248, 725557, 672379, 636799, 637711, 696441 }, { 673683, 604143, 677797, 660387, 693015, 778288, 854136, 862857, 738047, 712880, 710002, 801759 } };
            double[,] t1 ={ { 619545, 556173, 640618, 615509, 621767, 697324, 769248, 725557, 672379, 636799, 637711, 696441 }, { 673683, 604143, 677797, 660387, 693015, 778288, 854136, 862857, 738047, 712880, 710002, 801759 }, { 802749, 617591, 760841, 755752, 815786, 826137, 924236, 971697, 846841, 794861.2, 791652.23, 893961.285 } };

            BpNet bp = new BpNet(p1, t1);
            int study = 0;
            do
            {
                study++;
                if ( bp.e > 0.06|| study==1)
                {
                    bp.train1(p1, t1);
                }
                else
                {
                    bp.train2(p1, t1);

                }
                //bp.rate = 0.9 - (0.9 - 0.1) * study / 100000;
                Console.Write("第 " + study + "次学习: ");
                Console.WriteLine(" 均方差为 " + bp.e);

            } while (bp.e > 0.001 && study < 100000);
            Console.Write("第 " + study + "次学习: ");
            Console.WriteLine(" 均方差为 " + bp.e);
            bp.saveMatrix(bp.w, "w.txt");
            bp.saveMatrix(bp.v, "v.txt");
            bp.saveMatrix(bp.b1, "b1.txt");
            bp.saveMatrix(bp.b2, "b2.txt");

            //double[,] p2 = new double[,] { { 0.05, 0.02 }, { 0.09, 0.11 }, { 0.12, 0.20 }, { 0.15, 0.22 }, { 0.20, 0.25 }, { 0.75, 0.75 }, { 0.80, 0.83 }, { 0.82, 0.80 }, { 0.90, 0.89 }, { 0.95, 0.89 }, { 0.09, 0.04 }, { 0.1, 0.1 }, { 0.14, 0.21 }, { 0.18, 0.24 }, { 0.22, 0.28 }, { 0.77, 0.78 }, { 0.79, 0.81 }, { 0.84, 0.82 }, { 0.94, 0.93 }, { 0.98, 0.99 } };
            //double[,] p2 = new double[,] { { 0.1399, 0.1467, 0.1567, 0.1595, 0.1588, 0.1622 }, { 0.1622, 0.1611, 0.1615, 0.1685, 0.1789, 0.1790 } };
            double[,] p2 = new double[,] { { 802749, 617591, 760841, 755752, 815786, 826137, 924236, 971697, 846841, 794861.2, 791652.23, 893961.285 } };
            int aa = bp.inNum;
            int bb = bp.outNum;
            int cc = p2.GetLength(0);
            double[] p21 = new double[aa];
            double[] t2 = new double[bb];
            for (int n = 0; n < cc; n++)
            {
                for (int i = 0; i < aa; i++)
                {
                    p21[i] = p2[n, i];
                }
                t2 = bp.sim(p21);

                for (int i = 0; i < t2.Length; i++)
                {
                    Console.WriteLine(t2[i] + " ");
                }

            }

            Console.ReadLine();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -