Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 20.01.2016
Сообщений: 9

Аппроксимация рядом Фурье

16.10.2017, 22:41. Показов 6249. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть задание на аппроксимацию исходных данных отрезком ряда Фурье
Исходные данные: массив координат Х и массив значений функции Y

Собственно вот, что получилось:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
function [] = approx ()
clear;
clc;
close all;
%исходные данные
x = 0:1:10;
y = [5 5 7 3 7 9 7 4 3 2 -3];
m = 11; %кол-во точек
T = 11;
n = 5;
%интервал аппроксимации с шагом 0.1
xgrid = 0:0.1:10;
ygrid = zeros(size(xgrid));
%инициализация и расчет
A = zeros(1, 6);
B = zeros(1, 6);
summAi = 0;
summBi = 0;
summ = 0;
 
for i = 0:5
    for k = 0:m-1
        summAi = summAi + y(k+1)*cos(i*2*pi*k/m);
        summBi = summBi + y(k+1)*sin(i*2*pi*k/m);
    end
    A(i+1) = (2/m)*summAi;
    B(i+1) = (2/m)*summBi;
end
 
for k = 1:length(xgrid)
    for i = 2:n
        summ = summ + A(i)*cos(i*2*pi*xgrid(k)/T) + B(i)*sin(i*2*pi*xgrid(k)/T);
    end
    ygrid(k) = A(1)/2 + summ;
end
plot(xgrid, ygrid)
hold on
plot(x, y, 'bo')
end
Но получается далеко не совсем то, что нужно
Подскажите в чем может быть проблема, вроде делал все по формулам..
Миниатюры
Аппроксимация рядом Фурье   Аппроксимация рядом Фурье  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.10.2017, 22:41
Ответы с готовыми решениями:

Аппроксимация переодической функции рядом Фурье
В общем дело такое, задали мне курсовой написать по теме аппроксимация переодической функции рядом Фурье. И передо мной встало куча...

Представить ЭДС источника рядом Фурье
Добрый вечер. Необходимо представить ЭДС источника рядом Фурье в MathCAD. Вроде делаю всё правильно, однако баланс неверный..Видимо где-то...

Представить периодическую функцию, заданную на полупериоде, рядом Фурье по косинусам
Представить периодическую функцию f(x)= \begin{cases} & \text{ 0<=x<=3 } ,2x \\ & \text{ 3<x<=6 } ,6 \end{cases} заданную на...

4
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
16.10.2017, 22:55
Вам правильный код или найти ошибку?
Если правильный код, то в cftool
0
0 / 0 / 0
Регистрация: 20.01.2016
Сообщений: 9
16.10.2017, 23:58  [ТС]
Мне бы хотелось все-таки ошибку в моем коде найти

Добавлено через 1 час 0 минут
Одно понял точно, summ надо обнулять в теле цикла, иначе переменная накапливает все суммы, но вот в чем еще загвоздка не могу понять..
0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
17.10.2017, 07:18
Цитата Сообщение от hatsumi Посмотреть сообщение
summ надо обнулять в теле цикла, иначе переменная накапливает все суммы, но вот в чем еще загвоздка не могу понять..
Так обнулите суммы, как при определении коэффициентов разложения, так и при расчете результатов.
Кроме этого, коэффициенты разложения Вы помещаете в массивы размерностью от 1 до 6, а при расчете аппроксимирующей кривой используете коэффициенты из диапазона от 2 до 5.
И куда подевалась постоянная составляющая?
0
0 / 0 / 0
Регистрация: 20.01.2016
Сообщений: 9
17.10.2017, 12:01  [ТС]
Обнулил сумму в вычислении ряда, но не обнулил суммы в вычислении коэффициентов
Теперь все работает правильно, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.10.2017, 12:01
Помогаю со студенческими работами здесь

Разложить функцию в ряд Фурье и построить график суммы ряда Фурье
Здравствуйте. Дана задача: На интервале (-π;π) задана периодическая (с периодом 2π) функция f(x). Нужно разложить ее в ряд Фурье и...

Найти коэффиценты разложения в ряд Фурье, используя быстрое преобразование Фурье (БПФ)
Прошу помочь мне в нелеггкой задачке нужно для заданной на периоде 2∏ функции f(x) найти коэффициенты разложения в ряд Фурье, используя...

Найти вероятности событий: никакие два мужчины не будут сидеть рядом; все мужчины будут сидеть рядом
n мужчин и n женщин случайным образом рассаживаются в ряд на 2n мест. Найти вероятности следующих событий: A={никакие два мужчины не будут...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru