Matlab 求解形式为f(x)=K*u(x)的方程的最佳方法
我正在解一个运动方程,它被描述为Matlab 求解形式为f(x)=K*u(x)的方程的最佳方法,matlab,Matlab,我正在解一个运动方程,它被描述为 syms u1 u2 f3 f4; K=magic(4); f=[2 3 f3 f4]; u=[u1 u2 9 7]; 其中f和K都包含变量 哪种方法最简单或/和最有效?我想要像这样的东西 solution=solve(f==K*u); 不知道这是否是有效的方法。你的方程还没有标准形式,但可以简化为标准形式 计算 >> syms u1 u2 f3 f4; >> K = magic(4); >> f = [2 3 f3 f4
syms u1 u2 f3 f4;
K=magic(4);
f=[2 3 f3 f4];
u=[u1 u2 9 7];
其中f和K都包含变量
哪种方法最简单或/和最有效?我想要像这样的东西
solution=solve(f==K*u);
不知道这是否是有效的方法。你的方程还没有标准形式,但可以简化为标准形式 计算
>> syms u1 u2 f3 f4;
>> K = magic(4);
>> f = [2 3 f3 f4].';
>> u = [u1 u2 9 7].';
>> K*u - f
ans =
16*u1 + 2*u2 + 116
5*u1 + 11*u2 + 143
9*u1 + 7*u2 - f3 + 138
4*u1 + 14*u2 - f4 + 142
为了清晰起见,我修改了格式。由此我们可以看出,如果我们定义
b = [-116 -143 -138 -142].';
A = [16 2 0 0
5 11 0 0
9 7 -1 0
4 14 0 -1];
然后我们有一个标准形式的方程
A*X = b
在哪里
X = [u1 u2 f3 f4].'
那么,这是一个简单的问题
>> X = A\b
ans =
-5.963855421686747e+000 % u1
-1.028915662650603e+001 % u2
+1.230120481927711e+001 % f3
-2.590361445783132e+001 % f4
看一看。不过,您可能需要重新安排您的系统。谢谢。我的问题就是自动得到标准形式的方程式。比如说,创建矩阵A和b..@Caniko:难道不可能将计算
K
、u
和f
的实现转换为返回A
和b
?似乎比试图从符号中生成if要容易得多……这几乎是不可能的……不幸的是。此选项对我不可用。这就是为什么我要问这个问题:)