首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用二分法在Matlab中寻找解。

用二分法在Matlab中寻找解。
EN

Stack Overflow用户
提问于 2015-09-30 09:23:18
回答 1查看 762关注 0票数 0

我现正尝试解决以下问题:

使用二分法在以下函数的间隔10^−4上找到精确到[−5, 5]内的解: f(x)= x^5-10x^3-4

这是我的密码:

代码语言:javascript
运行
复制
function sol=bisect(fn,a,b,tol)

%Bisection method for the Nonlinear Function
fa=feval(fn,a);fb=feval(fn,b);
if fa*fb>0;fprintf('Endpoints have same sign')
   return
end
k=0;
while abs (b - a)>tol
   c =(a+b)/2;
   fc=feval(fn,c);
   if fa*fc < 0; b=c; else a = c; 
       k=k+1;
   end
end
sol=(a+b)/2;

当我运行这个程序时,我会:

代码语言:javascript
运行
复制
a= -5
b=5
fn =  x^5-10x^3-4

但是最后一行返回一个错误:

未定义函数或变量x

EN

回答 1

Stack Overflow用户

发布于 2015-09-30 09:53:07

要定义可以由feval计算的方程,需要将其定义为函数。

尝试将fn定义为fn=@(x)(x^5-10x^3-4)。这样您就可以使用feval(fn,3)了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32862457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档