how take a mathematical function from user
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
here in my code it is me who write F and G function in my Scrip File . now i want the user to enter the F and G in Command Window so i can use as argument in function like euler_forward without witting F and G in my File Script
% Script file: main1.m
f=@(x,y) x./y;
% Calculate exact solution
g=@(x) sqrt(x.^2+1);
xe=[0:0.01:0.3];
ye=g(xe);
% Call functions
[x1,y1]=euler_forward(f,0,1,0.3,6);
[x2,y2]=euler_modified(f,0,1,0.3,6);
[x3,y3]=euler_backward(f,0,1,0.3,6);
% Plot
plot(xe,ye,x1,y1,x2,y2,x3,y3,)
xlabel('x')
ylabel('y')
legend('Analytical','Forward','Modified','Backward')
axis([0 0.3 1 1.07])
0 comentarios
Respuestas (1)
Star Strider
el 8 de Mayo de 2021
prompt = {'Enter f(x,y):', 'Enter g(x):'};
response = inputdlg(prompt)
f = str2func(['@(x,y)', vectorize(response{1})])
g = str2func(['@(x)', vectorize(response{2})])
Entering the two functions in your questions produces —
response =
2×1 cell array
{'x/y' }
{'sqrt(x^2+1)'}
f =
function_handle with value:
@(x,y)x./y
g =
function_handle with value:
@(x)sqrt(x.^2+1)
Note — If the user entering the functions understands the requirement that they must be vectorized, vectorize them while entering them, and delete the vectorize call. (The vectorize function has its critics, however it can be appropriate here, and makes life easier.. It is straightforward to write a similar function to do the same thing, however as long as it exists, use it.)
.
0 comentarios
Ver también
Categorías
Más información sobre Grid Lines, Tick Values, and Labels en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!