how to solve this equation?
2 ビュー (過去 30 日間)
古いコメントを表示
(1+cost)(tcost-sint)=2K(sint^2), where k is a constant
0 件のコメント
採用された回答
Mohammad Abouali
2015 年 9 月 6 日
編集済み: Mohammad Abouali
2015 年 9 月 6 日
well a quick look at the equation, t=0 is always the solution regardless of the value of K.
However, if you want to solve these numerically you can choose an approach like below:
K=2;
fun=@(t) (1+cos(t)).*(t.*cos(t)-sin(t))-2*K*(sin(t).^2);
% or the following. Not sure which one you want.
% fun=@(t) (1+cos(t)).*(t.*cos(t)-sin(t))-2*K*(sin(t.^2));
Options=optimset(@fsolve);
Options.TolFun=1e-10;
[x,fval,exitflag,output] = fsolve(fun,1,Options)
x =
1.4560e-04
fval =
-8.4804e-08
exitflag =
1
output =
iterations: 12
funcCount: 26
algorithm: 'trust-region-dogleg'
firstorderopt: 9.8791e-11
message: 'Equation solved.
fsolve completed because the vector of function values is near zero
as measured by the selected valu...'
2 件のコメント
Mohammad Abouali
2015 年 9 月 6 日
編集済み: Mohammad Abouali
2015 年 9 月 6 日
Sure you can.
K=2;
fun1=@(t) (1+cos(t)).*(t.*cos(t)-sin(t));
fun2=@(t) 2*K*(sin(t.^2));
ezplot(fun1,[1,pi])
hold on
h=ezplot(fun2,[1,pi]);
set(h,'Color','r')
legend('(1+cost)(tcost-sint)','2K(sint^2)')
where fun is your function defined in previous code.
BTW, if you are interested in the solution between the [1,pi] you can use fminbnd function as follow:
fminbnd(fun,1,pi)
ans =
1.2915
fminbnd(fun,1.3,pi)
ans =
2.7949
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Matrix Computations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!