use f=@(x) as an argument of a function.m
48 次查看(过去 30 天)
显示 更早的评论
I have the function
function [ k ] = New_Raph( f,df,x,tol)
x_old =x;
x=1000;
while abs(x_old-x) > tol
x_old = x;
delta=-f(x)/df(x);
x= x-delta;
end
k=x;
end
And i want to calculate in a new .m file:
f=@(x) x.^5-0.4475.*x.^4-3.1.*x.^3+3.085.*x.^2-0.962.*x+0.0943;
df1=@(x) 5.*x.^4-1.79.*x.^3-9.3.*x^2+6.17.*x-0.962;
New_Raph(@f1,@df1,0,0.1)
What is wrong?
0 个评论
采纳的回答
per isakson
2015-3-13
编辑:per isakson
2015-3-13
Replace
New_Raph(@f1,@df1,0,0.1)
by
New_Raph(f,df1,0,0.1)
f or f1 - a typo?
 
Addendum triggered by   It did not work
Try this example
>> my_sin = @(x) sin(x)
my_sin =
@(x)sin(x)
>> arrayfun( my_sin, pi/6*[1,2,3] )
ans =
0.5000 0.8660 1.0000
>> arrayfun( @sin, pi/6*[1,2,3] )
ans =
0.5000 0.8660 1.0000
and
>> arrayfun( @my_sin, pi/6*[1,2,3] )
Error: "my_sin" was previously used as a variable, conflicting with its use
here as the name of a function or command.
2 个评论
Stephen23
2015-3-13
"It did not work" does not tell us what happened when you tried it: was there an error message, unexpected values or something else?
It should work, according to the information that you have given us. Can you show us your exact code?
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!