integrating input variable function

1 visualización (últimos 30 días)
mohammad reza
mohammad reza el 12 de Jul. de 2016
Comentada: Star Strider el 12 de Jul. de 2016
how can i input a user defined variable/ quadratic equation and integrate it?
what i am trying to do is ask user for the equation in then integrate it, (no limit) and give the ans

Respuesta aceptada

Star Strider
Star Strider el 12 de Jul. de 2016
Editada: Star Strider el 12 de Jul. de 2016
This is how I would do it:
Integrating the quadratic without integration limits and displaying the result:
prompt = {'x^2 Coefficient', 'x Coefficient', 'Constant'};
default_ans = {'0','0','0'};
dlg_title = 'Quadratic Equation';
num_lines = 1;
valc = inputdlg(prompt, dlg_title, num_lines, default_ans);
vals = cell2mat(valc);
valn = str2num(vals);
qcf = valn(1:3);
qint = polyint(qcf.');
CreateStruct.Interpreter = 'tex';
CreateStruct.WindowStyle = 'modal';
msgbox(sprintf('Integral of: \n%.2f\\cdotx^2 %+.2f\\cdotx %+.2f = \n%.2f\\cdotx^3 %+.2f\\cdotx^2 %+.2f\\cdotx %+.2f', [qcf.' qint]),'Value',CreateStruct)
Integrating the quadratic with limits and displaying the results of the integration:
prompt = {'x^2 Coefficient', 'x Coefficient', 'Constant', 'Lower Integration Limit','Upper Integration Limit'};
default_ans = {'0','0','0','0','0'};
dlg_title = 'Quadratic Equation';
num_lines = 1;
valc = inputdlg(prompt, dlg_title, num_lines, default_ans);
vals = cell2mat(valc);
valn = str2num(vals);
qcf = valn(1:3);
int_lim = valn(4:5);
qint = polyint(qcf.');
int_val = diff(polyval(qint, [int_lim(1),int_lim(2)]));
CreateStruct.Interpreter = 'tex';
CreateStruct.WindowStyle = 'modal';
msgbox(sprintf('Integral of %.2f\\cdotx^2 %+.2f\\cdotx %+.2f from %.2f to %.2f = %.3f', [qcf.' int_lim.' int_val]),'Value',CreateStruct)
----------
EDIT Added the integration without limits.
  2 comentarios
mohammad reza
mohammad reza el 12 de Jul. de 2016
ya, but not numeric integration rather symbolic'
% f = input('please input load eq \n','s'); % first input as string than convert the string to the function % make sure to put @x (variable in the input string command) % fh = str2func(f)
this takes the user defined eq ...any type...but cant integrate symbolacally
Star Strider
Star Strider el 12 de Jul. de 2016
We were typing at the same time.
I re-read your question and added a section that calculates the symbolic integral of the quadratic and displays the integrated result, without actually integrating it. This code does not create a function handle, but that is relatively easy to do if you need to.

Iniciar sesión para comentar.

Más respuestas (1)

mohammad reza
mohammad reza el 12 de Jul. de 2016
nice work it some what does the work but i need to create function handle...as i have to intregrate a user input 4 times and and each result has to be evaluated in different co ordinate values (arrays which will be also in a user defined)
but thanks for your help. i just wanted to see if there is any easy way.
  1 comentario
Star Strider
Star Strider el 12 de Jul. de 2016
To create a funciton handle, add str2func and sprintf calls:
prompt = {'x^2 Coefficient', 'x Coefficient', 'Constant'};
default_ans = {'0','0','0'};
dlg_title = 'Quadratic Equation';
num_lines = 1;
valc = inputdlg(prompt, dlg_title, num_lines, default_ans);
vals = cell2mat(valc);
valn = str2num(vals);
qcf = valn(1:3);
qint = polyint(qcf.');
intquad_fcn = str2func(sprintf('@(x) %f.*x.^3 + %f.*x.^2 + %f.*x + %f', qint))
intquad_fcn =
@(x)0.333333.*x.^3+1.000000.*x.^2+3.000000.*x+0.000000
It exists as the function in the code, so adding one line to test it:
intquad_val = intquad_fcn(5) % Test Line (Delete Later)
intquad_val =
81.6666e+000

Iniciar sesión para comentar.

Categorías

Más información sobre Programming en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by