Форум программистов, компьютерный форум, киберфорум
Наши страницы
Matlab
Войти
Регистрация
Восстановить пароль
 
Maxim_120791
0 / 0 / 0
Регистрация: 03.03.2013
Сообщений: 9
#1

Рассчет кусочной функции. - Matlab

03.03.2013, 18:46. Просмотров 821. Ответов 2
Метки нет (Все метки)

Здравствуйте! Начал потихоньку изучать Matlab. Возник вопрос, а как строить графики функций, имеющих условия на интервале распространения. Например, вот такой, чтобы вы поняли о чём я (если неграмотно сформулировал вопрос, см. картинку).
P.S. Если можно, объясните доступней, ибо реально только начал изучение, и мало что понимаю пока что.
P.P.S. Был бы признателен за примеры.
0
Миниатюры
Рассчет кусочной функции.  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2013, 18:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Рассчет кусочной функции. (Matlab):

Построить график кусочной функции
заодно помогите разобраться выдает ошибку x1= y1=(x.*x)+3 x2=...

Пересечение прямой и кусочной функции
Здравствуйте! У меня задана кусочная функция y1=a(x-x3)^2+b1, x \in ...

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

Построить график кусочной функции
Ребята это будет выглядеть так? x=-100:0 f1=x plot(f1,x) x2=0.0001:pi...

Как записать функцию, которая будет строить график кусочной функции
День добрый. Подскажите пожалуйста как записать функцию, которая будет строить...

Сделать рассчет для двумерного случая.
Здравствуйте! Подскажите пожалуйста как будет выглядеть код, если х будет не...

2
Зосима
4915 / 3284 / 308
Регистрация: 02.04.2012
Сообщений: 6,191
Записей в блоге: 15
Завершенные тесты: 1
04.03.2013, 09:58 #2
Дружочек, для этого есть два пути
Вариант 1 - влоб:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
T = 10; 
ksi = 0.4;
w = 0:0.01:1;
for i = 1:length(w)
   if w<=1/T
       fi(i) = -atan( (2*ksi*T*w(i))/(1- T^2*w(i)^2) );
   else
       fi(i) = -pi-atan( (2*ksi*T*w(i))/(1- T^2*w(i)^2) );
   end
end
plot(w,fi)
Тут вроде нет ничего заумного: пробегаем по всем значениям w, проверяем условие и считаем по нужной формуле.

И второй вариант, более изящный и более быстый:
Matlab M
1
2
3
4
5
6
T = 10; 
ksi = 0.4;
w = 0:0.01:1;
fi = -atan(2*ksi*T*w./(1- T^2*w.^2)).*(w<=1/T) + ...
   (-pi-atan(2*ksi*T*w./(1- T^2*w.^2))).*(w>1/T);
plot(w,fi)
Здесь ключевую роль играют выражения: (w<=1/T) и (w>1/T). Это логические вектора: там где условие выполняется будет 1, а где не выполняется - 0 поэтому пока частота меньше 1/T вторая полуфункция будет обнуляться, а первая будет без изменений, а потом наоборот! Смекаешь?

*кстать, для исключения скачков угла в арк-функциях в матлаб есть ф-ция unwrap
2
Maxim_120791
0 / 0 / 0
Регистрация: 03.03.2013
Сообщений: 9
04.03.2013, 15:35  [ТС] #3
Зосима, большое спасибо за помощь! Вы очень помогли.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2013, 15:35
Привет! Вот еще темы с решениями:

Табулирование кусочной функции
Зравствуйте. Прошу помочь с выполнением ргр по информатике. Саамому сделать...

обьединение кусочной функции
Здравствуйте, как записать такую кусочную функцию одним выражением? Это...

Табулирование кусочной функции
Вообще в С++ первый раз, до этого работал только в Паскале и то оч. давно было....

Программа кусочной функции
Написать программу


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru