Effacer les filtres
Effacer les filtres

How to add two functions and display the sum?

17 vues (au cours des 30 derniers jours)
Saumya
Saumya le 6 Fév 2023
Modifié(e) : Sarvesh Kale le 6 Fév 2023
I am trying to add two functions together and display the addition as a new function.
f=@(x) x^2+x;
g=@(x) 3*x^2+5*x;
z=f(x)+g(x);
I want to print z as:
@(x) 4*x^2+6*x
How do I achieve this? The disp function only gives the output of z as @(x) f(x)+g(x)
  1 commentaire
Dyuman Joshi
Dyuman Joshi le 6 Fév 2023
Modifié(e) : Dyuman Joshi le 6 Fév 2023
function handles don't resolve the expression per say, for example -
a = 1.3;
b = .2;
c = 30;
parabola = @(x) a*x.^2 + b*x + c
parabola = function_handle with value:
@(x)a*x.^2+b*x+c
This is not displayed as
par = @(x) 1.3*x.^2 + 0.2*x + 30
par = function_handle with value:
@(x)1.3*x.^2+0.2*x+30
Your closest option I think is syms
syms f(x) g(x)
f(x)=x^2+x;
g(x)=3*x^2+5*x;
%symbolic function
z(x)=f(x)+g(x)
z(x) = 
%Converting the symbolic function into function handle
z=matlabFunction(z)
z = function_handle with value:
@(x)x.*6.0+x.^2.*4.0

Connectez-vous pour commenter.

Réponses (1)

Sarvesh Kale
Sarvesh Kale le 6 Fév 2023
Modifié(e) : Sarvesh Kale le 6 Fév 2023
Hi Saumya,
You can try the symbolic math to solve your issue
syms x
f = x*x + x ;
g = 3*x*x + 5*x ;
z = f + g
z = 
x = 3;
subs(f) % will give you f(3)
ans = 
12
subs(z) % will give you f(3) + g(3)
ans = 
54
You can refer the documentation of symbolic math library for symbolic functions

Catégories

En savoir plus sur Symbolic Math Toolbox dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by