필터 지우기
필터 지우기

Problem adding two symbolic functions

조회 수: 5 (최근 30일)
Hossein
Hossein 2017년 2월 28일
댓글: Kuifeng Zhao 2021년 5월 18일
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일
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일
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.

카테고리

Help CenterFile Exchange에서 Linear Algebra에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by