これらの式をどのように解決できますか?それを知っMATLABでfsolveコマンドを使用する
(-1.5/w)*sin(w*t) + 1.5*t - 0.45 = 0
:あなたの助けを
w = sqrt(10)
感謝。
これらの式をどのように解決できますか?それを知っMATLABでfsolveコマンドを使用する
(-1.5/w)*sin(w*t) + 1.5*t - 0.45 = 0
:あなたの助けを
w = sqrt(10)
感謝。
EDIT:nrzの解が正しいです。
1つの方法は、関数を明示的に評価し、グラフをプロットすることです。 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にはもう1つの方法(シンボリックな代数)があります。しかし、MATLABは主に数値計算や問題の数値解法のために作られています。 Matlabは非常に不適切であり、象徴的な問題解決のために遅いです。現在の質問は非常に小さな問題であり、Matlabでは記号的な計算を使っても何の問題もありませんが、MatlabやMathematica/Mapleなどで数値的に問題を行うのは良い方法です。
:
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プログラムの中で記号方程式を解く必要がある場合(方程式を解くことは中間段階に過ぎません)、Mathematica/Maple /などを呼び出す代わりにMATLABを使用して解く方が便利でしょう。 – nrz
@nrz Iveがそれを更新しました。私の返信の最初の行をお読みください。 :) – Abhinav