在MATLAB中使用fsolve命令

时间:2012-04-26 19:30:22

标签: matlab equation-solving

我该如何解决这些方程式?

(-1.5/w)*sin(w*t) + 1.5*t - 0.45 = 0  

知道:

w = sqrt(10)

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

你可以这样解决这个方程组的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

答案 1 :(得分:0)

编辑: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;

Figure-1

`在靠近(0,0)附近缩放时,您将看到图形的以下结构(图-2)。

Figure-2

上面,我提供了一个解决这个问题的数值解决方案。虽然,Matlab中还有另一种可用的方法(符号代数)。但matlab主要用于数值计算和问题的数值求解。对于象征性问题解决,Matlab非常不合适且速度慢。虽然目前的问题是一个非常小的问题,并且在使用符号计算的Matlab中也不会有任何麻烦,但在matlab中以数字方式进行问题并且在mathematica / maple等中进行符号处理仍然是一个好习惯。