24小时热门版块排行榜    

查看: 363  |  回复: 1

不曾走远

新虫 (初入文坛)

[求助] matlab 问题求助,真心求大侠相助!

function [r,n]=half(fun,a,b)
n=0;
while abs(fun(a)-fun(b))>1e-5
    c=0.5*(a+b);
    if fun(a)*fun(c)<0
        b=c;
    elseif fun(b)*fun(c)<0
        a=c;
    end
    n=n+1;
end
r=c;
clear;
clc;
fun=inline('x^2-x-1','x');
[r,n]=half(fun,0,10)

在M文件里运行不了,请求相助!谢谢!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csl_2012

捐助贵宾 (初入文坛)

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 辛苦了 2012-10-22 00:54:24
我试了一下,程序没有错误。计算结果:r = 1.618034839630127,n = 22
是不是你对MATLAB还不太熟悉,m文件名要和函数名相同,而且上面代码中从clear开始的代码要出现在命令窗口中,不能在m文件里。
另外求方程根,二分法效率较低,可以采用如牛顿迭代法等,详见数值分析。
希望对你有用。
2楼2012-10-21 23:06:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 不曾走远 的主题更新
信息提示
请填处理意见