24小时热门版块排行榜    

CyRhmU.jpeg
查看: 971  |  回复: 2

jackie309

银虫 (正式写手)

[求助] 请教函数作为一个参数的用法,谢谢

请教一个问题:
如何调用这样的一个m函数,谢谢

bisection(f,a,b)
function p = bisection(f,a,b)

% provide the equation you want to solve with R.H.S = 0 form.
% Write the L.H.S by using inline function
% Give initial guesses.
% Solves it by method of bisection.
% A very simple code. But may come handy

if f(a)*f(b)>0
    disp('Wrong choice bro')
else
    p = (a + b)/2;
    err = abs(f(p));
    while err > 1e-7
   if f(a)*f(p)<0
       b = p;
   else
       a = p;         
   end
    p = (a + b)/2;
   err = abs(f(p));
    end
end

比如我现在需要的f函数是 y = 3*x^3 + x*x -2


我的做法是在一m文件,或者command windows:

ff=@(x)  x.*x+3.*x+2;
p = bisection(ff,-3,4);

运行,提示的出错信息:
Wrong choice bro
Error in bisection (line 9)
if f(a)*f(b)>0

Output argument "p" (and maybe others) not assigned during call to "D:\Program
Files\MATLAB\R2013a\bisection.m>bisection".

Error in f (line 4)
p = bisection(ff,-3,4);
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
用inline函数:

ff=inline(' 3*x.^3 + x.*x -2','x');
bisection(ff,-3,4)

ans =

    0.7754
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2013-08-21 23:39:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

感谢参与,应助指数 +1
提示说明是返回参数p没有指定,
在disp('Wrong choice bro')下面加一行p = 0;
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
3楼2013-08-21 23:49:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jackie309 的主题更新
信息提示
请填处理意见