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

В точке есть неплавный переход, можно ли как то сгладить график

11.02.2018, 19:55. Показов 3204. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

не пугайтесь моего кода, занимались самодеятельностью, но так нужно
В точке x=0.85 есть неплавный переход, можно ли как то сгладить это дело? хотела скрыть крестиками, но немного видно.
Что посоветуете, господа?

Matlab M
1
2
3
4
5
6
7
8
function y = G(x)
a1 = 0.3475;
a2 = 0.31;
a3 = 0.068;
b = 1.3;
y = ((x>=-1.5)&(x<=0.2)).*((-a1.*x+a2.*x.^3-a3.*x.^5)-(-a1.*(x+b)+a2.*(x+b).^3-a3.*(x+b).^5)) + ...
    ((x>0.2)&(x<=1.5)).*(-0.068 .* x .^5 + 0.31 .* x.^3 -  0.3475.*x + 0);
end
Matlab M
1
2
3
4
5
6
x=-0.85:0.05:2.15;
x1=-1.5:0.05:-0.2;
w=(-(-0.068 .* x1 .^5 + 0.31 .* x1.^3 -  0.3475.*x1 + 0));
%plot(x,G(x-0.65), x1,w);
plot(x,G(x-0.65),'+b', x1-0.62,w,'+b');
grid on;
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.02.2018, 19:55
Ответы с готовыми решениями:

Как сгладить график функции?
Помогите сделать график более гладким. figure(2) y2=2*log(x).*sin(x); plot(x,y2,'b'), grid title('2*log(x)*sin(x)') xlabel('x'),...

Как сгладить график построенный по точкам в Mathcad Prime
Помогите научиться сглаживать графики в Mathcad Prime.

Как сгладить график из малого числа точек и нанести на него эти точки?
Возможно ли в Matlab как-нибудь сглаживать графики? А то у меня получается ломаная линия.. Или хотя бы просто точки как-нибудь нанести, а я...

23
 Аватар для Krasme
7240 / 5094 / 2149
Регистрация: 02.02.2014
Сообщений: 13,451
11.02.2018, 20:32
шаг сделать меньше
1
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
11.02.2018, 21:20
dvjpgvno, так как функция G(x) у вас кусочная, то и существует скачок в месте перехода
1
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
11.02.2018, 21:45
Вырезать из вектора данных те точки, которые соответствуют скачку
1
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
11.02.2018, 22:20
Цитата Сообщение от Nick07 Посмотреть сообщение
Вырезать из вектора данных те точки, которые соответствуют скачку
Всё равно излом останется. Чтобы сгладить его, придётся делать довольно сложные манипуляции.
1
0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 28
12.02.2018, 00:28  [ТС]
Всем спасибо!
придется скрыть это крестиками и надеяться, что никто не заметит

Добавлено через 2 минуты
Не думаю, что это мне по силам, я этот-то долго рисовала
0
 Аватар для Krasme
7240 / 5094 / 2149
Регистрация: 02.02.2014
Сообщений: 13,451
12.02.2018, 00:50
dvjpgvno, а в чем конкретно задание?
вижу, вы занимались подгонкой двух кусочных графиков... зачем? для чего? почему?
1
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
12.02.2018, 08:14
Цитата Сообщение от dvjpgvno Посмотреть сообщение
придется скрыть это крестиками и надеяться, что никто не заметит
А Вам как, правильно или гладко/красиво?
Если правильно, то plot
Если гладенько, то fit
1
0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 28
12.02.2018, 21:12  [ТС]
Цитата Сообщение от Krasme Посмотреть сообщение
dvjpgvno, а в чем конкретно задание?
вижу, вы занимались подгонкой двух кусочных графиков... зачем? для чего? почему?
Это из магнитной дефектоскопии. вкратце: есть катушка, есть дефектный участок. Водим по поверхности и где есть дефект, формируется некий выходной сигнал.
Просто мы вручную все это изобразили, посчитали и осталось только как-то в программе реализовать И вот я еле-еле "подогнала" можно сказать.

Добавлено через 6 минут
Цитата Сообщение от Nick07 Посмотреть сообщение
А Вам как, правильно или гладко/красиво?
Если правильно, то plot
Если гладенько, то fit
Я что-то ни разу не слышала про fit, это такая же команда, как и plot?
0
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
12.02.2018, 22:01
dvjpgvno, вы уж слишком общо описали задачу. Вопросы: почему этот сигнал описывается кусочной функцией и почему именно такое выражение для функции?
Цитата Сообщение от dvjpgvno Посмотреть сообщение
fit, это такая же команда, как и plot?
Нет, это команда нахождения параметров приближающей (аппроксимирующей) функции.
0
0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 28
12.02.2018, 22:21  [ТС]
У меня просто был вопрос о возможности сглаживания Спросили для чего все это-ответила вкратце.
Ну вот модель такая А то, что кусочно, я знаю, что это уже не сигнал.
0
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
13.02.2018, 06:41
Цитата Сообщение от dvjpgvno Посмотреть сообщение
У меня просто был вопрос о возможности сглаживания
В виде кусочной функции сглаживание весьма трудоёмко, стоит ли оно того?
0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
13.02.2018, 10:01
Все обсуждают, зачем надо сглаживание и как это сложно сделать.
А никто не обратил внимание, что в коде определения функции G скорее всего ошибка.

Цитата Сообщение от dvjpgvno Посмотреть сообщение
y = ((x>=-1.5)&(x<=0.2)).*((-a1.*x+a2.*x.^3-a3.*x.^5)-(-a1.*(x+b)+a2.*(x+b).^3-a3.*(x+b).^5)) + ...
((x>0.2)&(x<=1.5)).*(-0.068 .* x .^5 + 0.31 .* x.^3 - 0.3475.*x + 0);
второй диапазон задан неверно.
Данная реализация не является определением на одном участке одной части функции, а на другом участке(участках) другой части функции, здесь происходит подозрительное смешение диапазонов.
Возможно из-за этой ошибки потом и производится какое-то хитрое смещение диапазонов для маскировки
0
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
13.02.2018, 11:34
Цитата Сообщение от SSC Посмотреть сообщение
здесь происходит подозрительное смешение диапазонов
Не вижу тут смешения диапазонов. Один диапазон - от -1,5 до 0,2, второй диапазон - от 0,2 до 1,5. Никакого смешения не наблюдается.
И в точке 0,2 происходит скачок, потому что для одного куска значение функции в этой точке одно, а для другого куска значение получается с заметным смещением.
SSC, неужели вы думаете, что код никто не разбирал? Я даже другой составил, покороче.
0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
13.02.2018, 14:04
Centurio, а мне показалось что там должно было быть
((x>0.2)|(x<-1.5))
и тогда функция определена на диапазоне от - до + бесконечности с особой зоной в диапазоне от -1.5 до 0.2.
При этом можно подобрать величины a1 a2 a3 b такими, чтобы минимизировать скачек.
С другой стороны про сущность задачи совершенно нет информации, и поэтому все наши рассуждения это гадание на кофейной гуще
0
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
13.02.2018, 14:39
Цитата Сообщение от SSC Посмотреть сообщение
мне показалось что там должно было быть
((x>0.2)|(x<-1.5))
Это вряд ли. Во-первых, х задан именно в интервале от -1,5 до 1,5, поэтому смысла сравнения x<-1.5 нет. Во-вторых, суть не меняется, даже в случае, который вы предполагаете, всё равно до 0,2 функция будет вычисляться по одной формуле, а после 0,2 - по другой, и скачок останется.
1
 Аватар для Krasme
7240 / 5094 / 2149
Регистрация: 02.02.2014
Сообщений: 13,451
13.02.2018, 15:56
Лучший ответ Сообщение было отмечено dvjpgvno как решение

Решение

Цитата Сообщение от dvjpgvno Посмотреть сообщение
Просто мы вручную все это изобразили, посчитали и осталось только как-то в программе реализовать И вот я еле-еле "подогнала" можно сказать.
подогнав еще чуть-чуть...
Кликните здесь для просмотра всего текста
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function zxzx
clc; clf;
 
x=-0.85:0.001:2.15;
x1=-1.5:0.001:-0.33;
w=-(-0.068*x1.^5 + 0.31* x1.^3-0.3475*x1 + 0);
 
plot(x,G(x-0.65),'.r', x1-0.53,w,'.r'); hold on;
grid on;
end 
 
function y = G(x)
a1 = 0.3475;
a2 = 0.31;
a3 = 0.068;
b = 1.21;
y = (x>=-1.5&x<=0.2).*((-a1*x+a2*x.^3-a3*x.^5)-(-a1*(x+b)+a2*(x+b).^3-a3*(x+b).^5))+ ...
    (x>0.2&x<=1.5).*(-0.068*x.^5+0.31*x.^3-0.3475*x + 0);
end
1
0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 28
13.02.2018, 18:56  [ТС]
Обалдеть, я даже не ожидала! Спасибо большое, добрый человек!Добра Вам!
Теперь намнооого лучше, почти не видно скачка!

Добавлено через 1 минуту
Правда сигнал удваивается именно в нуле, ну это я подвину сама
0
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
13.02.2018, 19:16
У Krasme, конечно, своеобразное лукавство - сдвиг отчётов. Но если это не критично, то почему бы нет? Тогда предлагаю переделанный вариант кода Krasme.
Matlab M
1
2
3
4
5
6
7
8
clc; clf;
a=[-0.068 0 0.31 0 -0.3475 0];
x=-1.5:0.001:1.5;
x1=-1.5:0.001:-0.33;
w=polyval(-a,x1);
y=polyval(a,x)-(x<=0.2).*polyval(a,x+1.21);
plot(x,y,'.r', x1-0.53,w,'.r'); hold on;
grid on;
1
 Аватар для Krasme
7240 / 5094 / 2149
Регистрация: 02.02.2014
Сообщений: 13,451
13.02.2018, 19:23
Centurio, задача стояла - избавиться от скачка, сделать "функцию" гладкой.
Где лукавие? Слов про жесткость диапазона нет, зато появилось про "скачок в нуле".
Вы использовали встроенную команду MATLAB, не удивлюсь, если окажется, что надо писать программу на другом языке.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.02.2018, 19:23
Помогаю со студенческими работами здесь

Круглый Button - Можно как то сгладить Region
Можно как то сгладить Region? Вроде кнопка круглая но всё ровно торчат пиксели... Заранее спасибо

Как можно “сгладить” event onResize в Mozilla
У меня блок абсолютно позиционирован(использую css свойство fixed), при изменении размеров экрана браузера мне нужно менять координаты...

Сгладить график
Не могу понять как сгладить график, гуглил ничего путнего не нашел. Есть данные с лабораторной работы зависимости тока от частоты, но...

Сгладить график
Пользуюсь последними версиями данных библиотек, гуглил и смотрел поясняющие ролики,но все равно не понятно как это сделать. import numpy...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru