Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Matlab задача про дискретизацию заданой неприрывной функции здраствуйте, всё время удавалось найти ответы на непонятки в своих работах. а тут просто стопор и не пойму из-за чего... Виконати дискретизацію неперервної функції y=(〖sin〗^3 ax)/(ax+b) на заданому інтервалі з кроком ∆x а и в вводяться, интервал с шагом тоже. clc clear a = input('Введите значение а...'); b = input('Введите значение b...'); x0=input('Введите первое значение... https://www.cyberforum.ru/ matlab/ thread729114.html Matlab Разные значения достоверности аппроксимации
Есть данные. Делаю подгонку fit = fit(xdata, ydata, myfit); получаю результат среди которого вот что-то такое: sse: 1.4528 rsquare: 0.1105 dfe: 14 adjrsquare: -0.0165 rmse: 0.3221 далее делаю корреляцию в точках по Spearman и Pearson = corr(ydata,Ffit(xdata),'type', 'Spearman');
Matlab Написать файл-функцию, которая отображает элементы заданного вектора синими маркерами https://www.cyberforum.ru/ matlab/ thread729029.html
задача такова: Написать файл-функцию, которая отображает элементы заданного вектора синими маркерами, а максимальный элемент - красным и возвращает значение и номер максимального элемента. Отобразить в текстовом режиме Подскажите, плиз!!
Matlab Задача Коши для системы дифференциальных уравнений https://www.cyberforum.ru/ matlab/ thread728893.html
Всем доброго дня. Помогите пожалуйста с программированием в matlab. Решить задачу Коши для системы дифференциальных уравнений на отрезке и построить графики решений.
Matlab Задача Коши для дифференциального уравнения первого порядка y'(x) = F(x, y(x))
Всем доброго дня. Помогите пожалуйста с программированием в matlab. Решить задачу Коши для дифференциального уравнения первого порядка y'(x) = F(x, y(x)) , y(a) = f0 , на отрезке с точностью 10^(-8) и построить график решения y(x)
Matlab Найти и отобразить на графике точки экстремума функции z = f (x, y) в замкнутой области D Всем доброго дня. Помогите пожалуйста с программированием в matlab. Найти и отобразить на графике точки экстремума функции z = f (x, y) в замкнутой области D: https://www.cyberforum.ru/ matlab/ thread728868.html
Matlab Задача на нахождение максимума Всем доброго дня. Помогите пожалуйста с программированием в matlab. При подготовке к экзамену студент за t дней изучает t /(t + k) часть курса, а забывает а*t часть. Сколько дней нужно затратить на подготовку, чтобы была изучена максимальная часть курса, если k=1, а = 1/36. https://www.cyberforum.ru/ matlab/ thread728854.html Matlab Построить поверхность функции f(x,y) и вычислить интеграл
Всем доброго дня. Помогите пожалуйста с программированием в matlab. Построите поверхность функции f(x,y) и Вычислить интеграл.
Matlab Построите график функции f(x) и вычислить интеграл Всем доброго дня. Помогите пожалуйста с программированием в matlab. Построите график функции f(x) и вычислить интеграл. https://www.cyberforum.ru/ matlab/ thread728826.html Matlab Сделать визуализацию задачи и найти корни системы Сделать визуализацию задачи и найти корни системы. https://www.cyberforum.ru/ matlab/ thread728794.html
Matlab Определить частоту сигнала
Здравствуйте. С помощью какого элемента или преобразования в симулинке можно определить частоту сигнала - тока или напр (например, с выхода эл машины)?
Matlab Найти сумму элементов массива, расположенных до последнего положительного элемента https://www.cyberforum.ru/ matlab/ thread728341.html
Добрые люди ПОМОГИТЕ!!! Как найти сумму элементов массива, расположенных до последнего положительного элемента; Вот вектор a =
5243 / 3571 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
0

СЕКРЕТНО! Зловещая точка претыкания - Matlab - Ответ 3846088

12.12.2012, 19:00. Показов 89710. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Огромное число ошибок в MATLAB программах связано с отсутствием точки перед умножением,делением, степенью!

Поэтому, дружочек, в твоих же интересах ознакомиться с данным текстом до конца!

He пyтaй мaтpичнoe и пoэлeмeнтнoe yмнoжeниe/дeлeниe/cтeпeнь! Не забывай ставить точки!

Выражения a.*b, a./b, a.^b - этo пoэлeмeнтныe oпepaции! их зачастую и нужно использовать при работе с векторами!
Здесь особых премудростей нет, главное, чтобы совпадали длины и ориентация векторов, в результате получаем вектор такой же длинны и ориентации:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>> a = [1 2 3 4];
>> b = [3 5 4 1];
>> a.*b
 
ans =
 
     3    10    12     4
 
>> a./b
 
ans =
 
    0.3333    0.4000    0.7500    4.0000
 
>> a.^b
 
ans =
 
     1    32    81     4
Нужно помнить, что в результат вычисления ф-ций от массива, например sin(a), так же является массивом, той же длинны и той же ориентации, что и входная величина:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
>> a = [1 2 3 4];
>> sin(a)
 
ans =
 
    0.8415    0.9093    0.1411   -0.7568
>> b = [3;5;4];
>> sin(b)
 
ans =
 
    0.1411
   -0.9589
   -0.7568
А вот a*b, a/b, a^b - этo мaтpичныe oпepaции! (cм. пpaвилa yмнoжeния/дeлeния/cтeпeни матриц)
Эти операции требуют определеных свойств входных параметров, поэтому получаются следующие ошибки:
- при перемножении двух векторов-строк вылетает ошибка "размерности не совпадают":
>> a = 1:3 ;
>> b = [3 2 5];
>> a*b
??? Error using ==> mtimes
Inner matrix dimensions must agree.
- в степень можно возводить только квадратные матрицы, поэтому при возведении в степень вектора вылетает ошибка "матрица должна быть квадратной":
>> a = [1 2 3];
>> a^2
??? Error using ==> mpower
Matrix must be square.
- с делением происходит более гадкий вариант: при делении векора-строки на вектор-строку ошибка не вылетает, но в результате получается не массив, а одно число!!!, что часто приводит к неверным результатам!
Matlab M
1
2
3
4
5
6
7
>> a = [1 2 3];
>> b = [3 2 5];
>> a/b
 
ans = 
 
  0.5789
- при перемножении вектора-строки на вектор-столбец получаем число, что также может привести к неверным результатам.
Matlab M
1
2
3
4
5
6
7
>> a = [1 2 3];
>> b = [2;3;4];
>> a*b
 
ans =
 
    20
Результат равен сумме произведений элементов, иногда удобно использовать, кстати

- при перемножении вектора-столбца на вектор-строку получаем матрицу, что также может подпортить результат:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
>> x = [1;2;3;4;5];
>> a = [1 2 3];
>> x*a
 
ans =
 
     1     2     3
     2     4     6
     3     6     9
     4     8    12
     5    10    15
Здесь каждый столбец равен произведению столбца x на каждый элемент строки a, что тоже иногда очень может пригодиться!

Замечание:
При умножении числа на вектор нет разницы при использовании матричных и поэлементных операций! (Так как число - это то же матрица, только размером 1х1, не занл? )
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
>> a = 3;
>> b = [3, 5, 4];
>> a*b
 
ans =
 
     9  15  12
 
>> a.*b
 
ans =
 
     9  15 12
Поэтому при действиях с константами и элементами матриц(массивов) точки можно не ставить:
Matlab M
1
2
3
4
5
6
7
8
9
>> i = 3; % индекс
>> n = 0.5; % переменная-число
>> M = magic(5); % матрица 5х5
>> v = 1:10; % вектор
>> (2.54/M(1,i))*v(i+2)^n % так можно
 
ans =
 
    5.6796
Почему понадобилось дополнение
Ребятки, привет!
Благодарю всех за идеи и примеры! Откуда вообще та тема появилась и в чем была цель ее написания? Большое число новичков спотыкались именно на этой точке, которой нет в других ЯП, поэтому и упор был сделан именно на три действия *,/,^
(cо сложением и вычитанием все как-то понятней было: ошибся размером - получи ошибку. На момент написания 2013г таких хитрых вариантов сложения с разными размерностями, как привел в примере AlMih, не было)
За транспонирование я знал, но оно встречалось крайне редко, я не стал выносить его в отдельную тему. Что ж, пришло время дополнить:


Дополнение
* * *

Для маленьких и не очень фанатов работы с комплексными числами небесполезно будет запомнить, что в MATLAB операция транспонирования ( ' ) не так проста как кажется! Соль (с перцем) в том, что по умолчанию матлаб делает эрмитово сопряжение, т.е. кроме транспонирования меняет знак мнимой части!
Например:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
m=[4+1i, 6-3i] % исходный массив-строка
 
m =
   4.0000 + 1.0000i   6.0000 - 3.0000i
 
m' % эрмитово сопряжение, обрати внимание на знак мнимой части! 
 
ans =
   4.0000 - 1.0000i
   6.0000 + 3.0000i
 
m.' % классическое транспонирование, знак мнимой части НЕ изменился  
 
ans =
   4.0000 + 1.0000i
   6.0000 - 3.0000i
Разница лишь в маленькой незаметной точечке! Еще раз:
Операция без точки: ' - транспонирование с сопряжением, знак мнимой части меняется,
Операция с точкой: .' - обычное транспонирование, знак мнимой части НЕ меняется.
Но если в слове "комплексные" ты делаешь ударение на букву "о", и при дискриминанте меньше нуля для тебя корней нет, то не заморачивайся, пиши без точки, а сэкономленную энергию направь на что-то общеполезное, например, спасение мира!

Все люди равны... Теоретически, но в реальности кто-то все-равно ровнее. Так к примеру обладатели MATLAB версии R2017 и позже имеют уникальную сверхспособность складывать и вычитать вектора разных размерностей, причем безо всяких точек!
Смотри пример:
Matlab M
1
2
3
4
5
6
7
8
9
a = [1; 2; 3]; % столбец их 3 элементов
b = [4 5 6 7]; % строка из 4 элементов
r = a + b % сумма совершенно разных штуковин!
 
r =
 
     5     6     7     8
     6     7     8     9
     7     8     9    10
То есть каждый элемент вектора-столбца складывается со строкой и получаем на выходе матрицу!
Или еще пример сложения матрицы с векторами:
Matlab M
1
2
3
4
5
6
A = [ 1 2 3; 4 5 6 ]
b = [ 7 8 9 ]
c = [ 1; 2]
 
r1 = A + b
r2 = A + c
Также получаем в результате матрицы. Очевидно, что размерности векторов и матриц должны быть соответствующие.

Плохо это или хорошо? Без разницы! Но такую особенность тоже нужно иметь в виду, чтобы не получить ошибочный результат при отсутствии синтаксических ошибок!

Вернуться к обсуждению:
СЕКРЕТНО! Зловещая точка претыкания Matlab
39
Заказать работу у эксперта

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2012, 19:00
Готовые ответы и решения:

Дополнение к теме "СЕКРЕТНО! Зловещая точка претыкания"
Там не указаны некие операции, которые допускаются в матлабе и не являются вполне очевидными,...

Дана точка М (x, y). Присвоить z = 1, если точка внутри эллипса и z = 0, если точка вне эллипса
задачу паскаль абс Данная точка М (x, y). Присвоить z = 1, если точка внутри эллипса (смотрите...

Точка задана координатами.Определить попадает ли точка в заштрихованную область.
Точка задана координатами.Определить попадает ли точка в заштрихованную область.Вот рисунок к ней

компы не видят друг друга при прямом подключении wifi - точка-точка
Короче, суть вот в чём: создаю беспроводную сеть на одном компе, подключаюсь к ней с ноутбука или с...

0
12.12.2012, 19:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2012, 19:00
Помогаю со студенческими работами здесь

Описать структуры Шар и Точка; проверить, находится ли точка внутри заданного шара
Определить структуры, описывающие шар и точку в трехмерном пространстве. Составить и протестировать...

Дана точка с координатами (х,у) и заштрихованная область. Лежит ли точка внутри заштрихованной области?
Дана точка с координатами (х,у) и заштрихованная область. Лежит ли точка внутри заштрихованной...

Дана точка М( х,у ). проверить, лежит ли данная точка внутри закрашенной области, представленной на рисунке
Дана точка М( х,у ). проверить, лежит ли данная точка внутри закрашенной области, представленной на...

С клавиатуры вводится точка M с координатами [x ; y]. Вычислить, принадлежит ли введенная точка M заштрихованной области рисунка
Помогите плз задачку сделать

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru