Info
この質問は閉じられています。 編集または回答するには再度開いてください。
I want to convert my program in to a function......tried function but something is wrong....???
1 回表示 (過去 30 日間)
古いコメントを表示
Here is my program. How to write its function??
Inputs and output are as indicated in program
clc
clear all
close all
%=======================Inputs to the program==============================
f = @(x) x.^2+54/x;
k=1;
x(k)=1;
a=x(k);
e=0.1;
%============================Main program=================================
if abs(x(k))>0.01
dx=0.01*abs((x(k)));
else
dx=0.0001;
end
for m=1:inf
D1=(f(a+dx)-f(a-dx))/(2*dx);
D2=(f(a+dx)-2*f(a)+f(a-dx))/(dx)^2;
x(k+1)=a-(D1/D2);
a=x(k+1); % Program Output after m iterations
C1=(f(a+dx)-f(a-dx))/(2*dx);
if abs(C1)<e
break
else
k=k+1;
end
end
%================================END=======================================
%===========Progrm output is the final value of 'a'========================
0 件のコメント
回答 (2 件)
Walter Roberson
2015 年 9 月 13 日
f=inline(eqn);
However, you have
a=x(k);
and other references to x(k) when you have no x defined.
0 件のコメント
Image Analyst
2015 年 9 月 13 日
You need two function lines if you're going to put this in one m-file. One for the test program, and one for your function:
function TestMyFunction()
clc
clear all
close all
%=======================Inputs to the program==============================
f = @(x) x.^2+54/x;
k=1;
x(k)=1;
a=x(k);
e=0.1;
% Now have TestMyFunction() call MyFunction()
new_a = MyFunction(f,k,x,a,e);
function a = MyFunction(f,k,x,a,e)
% Code for it....
Again, that can be all in one m-file, or you can use two separate m-files if you want.
1 件のコメント
この質問は閉じられています。
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!