Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2016, 21:33   #1
schoolboy99
Пользователь
 
Регистрация: 11.02.2015
Сообщений: 57
По умолчанию Проблема с синтаксисом формулы

Пожалуйста проверьте синтаксис формулы(Программа где она применяется компилируется и работает)

Но синтаксис неправильный я перебрал много вариантов но не один не доводит до конца программу

Код:
public static Complex reverstrans(double U, double anguarFrequency, double T,int frc,int frc1)///Обратное преобразование Фурье
       {          
           NumericalIntegration integration = new NumericalIntegration();
           Complex u1 = GetSpectralDensity(U, anguarFrequency, T);
           Complex u2 = GetSpectralDensity(U, anguarFrequency, T);                   
           return (1 / (2 * Math.PI)) * integration.Calculate(t => u1.Real*Math.Cos(anguarFrequency * t)- u2.Imaginary* Math.Sin(anguarFrequency * t), -314, 314);       
       }
Вот методы которые вызваны в методе,который надо проверить,Calculate отвечает за интеграл

Код:
interface NumericalIntegrationRule
        {
            double Calculate(Func<double, double> func, double min, double max, double subintervalsCount);
        }

        class NumericalIntegration
        {
            public readonly NumericalIntegrationRule DefaultRule = null;
            public readonly int DefaultSubintervalsCount = 100;//100000

            public NumericalIntegration()
            {
                DefaultRule = new TrapezoidalRule();
            }

            public NumericalIntegration(NumericalIntegrationRule defaultRule)
            {
                DefaultRule = defaultRule;
            }

            public NumericalIntegration(NumericalIntegrationRule defaultRule, int defaultSubintervalsCount)
                : this(defaultRule)
            {
                DefaultSubintervalsCount = defaultSubintervalsCount;
            }

            public double Calculate(NumericalIntegrationRule rule, Func<double, double> func, double min, double max, double subintervalsCount)
            {
                return rule.Calculate(func, min, max, subintervalsCount);
            }

            public double Calculate(Func<double, double> func, double min, double max)
            {
                return Calculate(DefaultRule, func, min, max, DefaultSubintervalsCount);
            }
                
        }

        class TrapezoidalRule : NumericalIntegrationRule
        {
           public double Calculate(Func<double,double> func, double min, double max, double subintervalsCount)
            {
                double result = 0;
                double step = (max - min) / subintervalsCount;
                for (double i = min; i < max; i += step)
                    result += ((func(i) + func(i + step)) / 2) * step;
                return result;
            }

        }


        public static Complex GetSpectralDensity(double U, double anguarFrequency, double T)
        {
            NumericalIntegration integration = new NumericalIntegration();
            if (anguarFrequency == 0)// Учитываем деление на 0
                return new Complex(U * T, 0);
            return U * integration.Calculate(t => Math.Cos(anguarFrequency * t), 0, T) - Complex.ImaginaryOne * U * integration.Calculate(t => Math.Sin(anguarFrequency * t), 0, T);
        }

        public static double GetSpectralDensityOfAmplitude(Complex spectralDensity)
        {
            return Complex.Abs(spectralDensity);
        }
Изображения
Тип файла: jpg Безымянный1209.jpg (12.6 Кб, 86 просмотров)
schoolboy99 вне форума Ответить с цитированием
Старый 06.06.2016, 14:29   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Уважаемый. я начал знакомится с программой более детально и выявил одну ошибку шага (в прямом преобразовании, я так подозреваю и в обратном тоже). Я так понял, что пользователь вводит шаг времени 0,1 (см. фотографию), а программа считает с жестко заданным 0,01.

Для облегчения понимания логики программы я рассчитал интеграл только в одной точке (от 1 до 1).

Я так понял ошибка не принципиальная, но все же зачем тогда поле для ввода шага, если он не используется при расчете.


Уважаемый, я мог бы сам решать Вашу проблемму (в обратном преобразовании), но мне хотелось бы Вас подключить к поиску ошибки.

Как ты смотришь на то, чтобы поработать вместе?

От тебя много не надо - я всё покажу и расскажу. Ваши задания будут: проследи за той переменной, проследи за этой, скажи мне чему равна переменнаянайди в коде ф-цию такую-то. Анализировать буду я.

Я работаю безвозмездно.

schoolboy99, я думаю мы быстро одолеем Вашу проблемму.

schoolboy99 пойми выбранные тобой стратегии по решению проблеммы вы неэффективны: ждать решения на форуме или решать задачу методом тыка (и даже не научного).

Чтобы решить проблему нужно углубится внутрь программы, понять как она работает (по крайней мере только вначале кода).

Как я уже говорил: что делать покажу и расскажу.



Если заинтересован - сначала нужно синхронизировать время. Здесь банят за активное общение, поэтому будем работать у меня на канале Youtube в виде комментариев, например так (я общался с другим человеком и мы решали его проблемму):

https://www.youtube.com/watch?v=G-C2dn-Wg1k

Под тебя создам новое видео.

Кстате у ты зарегистрирован на Youtube?
ura_111 вне форума Ответить с цитированием
Старый 06.06.2016, 15:09   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Здесь банят за активное общение
не врите

Цитата:
поэтому будем работать у меня на канале Youtube в виде комментариев, например так (я общался с другим человеком и мы решали его проблемму):
просто захотели свой канал порекламить?

Цитата:
Кстате у ты зарегистрирован на Youtube?
Кстате у вас есть учебник русского языка?
p51x вне форума Ответить с цитированием
Старый 06.06.2016, 15:32   #4
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

[QUOTE=p51x;1611856] не врите

А за что тогда я получил желтую карточку (у меня в нарушениях можно посмотреть). Я пытался общаться с одним чуваком; и видать слишком активно общался (найди комментарий от Аватара):

http://www.programmersforum.ru/showt...=293858&page=4

После этого я решил все активное общение (специфика работы требует) выносить за пределы форума, но в тоже время оставлять возможность всем желающим следить за перепиской.


Кстате у вас есть учебник русского языка?

Сейчас я учусь печатать в слепую - отсюда курьезы (пальцы не знают где буквы расположены).

просто захотели свой канал порекламить?

На моём канале нет контента (не только развлекательного содержания, а вообще нет). А кому он тогда интересен? - Разве что людям, ищащим решения своей проблеммы.
ura_111 вне форума Ответить с цитированием
Старый 06.06.2016, 15:42   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

За флуд. Для чатовских сообщений "ты тут", "я тут" есть личка и список пользователей на главной.
p51x вне форума Ответить с цитированием
Старый 06.06.2016, 20:49   #6
schoolboy99
Пользователь
 
Регистрация: 11.02.2015
Сообщений: 57
По умолчанию

На канал к вам зайду в скором времени,завтра просто узнаю как с программой примут её или нет.
Это мой диплом просто

А теперь по программе
Понимаете Шаг 0,01 всегда должен быть так как прямое преобразование с шагом 0,01 будет строить заданный график и он будет правильный и совпадать с графиком по учебнику,на который меня ориентируют.
Если мы меняем шаг то график будет совсем другим и неправильным

В данном вопросе мне просто нужно чтобы проверили синтаксис моей формулы,которую я выложил потому что возможно мой синтаксис он и немного мешает работе программе.

Программа теперь компилируется и она считает,но сомнения в синтаксисе формулы

А у меня мало опыта работы с интегральными выражениями.

Последний раз редактировалось schoolboy99; 06.06.2016 в 20:51.
schoolboy99 вне форума Ответить с цитированием
Старый 07.06.2016, 05:32   #7
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Если надумаешь работать над твоей задачей вместе, то я создал видео у себя на канале, под ним можно будет общаться:

https://www.youtube.com/watch?v=poKo68fFLaI&edit=vd

Только нужно синхронизировать время (я не постоянно сижу на Youtube).
ura_111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с синтаксисом при создании БД в phpMyAdmin Антон Ос Помощь студентам 0 30.04.2013 15:32
Проблема с выбором формулы Evgenia27 Microsoft Office Excel 1 04.12.2012 13:21
проблема с синтаксисом types Молоток Общие вопросы Delphi 2 11.04.2011 13:36
Проблема с синтаксисом программы JustImba Общие вопросы C/C++ 2 25.12.2010 19:09
Проблема с синтаксисом? Geddar PHP 1 30.06.2008 16:44