麻烦各位给解这个方程式一个思路
方程式如下:5sin(x)+sqrt(100-36cos(x))=c, c是常数,求x.
查了书和搜索,都是方程组的例子,麻烦给个思路,谢谢. 可以先改为
f(x)=5sin(x)+sqrt(100-36cos(x))-c
画个图,确定其根的区域,再用牛顿法或二分法等去求方程的根.
[ 本帖最后由 songzy41 于 2008-3-14 09:42 编辑 ] 先确定其根的区域,然后用fzero命令应该可以再各个区域内直接求解的吧 如果有范围要求,就给个范围来约束一下,可以记为,如果没有范围,就随便确定个数a,然后:
1、可以使用字符串表达式:
mZero = fzero('5*sin(x)+sqrt(100-36*cos(x))-c', );
注意:此时在你的要求范围内,可能没有零点值,函数将返回错误。
或
mZero = fzero('5*sin(x)+sqrt(100-36*cos(x))-c', a);
此时,函数将临近a处返回零点值
注意:
1)用字符串表达式来求解时,请注意要给表达式中的变量进行初始化值。如:
x = a:0.001:b;
2)如果你的变量名不是x,那么要用如下的方式来使用fzero函数:
fzero(@(变量名)(字符串表达式), 范围或数值);
2、可以使用符号表达式:
syms x;
y = 5 * sin(x)+sqrt(100-36*cos(x))-c
yFun = inline(y);
mZero = fzero(yFun, );
或
mZero = fzero(yFun, a); 谢谢rap2009,你的答案很完美,参考书也不会有这样详细的解答,我这就去实践.
页:
[1]