matlab fzero的使用问题
kuaidi.ping-jia.net 作者:佚名 更新日期:2024-08-14
Matlab fzero()函数使用问题,新手求教
现在假设你已经设置好了P,V,A,J的值(上一级已经输入)
求0点的表达式这么写:
K = fzeros(@(K)Kfun(P,V,A,J,K), K0); % 其中K0是初值
原因:
1) function [dP]=Kfun(P, V, A, J, K) 定义的函数句柄 @Kfun 实际等价于
function_handle = @(P,V,A,J,K)Kfun(P,V,A,J,K) 自变量共5个,所以fzero不知道你要算K
2) function_handle = @(K)Kfun(P,V,A,J,K) 相当于你固定了P,V,A,J四个参数,留下K做唯一一个自 变量。
形式如@(自变量1, 自变量2 ...)函数名(参数1, 参数2, ..., 自变量1,自变量2,...)
可这样:
k=0.6;
f=@(x)cos(x)-k;
r=fzero(f,[0,pi/2])
结果是:
r =
0.9273
x=fzero(@f,x0);
这里的@f指的是函数f,要编写名为f的函数,如下
function y=f(x)
y=cos(x)-x;
保存为名为f的m文件
现在假设你已经设置好了P,V,A,J的值(上一级已经输入)
求0点的表达式这么写:
K = fzeros(@(K)Kfun(P,V,A,J,K), K0); % 其中K0是初值
原因:
1) function [dP]=Kfun(P, V, A, J, K) 定义的函数句柄 @Kfun 实际等价于
function_handle = @(P,V,A,J,K)Kfun(P,V,A,J,K) 自变量共5个,所以fzero不知道你要算K
2) function_handle = @(K)Kfun(P,V,A,J,K) 相当于你固定了P,V,A,J四个参数,留下K做唯一一个自 变量。
形式如@(自变量1, 自变量2 ...)函数名(参数1, 参数2, ..., 自变量1,自变量2,...)