请帮我编写一个 MATLAB 程序,构造一个列矩阵 b,使得
b1 = 3x1 - 3/4y0
b2 = 3x2
...
bn-2 = 3xn-2
bn-1 = 3xn-1 - 3/4yn
其中x和y是变量。请注意,y 仅出现在 b 的第一个和最后一个条目中。
我的问题是我不知道变量在 MATLAB 中如何工作。我试过了
b = 3*x
它说
??? Undefined function or variable 'x'
那么,我们如何创建变量而不是常量?
谢谢!
最佳答案
编辑:
根据您上面的评论,您需要的是 MATLAB 的 symbolic toolbox ,它允许您根据变量执行计算(无需为其分配显式值)。这是一个小例子:
syms x %#declare x to be a symbolic variable
y=1+x;
z=expand(y^2)
z=
x^2 + 2*x + 1
您将需要使用expand
有时要获取多项式的完整形式,因为默认行为是保持其最简单的形式,即 (1+x)^2
。这是求一般二次方程的根的另一个示例
syms a b c x
y=a*x^2+b*x+c;
solve(y)
ans =
-(b + (b^2 - 4*a*c)^(1/2))/(2*a)
-(b - (b^2 - 4*a*c)^(1/2))/(2*a)
我想你的意思是b<sub>n</sub>
和x<sub>n</sub>
在最后一行...无论如何,您可以这样做:
b=3*x;
b([1,end])=b([1,end])-3/4*y([1,end])
您也可以在一行中完成
b=3*x-3/4*[y(1); zeros(n-2,1); y(end)];
哪里n
是向量的长度。
关于matlab - 简单的 MATLAB 变量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6462250/