BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #358同步于 2007/4/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

[合集]关于超越方程

sunmoonstar
2007/4/10镜像同步0 回复
☆─────────────────────────────────────☆ syb (邵永波) 于 (Fri Mar 30 17:44:57 2007) 提到: 遇到一个问题 解超越方程的时候只能用图解法吗? 怎么求数值解,精度要求至少小数点后14位。 我用图解法求的时候用放大的方法最多到小数点后5位,是不是参数设置不对啊。 问高手,先谢了![em5] ☆─────────────────────────────────────☆ Jarod (计算智能) 于 (Sat Mar 31 01:11:55 2007) 提到: 可以数值解。你说的图解法是指什么啊?试试 symbolic Math Toolbox里的函数 ☆─────────────────────────────────────☆ syb (邵永波) 于 (Sat Mar 31 22:41:36 2007) 提到: 多谢 我试试看 不行的话再问你 图解法就是画出左右两边的曲线 找交点就是方程的解了 ☆─────────────────────────────────────☆ RemoteFish (RemoteFish) 于 (Sat Mar 31 23:33:28 2007) 提到: 最简单的情况下,把两个函数相减,那么差为 0 的点便是交点。用二分查找就可以找到符合精度的解 ☆─────────────────────────────────────☆ syb (邵永波) 于 (Sun Apr 1 00:35:20 2007) 提到: 二分查找?是不是有固定的算法,我不知道代码,能否告诉我。先谢了! ☆─────────────────────────────────────☆ RemoteFish (RemoteFish) 于 (Sun Apr 1 11:07:06 2007) 提到: 就算不用二分查找,把某一区间上所有可取的点都试一试,总可以找到两个函数之差小于精度要求的点。但这样搜索量巨大,实际上是不可用的算法。使用二分查找是为了提高速度。具体算法非常简单,不妨自行 google 一下。 另外,Jarod 准副版 已经提供了一些 Matlab 自带的工具的提示,不妨试试。我是用 C 的,无论做什么总是想着自己写算法,但实际上用现成的库或者工具显然更好 ☆─────────────────────────────────────☆ Jarod (计算智能) 于 (Sun Apr 1 14:17:06 2007) 提到: 二分法?哈哈,说你只会编程,不懂数学啊。 用Newton迭代法,几下就能算出相当精确的解。 【 在 RemoteFish 的大作中提到: 】 : 就算不用二分查找,把某一区间上所有可取的点都试一试,总可以找到两个函数之差小于精度要求的点。但这样搜索量巨大,实际上是不可用的算法。使用二分查找是为了提高速度。具体算法非常简单,不妨自行 google 一下。 : 另外,Jarod 准副版 已经提供了一些 Matlab 自带的工具的提示,不妨试试。我是用 C 的,无论做什么总是想着自己写算法,但实际上用现成的库或者工具显然更好 ☆─────────────────────────────────────☆ RemoteFish (RemoteFish) 于 (Sun Apr 1 18:03:07 2007) 提到: 【 在 Jarod 的大作中提到: 】 : 二分法?哈哈,说你只会编程,不懂数学啊。 : 用Newton迭代法,几下就能算出相当精确的解。 确实,我接触过牛顿迭找法只是用来求开平方的,所以不了解它是一个通用的方法。数学差果然是不行。推荐点我用得着的数学书吧 ☆─────────────────────────────────────☆ Jarod (计算智能) 于 (Sun Apr 1 19:47:55 2007) 提到: 你找本“数值算法”的书看就知道了。 【 在 RemoteFish 的大作中提到: 】 : 确实,我接触过牛顿迭找法只是用来求开平方的,所以不了解它是一个通用的方法。数学差果然是不行。推荐点我用得着的数学书吧 ☆─────────────────────────────────────☆ sunmoonstar (帅猪) 于 (Sun Apr 1 19:52:05 2007) 提到: 二分法能解超越方程? 我不明白什么是超越方程 【 在 RemoteFish 的大作中提到: 】 : 就算不用二分查找,把某一区间上所有可取的点都试一试,总可以找到两个函数之差小于精度要求的点。但这样搜索量巨大,实际上是不可用的算法。使用二分查找是为了提高速度。具体算法非常简单,不妨自行 google 一下。 : 另外,Jarod 准副版 已经提供了一些 Matlab 自带的工具的提示,不妨试试。我是用 C 的,无论做什么总是想着自己写算法,但实际上用现成的库或者工具显然更好 ☆─────────────────────────────────────☆ Jarod (计算智能) 于 (Sun Apr 1 20:03:40 2007) 提到: 申请可以上传附件吧。。。我传公式给你看。。 【 在 sunmoonstar 的大作中提到: 】 : 二分法能解超越方程? : 我不明白什么是超越方程 ☆─────────────────────────────────────☆ sunmoonstar (帅猪) 于 (Sun Apr 1 20:06:28 2007) 提到: 超越方程高数老师讲过一点... ☆─────────────────────────────────────☆ Jarod (计算智能) 于 (Sun Apr 1 21:44:20 2007) 提到: 其实二分法与是否是超越方程无关。很多方程的根,都可以用二分法来求。 方程写成 f(x)=0的形式,y=f(x)是函数,一般来说,是光滑的,在零点附近是单调的,此时就像二分查找一样,在零点附近查检f(x),缩小根的范围,最后逼近它。 ☆─────────────────────────────────────☆ sunmoonstar (帅猪) 于 (Mon Apr 2 00:35:36 2007) 提到: 那超越方程怎么解? 有通用解法么? 【 在 Jarod 的大作中提到: 】 : 其实二分法与是否是超越方程无关。很多方程的根,都可以用二分法来求。 : 方程写成 f(x)=0的形式,y=f(x)是函数,一般来说,是光滑的,在零点附近是单调的,此时就像二分查找一样,在零点附近查检f(x),缩小根的范围,最后逼近它。 ☆─────────────────────────────────────☆ RemoteFish (RemoteFish) 于 (Mon Apr 2 00:52:12 2007) 提到: 【 在 sunmoonstar 的大作中提到: 】 : 那超越方程怎么解? 有通用解法么? 同问,期待准版副从数学的角度给一个答案 ☆─────────────────────────────────────☆ RemoteFish (RemoteFish) 于 (Mon Apr 2 00:56:24 2007) 提到: 【 在 Jarod 的大作中提到: 】 :在零点附近是单调的 这个不对吧,就比如 y=x^2。 不单调一样是可以二分的 ☆─────────────────────────────────────☆ sunmoonstar (帅猪) 于 (Mon Apr 2 12:36:56 2007) 提到: RemoteFish 这应该叫3分, 呵呵 【 在 RemoteFish 的大作中提到: 】 : :在零点附近是单调的 : 这个不对吧,就比如 y=x^2。 不单调一样是可以二分的 ☆─────────────────────────────────────☆ RemoteFish (RemoteFish) 于 (Mon Apr 2 13:06:26 2007) 提到: 在一个区别 [a,b] 中,假如 |f(a)| < |f(b)|, 那么就调整区间至 [a,(a+b)/2],否则就调整至 [(a+b)/2,b],我一直以为这种调整区间的方法就是二分:) 这个方法只针对 f(a) 与 f(b) 同号的情况 看来数学不好果然不应该瞎说,要不是 sunmoonstar 兄提醒差点就(如果不是已经)误导了楼主,真是抱歉,呵呵:) ☆─────────────────────────────────────☆ Jarod (计算智能) 于 (Mon Apr 2 13:21:32 2007) 提到: 第一,不准叫副版,还没申请到,更可能申请不到了。 第二,你不能拿这个这么有优良特性(具体说,就是太简单)的函数来举例子。你要举一般的例子才行。不过这里没有一般的例子,只有反例。 如你在 [-1, 10]的范围内检测,f(-1) = 1, f(10) = 100, 下一点你选的是5(约为二分),而f(5)=25,现在的情况是 1<=f(-1)<f(5)<f(10)<=100,你怎么选下一点?如果选-1到5之间的点,你给什么理由? 你再试试 y = x*x*(x-2)+2. f(-1) = -1, f(2) = 2,你检测x=0.5这一点,f(0.5) = 1.625,你又选哪段空间? 你是理由是不是两个边界点,谁更接近0值,就选谁呢? 再考虑一个函数: 如果 f(-2) = 3 , f(2) = 1, f(0) = 0.5, 你是不是要选 [0,2]呢?我告诉你, f(x) 在(0,2) 上的最小值是0.1;但 f(x)在(-2,0)的最小值是-1. 你懂我的意思了吧。 PS:真想贴图啊。一贴图,什么都清楚了。 【 在 RemoteFish 的大作中提到: 】 : :在零点附近是单调的 : 这个不对吧,就比如 y=x^2。 不单调一样是可以二分的 ☆─────────────────────────────────────☆ sunmoonstar (帅猪) 于 (Mon Apr 2 13:23:36 2007) 提到: 你说的这个方法是二分法, 适用于在定义域内具有单调性的函数 对于抛物线形的方程y = x^2,应用三分法 将区间[a,b]在点 x1 = a+(b-a)/3 和 点 x2 = a+2*(b-a)/3 处分为三部分 取f(x1)和f(x2), 根据f(x1)和f(x2)的大小关系确定如何进一步迭代 【 在 RemoteFish 的大作中提到: 】 : 在一个区别 [a,b] 中,假如 |f(a)| < |f(b)|, 那么就调整区间至 [a,(a+b)/2],否则就调整至 [(a+b)/2,b],我一直以为这种调整区间的方法就是二分:) : 看来数学不好果然不应该瞎说,要不是 sunmoonstar 兄提醒差点就(如果不是已经)误导了楼主,真是抱歉,呵呵:) ☆─────────────────────────────────────☆ RemoteFish (RemoteFish) 于 (Mon Apr 2 13:32:16 2007) 提到: 受教了。已修正那段描述,但愿它现在比刚才更正确一些。二分也好,三分也好,这些方法并不是为严格地找到区间内所有结果而存在的。不知牛顿迭代法是否能够找到所有的解呢?也许加入导数的判断可以有些帮助。不瞎猜了,免得又说错话 另外,支持 Jarod 的提议,这种数学版块没有 TeX 支持也就算了,要是连帖图功能也没有,实在是不便于讨论 ☆─────────────────────────────────────☆ Jarod (计算智能) 于 (Mon Apr 2 13:39:08 2007) 提到: baidu知道上:超越方程. 具有未知量的对数函数、指数函数、三角函数、反三角函数等的方程。 举个例子:sin(x)-x = 0; 没有所谓真正意义上的通用解法。只有广泛适用的解法。如newton: 一般的方程都能写成 y = f(x) = 0 的形式。在x=x0点,可以求得y=f(x)曲线的切线方程 y -f(x0) = f'(x0) (x-x0). 曲线与x轴的交点,就是方程的根;对于x=x0点的切线方程来说,一般都会与x轴有一个交点,记为x1,这个交点很接近曲线与x轴的交点。所以可以把这个点做为近似解。 令y=0, 解得这个点 x1 = x0- f(x0)/f'(x0). 不断用这个公式迭代,就能不断逼近真实解。 举例:求 x^2=3 的解。 f(x) = x^2 -3; x1 = x0 - (x0^2 - 3) / 2x0 = 0.5x0 + 1.5/x0 不断用这公式就能求得(让x0=4, 算了4次就得到了) x = 1.7321 【 在 sunmoonstar 的大作中提到: 】 : 那超越方程怎么解? 有通用解法么? ☆─────────────────────────────────────☆ sunmoonstar (帅猪) 于 (Mon Apr 2 13:44:53 2007) 提到: 你们俩是一个程序设计比赛队的吗? ☆─────────────────────────────────────☆ RemoteFish (RemoteFish) 于 (Mon Apr 2 13:50:39 2007) 提到: 是,而且显然,我属于蛮力型,而他属于智力型的,这种搭配倒是非常合理:)。 可惜已经大四了,没有更多的机会了 ☆─────────────────────────────────────☆ Jarod (计算智能) 于 (Mon Apr 2 14:09:27 2007) 提到: 你是力量型,智力属性真是太低啦~~~~你当打DOTA啊 不要在版面上说队伍的事~不准招摇。低调 【 在 RemoteFish 的大作中提到: 】 : 是,而且显然,我属于蛮力型,而他属于智力型的,这种搭配倒是非常合理:)。 : 可惜已经大四了,没有更多的机会了 ☆─────────────────────────────────────☆ RemoteFish (RemoteFish) 于 (Mon Apr 2 14:15:52 2007) 提到: 嗯,低调
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。