首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用fsolve查找根

使用fsolve查找根
EN

Stack Overflow用户
提问于 2021-02-18 21:19:04
回答 2查看 369关注 0票数 0

基本上,为了找到方程的根,我想使用fsolve命令。我想我应该创建一个函数句柄,以“右手-左手=0”的形式来计算这个方程,但是我一直在努力让这个方程发挥作用。有人知道怎么做吗?

方程本身为1/sqrt(f) = -1.74_log((1.254/((1.273_10^8)_sqrt(f)))+((1_10^-3)/3.708)).因此,我想通过使用fsolve对1/sqrt(f)+(1.74_log((1.254/((1.273_10^8)_sqrt(f)))+((1_10^-3)/3.708))) =0进行求解来找出左右两面的交点。

非常感谢!

目前为止的代码(根本不起作用)

代码语言:javascript
复制
f = @(x) friction(x,rho,mu,e,D,Q, tol, maxIter) ;

xguess = [0, 1];

sol = fsolve(x, xguess ) ;


function y = friction(x,rho,mu,e,D,Q, tol, maxIter)

D = 0.1; 
L = 100 
rho = 1000; 
mu = 0.001; 
e = 0.0001; 
Q = 0.01; 
U = (4*Q)/(pi*D^2); 
Re = (rho*U*D)/mu ; 


y = (1/sqrt(x))-(-1.74*log((1.254/(Re*sqrt(x)))+((e/D)/3.708)))

end

错误消息:

错误使用lsqfcnchk (第80行)乐趣必须是一个函数,一个有效的字符矢量表达式,或内联函数对象。

(第238行) funfcn =lsqfcnchk中的错误(有趣,‘FUN’,长度(Varargin),funValCheck,grad频);

错误在无题(第6行)溶胶=f解决(x,x猜测);

EN

回答 2

Stack Overflow用户

发布于 2021-02-18 23:07:18

第一个参数应该是函数,而不是变量。取代:

代码语言:javascript
复制
sol = fsolve(x, xguess );

使用

代码语言:javascript
复制
 sol = fsolve(f, xguess );

在定义f之前定义Rho,mu,e等(而不是在摩擦函数中)。

票数 0
EN

Stack Overflow用户

发布于 2021-02-19 00:20:48

代码语言:javascript
复制
opt = optimset('Display', 'Iter');
sol = fsolve(@(x) friction(x), 1, opt);

function y = friction(x)

  D = 0.1; 
  L = 100; % note -- unused 
  rho = 1000; 
  mu = 0.001; 
  e = 0.0001; 
  Q = 0.01; 
  U = (4*Q)/(pi*D^2); 
  Re = (rho*U*D)/mu ; 
  
  y = (1/sqrt(x))-(-1.74*log((1.254/(Re*sqrt(x)))+((e/D)/3.708)));

end

sol = 0.0054

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

https://stackoverflow.com/questions/66268305

复制
相关文章

相似问题

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