声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1975|回复: 4

[编程技巧] 请问如何在matlab中如何用二分法求非线性方程/

[复制链接]
发表于 2008-6-3 15:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

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

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

使用道具 举报

发表于 2008-6-3 16:00 | 显示全部楼层
结果怎么不对了?怎么没有说明?

你第一个方程中tan的函数是(9.2-x),后一个方程中tan的函数是(9.78-x),能对才怪!
 楼主| 发表于 2008-6-3 19:52 | 显示全部楼层
不好意思,这是法帖时的笔误。
按照上面的公式,我的目的是使方程为0,但结果经验算不对。
而且这种程序也不是二分法。
请大家指教,谢谢。

评分

1

查看全部评分

 楼主| 发表于 2008-6-3 19:55 | 显示全部楼层
不好意思,这是发帖时的笔误。我的目的是求使上面公式为0的未知数。
而且程序也不是二分法,请大家指点,如何编程?
发表于 2008-6-3 20:20 | 显示全部楼层
这仅仅是个初值问题,结果不对只能说你选的初值不合适,计算结果没有问题

[0 10]区间内的函数规律
abcd.JPG
显然在这个区间内有三个解,如果要计算2附近的那个解
用z=fzero('funx',2)

以此类推
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-12 18:03 , Processed in 0.075482 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表