MATLAB 割线法程序 20

functionx=gexian(fun,x0,x1,e)ifnargin<4,e=1e-4;endy=x0;x=x1;whileabs(x-y)>ez=x-(feval... function x=gexian(fun,x0,x1,e)
if nargin<4,e=1e-4;
end
y=x0;x=x1;
while abs(x-y)>e
z=x-(feval(f,x)*(x-y))/(feval(f,x)-feval(f,y));
y=x;
x=z;
end
在命令框里输入
clear
fun=inline('x^3+4*x^2-10');
gexian(fun,0,1,1e-6),format short

显示Undefined function 'gexian' for input arguments of type 'inline'.
展开
 我来答
百度网友3c63e6c
推荐于2017-12-16 · TA获得超过2848个赞
知道大有可为答主
回答量:3829
采纳率:68%
帮助的人:2786万
展开全部
简要的说,就是你的自定义函数没有定义inline类型的输入变量
而且你的程序里面也没有用到fun
应该是调用的问题

gexian(@fun,0,1,1e-6)或者其他写法试试
昨夜星辰1489
2018-01-06
知道答主
回答量:2
采纳率:50%
帮助的人:2.3万
展开全部
非常感谢jimtien,我也为有需要的人再提供一些帮助:
用割线法求方程 X^2-e^x=0 的根 MATLAB做
command window 窗口输入:

clear all
global fnq dfnq
fnq = @(x) x^2 - exp(x); % x^2 - exp(x)=0,要求的原方程
dfnq = @(x) 2*x-exp(x); %一阶导
tol = (1/2)*10^-4; %精度|x*-xk|<(1/2)*10^-4
gmax = 1e3; %最大值1000
x01 = -3; %区间[-3,3]
x02 = 3;
[k,xk,yk,piancha]=gexian(x01,x02,tol,gmax); 先把jimtien的程序保存为gexian.m,以便此调用function
fprintf('\n割线法:%.5f\n', xk)

%上面的程序为一好友:童伟,所编。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tangtangtrav
2014-12-02 · TA获得超过610个赞
知道小有建树答主
回答量:417
采纳率:0%
帮助的人:296万
展开全部
z=x-(feval(f,x)*(x-y))/(feval(f,x)-feval(f,y));

把f 改成fun
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式