feval
function x=fun(a,b)
x=a+b;
调用
1.feval(@fun,a,b);
2.feval(‘fun’,a,b);
作为参数时
function x=main(fun,y,yy)
c=feval(fun,a,b);
@(x)
表示f为函数句柄,@(x)为定义句柄的运算符,这样的函数句柄指向函数表达式。
f=@(x)acos(x)
相当于建立了一个函数文件
%f.m
function y=f(x)
y=acos(x)
%erfen.m
feval(f,2)
牛顿法中函数句柄求导
fun=@(x)a*x+b;
作为参数
function [x,k]=fnewton(fun,x0,e)
求其导函数,若
dfun=diff(fun)
报错
错误使用 diff
类 ‘function_handle’ 不支持函数 ‘diff’。
可通过syms将函数句柄转换为符号函数
用diff求导后
再通过matlabFunction转换为函数句柄
syms x; % 通过符号变量将匿名函数转换为符号函数
y=fun(x);
dfun=matlabFunction(diff(y)) % 通过matlabFunction将符号函数转换为匿名函数
fzerotx
fzero实现zeroin算法(二分法&