likefeng 发表于 2008-6-3 15:26

请问如何在matlab中如何用二分法求非线性方程/

方程如下:
0.9775*0.8948-(8*pi*17/3)*sinx*tan(9.2-x)=0,x的取值范围在。
我的程序如下:
function f=funx(x)
f=0.9775*0.8948-142.42*sin(x)*tan(9.78-x);

z=fzero('funx',5)
结果不对。

我不知道在matlab中如何用二分法,各位给看看,谢谢。

messenger 发表于 2008-6-3 16:00

结果怎么不对了?怎么没有说明?

你第一个方程中tan的函数是(9.2-x),后一个方程中tan的函数是(9.78-x),能对才怪!

likefeng 发表于 2008-6-3 19:52

不好意思,这是法帖时的笔误。
按照上面的公式,我的目的是使方程为0,但结果经验算不对。
而且这种程序也不是二分法。
请大家指教,谢谢。

likefeng 发表于 2008-6-3 19:55

不好意思,这是发帖时的笔误。我的目的是求使上面公式为0的未知数。
而且程序也不是二分法,请大家指点,如何编程?

happy 发表于 2008-6-3 20:20

这仅仅是个初值问题,结果不对只能说你选的初值不合适,计算结果没有问题

区间内的函数规律

显然在这个区间内有三个解,如果要计算2附近的那个解
用z=fzero('funx',2)

以此类推
页: [1]
查看完整版本: 请问如何在matlab中如何用二分法求非线性方程/