Having issue displaying the result of a set of if statements
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello i have an issue i want to display the variable "ans" im using disp(ans) and ive placed it at every point possible it doesnt seem to work. the code is as follows
function deraprox
%This program will find an approximate solution to the nth order
%derrivative of an nth order polynomial where n is 1-4
disp ('Please input a polynomial function')
disp ('please use the following format')
disp('a*x.^4+b*x.^3+c*x.^2+d*x+e')
disp('enter 0 if there is no coefficient to one of the variables')
f=input('type now ','s');
disp ('what is the order of derrivation you desire?')
n=input('type now ');
disp ('what is the number of terms in taylor series? (1 or 2)')
tn=input('type now ');
disp ('what method would you like to use? f, b, or c')
method=input('type now ','s');
disp(' what is the step size?')
h=input('type now ');
disp('what point would you like to evaluate?')
xi=input ('type now ');
x=((xi-5*h):h:(xi+5*h));
y=eval(f);
fxim5=y(1,1);
fxim4=y(1,2);
fxim3=y(1,3);
fxim2=y(1,4);
fxim1=y(1,5);
fxi=y(1,6);
fxip1=y(1,7);
fxip2=y(1,8);
fxip3=y(1,9);
fxip4=y(1,10);
fxip5=y(1,11);
if method=='f'
if n==1
if tn==1
ans=(fxip1-fxi)/h
else
ans=(-fxip2+4*fxi+1-3*fxi)/2*h
end
elseif n==2
if tn==1
ans=(fxip2-2*fxip1+fi)/(h*h)
else
ans=(-fxip3+4*fxip2-5*fxip1+2*fxi)/(h*h)
end
elseif n==3
if tn==1
ans=(fxip3-3*fxip2+3*fxip1-fxi)/(h*h*h)
else
ans=(-3*fxip4+14*fxp3-24*fxip2+18*fxip1-5*fxi)/(2*h*h*h)
end
else
if tn==1
ans=(fxip4-4*fxip3+6*fxp2-4*fxip1-fxi)/(h*h*h*h)
else
ans=(-2*fxip5+11*fxip4-24*fxip3+26*fxip2-14*fxip1+3*fxi)/(h*h*h*h)
end
end
elseif method=='b'
if n==1
if tn==1
ans=(fxi-fxim1)/h
else
ans=(3*fxi-4*fxim1+fxim2)/2*h
end
elseif n==2
if tn==1
ans=(fxi-2*fxim1+fxim2)/(h^2)
else
ans=(2*fxi-5*fxim1+4*fxim2-fxim3)/(h^2)
end
elseif n==3
if tn==1
ans=(fxi-3*fxim1+3*fxim2-fxim3)/(h^3)
else
ans=(5*fxi-18*fxim1+24*fxim2-14*fxim3+3*fxim4)/(2*(h^3))
end
elseif n==4
if tn==1
ans=(fxi-4*fxim1+6*fxim2-4*fxim3+fxim4)/(h^4)
else
ans=(3*fxi-14*fxim1+26*fxim2-24*fxim3+11*fxim4-2*fxim5)/(h^4)
end
else
if n==1
if tn==1
ans=(fxip1-fxim1)/(h*2)
else
ans=(-fxip2+8*fxip1-8*fxim1+fxim2)/(12*h)
end
elseif n==2
if tn==1
ans=(fxip1-2*fxi_fxim1)/(h*h)
else
ans=(-fxip2+16*fxip1-30*fxi+16*fxim1-fxim2)/(12*h*h)
end
elseif n==3
if tn==1
ans=(fxip2-2*fxip1+2*fxim1-fxim2)/(2*h*h*h)
else
ans=(-fxip3+8*fxip2-13*fxip1+133*fxim1-8*fxim2+fxim3)/(8*h*h*h)
end
elseif n==4
if tn==1
ans=(fxip2-4*fxip1+6*fxi-4*fxim1+fxim2)/(h*h*h*h)
else
ans=(-fxip3+12*fxip2-39*fxip1+56*fxi-39*fxim1+12*fxim2-fxim3)/(64*h*h*h*h)
end
end
end
end
0 Kommentare
Antworten (1)
Walter Roberson
am 3 Aug. 2015
You should name your variable something other than "ans" as MATLAB uses ans for its own purposes.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Polynomials finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!