【发布时间】:2014-08-25 23:43:20
【问题描述】:
有没有一种简单的方法来检查向量值符号函数是否是线性的?如果是这样,有没有一种简单的方法可以以A*x 的形式表示这个表达式,其中A 是一个符号矩阵,x 是参数(即有没有办法在给定@987654325 的情况下“提取”A @ 和 A*x)?
syms x1 x2 a b c;
fx1 = [a*(x1+x2); b*x1+c*x1];
fx2 = [a*x1/log(x2); x2^2];
A=checklinearity(fx1, [x1 x2]') % should return [a, a; b+c, 0]
A=checklinearity(fx2, [x1 x2]') % should return false
回答: 使用内置 MATLAB 函数 equationsToMatrix 可以轻松解决问题。
【问题讨论】:
-
您是否尝试过进行常规测试:
f(x+x) = f(x)+f(y)和f(ax)=a*f(x)? -
好吧,假设使用了符号工具箱,这应该不是问题。如果您已经进行了分析测试,请按照完全相同的方式进行操作。我的意思是为什么不能这样做:
f(x) = x; q = f(ax)-a*f(x); if q~=0, fprintf('not equal'); else,fprintf('equal'); end。这当然是伪代码。
标签: string matlab linear-algebra symbolic-math mupad