Problem adding two symbolic functions
6 views (last 30 days)
Show older comments
Hi, I have a problem adding two fuctions with deriatives of symbolic variables. The main purpose ist to solve a differential equation for an amount of x and y to achieve Ux Uz. Can any body help me?
syms x y Ux Uz
U_x(x,y,Ux)=Ux*cos(x)*cos(y);
U_z(x,y,Uz)=Uz*cos(x)*cos(y);
A1=diff(U_x,x)+0.5*(diff(U_z,x))^2;
Error:
Error using symfun/privResolveArgs (line 181) Symbolic function inputs must match.
Error in sym/privBinaryOp (line 819) args = privResolveArgs(A, B);
Error in + (line 7) X = privBinaryOp(A, B, 'symobj::zip', '_plus');
0 Comments
Accepted Answer
Sid Jhaveri
on 2 Mar 2017
Hi Hossein,
As the error suggests, both the inputs need to match. Try defining your U_x and U_z as follows:
U_x(x,y,Ux,Uz)=Ux*cos(x)*cos(y);
U_z(x,y,Ux,Uz)=Uz*cos(x)*cos(y);
After changing U_x and U_z as above, your code should work properly.
1 Comment
Kuifeng Zhao
on 18 May 2021
Thanks. I came across a similar problem with error "Error in *X = privBinaryOp(A, B, 'symobj::mtimes');" and your answer helped solved my problem.
More Answers (1)
Walter Roberson
on 2 Mar 2017
A1 = diff(U_x(x,y,Ux),x)+0.5*(diff(U_z(x,y,Uz),x))^2;
That is, diff(U_x,x) gives a function result, as does diff(U_z,x), and then you were trying to add two functions with different arguments. But if you invoke U_x(x,y,Ux) then that becomes an expression result, and you diff() the two expressions and then you can add the expressions.
0 Comments
See Also
Categories
Find more on Assumptions in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!