Как я могу решить эти уравнения?Использование команды fsolve в MATLAB
(-1.5/w)*sin(w*t) + 1.5*t - 0.45 = 0
Зная, что:
w = sqrt(10)
Спасибо за вашу помощь.
Как я могу решить эти уравнения?Использование команды fsolve в MATLAB
(-1.5/w)*sin(w*t) + 1.5*t - 0.45 = 0
Зная, что:
w = sqrt(10)
Спасибо за вашу помощь.
EDIT: Решение nrz является правильным.
Один из способов - явно вычислить функцию и построить график. Попробуйте использовать следующий код в Matlab.
w = sqrt(10);
t=(-100:0.01:100);
Пусть, R=(-1.5/w)*sin(w*t) + 1.5*t - 0.45;
Затем
plot(t,R,'k')
axis square;
grid on;
вы получите рис-1;
`При масштабировании ближе рядом с (0,0), вы увидите следующую структуру графа (рис-2).
Выше я привел численное решение этой проблемы. Хотя, есть еще один доступный метод (символическая алгебра) в Matlab. Но Matlab в первую очередь предназначен для численных вычислений и численного решения задач. Matlab очень неуместен и медленен для решения символических проблем. Хотя данный вопрос является очень маленькой проблемой, и в Matlab не будет никаких проблем с использованием символических вычислений, но все же это хорошая практика, чтобы сделать задачу численно в matlab и символически в математике/клене и т. Д.
Вы можете решить это уравнение группы из 2 уравнений таким образом:
solution = solve('w = sqrt(10)', '(-1.5/w)*sin(w*t) + 1.5*t - 0.45 = 0')
Чтобы проверить решение:
solution.t
ans =
0.59963230021859138687907507892006
solution.w
ans =
3.1622776601683793319988935444327
Чтобы подтвердить, что решение работает:
(-1.5/solution.w)*sin(solution.w*solution.t) + 1.5*solution.t - 0.45
ans =
0.0
Но в случае, если вам нужно решить символические уравнения в более крупной программе MATLAB (решение уравнения является лишь промежуточным шагом), вероятно, более удобно их решать с использованием MATLAB вместо вызова Mathematica/Maple/etc. – nrz
@nrz Ive обновил его. прочитайте первую строку моего ответа. :) – Abhinav