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');

 채택된 답변

Sid Jhaveri
Sid Jhaveri 2017년 3월 2일

1 개 추천

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

Kuifeng Zhao
Kuifeng Zhao 2021년 5월 18일
Thanks. I came across a similar problem with error "Error in *X = privBinaryOp(A, B, 'symobj::mtimes');" and your answer helped solved my problem.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Walter Roberson
Walter Roberson 2017년 3월 2일

0 개 추천

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.

카테고리

도움말 센터File Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기

질문:

2017년 2월 28일

댓글:

2021년 5월 18일

Community Treasure Hunt

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

Start Hunting!

Translated by