function [ Xs ] = RegulaRaiz( Fun,a,b,ErrMax )
imax=100;
Fa= Fun(a)
Fb=Fun(b)
The code for fun is:
function y = Fun(x)
y = (sin(x)/(3*x))-0.25;
end
If I call the function as RegulaRaiz( 'Fun',1,2,0.0001 )
Fa becomes f and fb becomes u, how do i fix this?

 採用された回答

michio
michio 2016 年 9 月 21 日

3 投票

The first input 'Fun' to the function RegulaRaiz is 1x3 char, 'Fun'. So Fa = Fun(1) is f and, Fb = Fun(2) = u.
Could you try
RegulaRaiz(@(x) Fun(x),1,2,0.0001)
instead? Specify the function as an input using a function handle @(x) Fun(x).

2 件のコメント

Vitor Braz
Vitor Braz 2016 年 9 月 21 日
Thank you!
Jan
Jan 2016 年 9 月 21 日
Or simpler and faster:
RegulaRaiz(@Fun,1,2,0.0001)

サインインしてコメントする。

その他の回答 (1 件)

Adam
Adam 2016 年 9 月 21 日
編集済み: Adam 2016 年 9 月 21 日

1 投票

Why are you naming a variable passed to your function the same as a function? The string you pass in as the variable 'Fun' is hiding the function so
Fa= Fun(a);
is trying to index into 'Fun' so Fun(a) is Fun(1) which is 'F' and Fun(b) is Fun(2) which is 'u'.

カテゴリ

ヘルプ センター および File Exchange で Convert Image Type についてさらに検索

タグ

質問済み:

2016 年 9 月 21 日

編集済み:

2016 年 9 月 21 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by