Подсчёт спектральной плотности и численное интегрирование - C#

Узнай цену своей работы

Формулировка задачи:

Пытаюсь посчитать спектральную плотность используя преобразование Фурье. Добрые люди подсказали что можно интеграл формулы(которая на рисунке ниже),находить методом численного интегрирования,я выбрал метод Симпсона. но у меня вопрос. в функции
public double fun
мне передавать 1 или 3 параметра? Дело в том что в формуле ещё существуют 3-4 параметра,это j,w,t,f; Причём j,w,f я получаю в ходе решения. Предусматривает ли метод Симпсона работу с 3-мя параметрами? И 2-ой вопрос. j это комплексная мнимая единица(но я решил её в цикл для пробы включить и она у меня идёт по циклу
j <= nmax/2;
А мне надо в return вписать формулу где применяется переменная j. Можно ли как нибудь эту переменную в формулу подставить вне цикла?
public double func(double u)
        {
            double f, w;
            int t = 1;
            double j = 0;
            int nmax = 512;
            int U = Convert.ToInt32(textBox1.Text);
            int T = Convert.ToInt32(textBox2.Text);
            for (j = 0; j <= nmax/2; j++)
            {
                             
            }
            f = 1 / T;
            w = 2 * Math.PI * f;
            return U * Math.Exp(-j * w * t);
        }
 
        public void Simpson()
        {
            double x, y, h, s;
            int b = Convert.ToInt32(textBox2.Text);
            int a = 0;
            int n = 7;
            h = (b - a) / n;
            s = 0;
            x = a + h;
            while (x < b)
            {
                s = s + 4 * func(x);
                x = x + h;
                s = s + 2 * func(x);
                x = x + h;
            }
            s = h / 3 * (s + func(x) - func(x));         
            MessageBox.Show("Интеграл = {0}", Convert.ToString(s));
        }

Решение задачи: «Подсчёт спектральной плотности и численное интегрирование»

textual
Листинг программы
   public void frmEiler(int U,int T)
        {
                      double j = Math.Sqrt(-1);
            double f = 0,w = 0;
            int t = 1;
            f = 1 / T;
            w = 2 * Math.PI * f;
            Math.Exp(-j * w * t) = Math.Cos(w * t) + j * Math.Sin(t);
        }
 
        public double func1(double x1)
        {
 ///1-ая часть
            return;
        }
 
 
 
        public double func2(double x2)
        {
///2-ая часть
            return;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы