如何用MATLAB求解方程 17.7*sin(A)*cos(A)+87*sin^2(A)-9.65*cos(A)-47*sin(A)=0
? 我想要A的值满足上面的等式。我尝试使用解决命令,但它不断给错误。Matlab编程解决方案
0
A
回答
4
当然它的溶液中,它具有溶液的无限数量,例如,你可以看到用图形是A在-4pi到4PI间隔越过零分多次:
A=linspace(-4*pi,4*pi,1000);
plot(A,17.7.*sin(A).*cos(A)+87.*sin(A).^2-9.65*cos(A)-47*sin(A))
寻找解决方案的另一种方法是使用fzero
点附近x0
[email protected](A) 17.7.*sin(A).*cos(A)+87.*sin(A).^2-9.65*cos(A)-47*sin(A);
x0=0;
sol = fzero(f,x0)
sol =
-0.2020
有关的发现多根间隔见this discussion。
1
即使您需要数字解决方案,有时Symbolic Toolbox也很有用。该函数在-pi
和pi
(或任何2*pi
区间)之间是周期性的。您可以使用solve
找到所有四个根在此区间:
syms A;
s = solve(17.7*sin(A)*cos(A)+87*sin(A)^2-9.65*cos(A)-47*sin(A)==0,A,'IgnoreAnalyticConstraints',true)
>> s =
-0.20201862493051844310946374889219
0.57212820231996826457022742739841
2.5736433165658736546275270008849
2.9380144125412806473039849317812
当solve
无法找到的解析解它returns a numeric one。在这种情况下,必须通过'IgnoreAnalyticConstraints'
选项打开“简化规则”,强制solve
返回所有解决方案。我不确定为什么这是因为这个选项通常会做相反的事情。
使用函数double
将符号值从solve
转换为浮点数:s = double(s);
。然后,您可以将N*2*pi
(其中N
是一个整数)添加到这四个值中,以获得任何其他时间间隔中函数的根。
相关问题
- 1. 解决方案使用MATLAB
- 2. 递归解决方案的动态编程解决方案
- 3. MATLAB简单的MLE解决方案
- 4. Matlab中的double sqrt解决方案?
- 5. matlab内存最终解决方案
- 6. Matlab需要的解决方案
- 7. 检查存在的解决方案Matlab
- 8. Matlab解决方案的两个图
- 9. 为eigs做matlab缓存解决方案
- 10. 作为矩阵的方程的Matlab解决方案
- 11. 在MATLAB中绘制二阶方程的解决方案
- 12. 解决方案JSP程序
- 13. 多线程解决方案
- 14. 使用Matlab创建程序解决方案
- 15. VS 2010解决方案取决于另一个解决方案
- 16. IDL方程的解决方案
- 17. 写生解决方案曲线方程
- 18. MSBuild解决方案
- 19. Mathematica解决方案?
- 20. Qt:QStackedWidget解决方案
- 21. codechef解决方案
- 22. 解决方案2011
- 23. 与解决方案
- 24. Python解决方案
- 25. google.appengine.runtime.DeadlineExceededError解决方案?
- 26. squarepie解决方案
- 27. Puppet | XML编辑解决方案
- 28. MonoDevelop命令行编译解决方案
- 29. TFS 2012编译VS 2010解决方案
- 30. 单向编码解决方案
请发表您厌倦了'solve'的代码,以及它给你的具体错误 – Shai