MATLAB 2016 A解方程时出现如图所示的两个警告,似乎想让我创建一个叫symbolic的变量,请问该如何创建? matlab编程解复数方程

\u89e3\u542b\u53c2\u6570\u7684\u7ebf\u6027\u65b9\u7a0b\u7ec4\uff0c\u7528MATLAB\u6216\u5176\u4ed6\u7f16\u7a0b\u8bed\u8a00\u3002

\u6ca1\u7528\u8fc7Matlab,\u540e\u9762\u7684\u8fd9\u4e9b\u4ee3\u7801
disp('S.b'),disp(S.b),disp('S.c'),disp(S.c),disp('S.d'),disp(S.d),disp('S.e'),disp(S.e),disp('S.f'),disp(S.f),disp('S.g'),disp(S.g)
\u6211\u4e0d\u660e\u767d\u4ec0\u4e48\u610f\u601d
\u5982\u679c\u4f60\u662f\u60f3\u7531\u524d\u9762\u7684\u516d\u4e2a\u65b9\u7a0b\u7ec4\u6c42\u89e3b,c,d,e,f,g\u7684\u8bdd\u53ef\u4ee5\u7528Mathematica\u7f16\u7a0b\u6c42\u89e3\u5982\u4e0b:
Solve[{a*b -
a*c - e - f == h, a*c + a*d - f + g == i, -a*b -
a*d - e + g == j, a*b - a*d + e + g == k, -a*c +
a*d + f + g == m, a*b + a*c - e + f == n}, {b, c, d, e, f, g}]
\u6c42\u89e3\u7684\u7ed3\u679c\u5982\u4e0b:
b=(h-j+k+n)/(4a);c=(-h+i-m+n)/(4a);d=(i-j-k+m)/(4a);e=-h-j+k-n)/4;f=(-h-i+m+n)/4;g=(i+j+k+m)/4

>> syms x y
>> s=solve('x+y=20+15*i','x*y=10+2*i')
s =
x: [2x1 sym]
y: [2x1 sym]
>> s.x,s.y
ans =
(592*i + 135)^(1/2)/2 + 10 + (15*i)/2
10 - (592*i + 135)^(1/2)/2 + (15*i)/2
ans =
10 - (592*i + 135)^(1/2)/2 + (15*i)/2
(592*i + 135)^(1/2)/2 + 10 + (15*i)/2

MATLAB 中用 solve 函数解方程历史上经历几次变化:

1、如题主这样,使用字符串作为输入参数,到目前为止还是可以使用的,但会发出警告,意思是将来不再支持这种做法,建议修改为使用符号表达式的做法。

2、较为通行的做法是,先定义符号变量,然后对符号表达式求解:

syms x
x0 = solve(x^2+100*x+99)

注意,solve的参数不能带等号,solve(eqx) 的意思就是求 eqx=0 的解。当然,也可以用附加的参数指定把哪个变量作为方程的未知数(如果不指定,默认做法会按照字母表中最靠近字符x的顺序来确定未知数):

x0 = solve(x^2+100*x+99,x)


3、比较新的版本(具体是哪个不太确定,大约是2014之后),可以使用等号来表达方程:

x0 = solve( x^2+100*x+99 == 0 )

注意,是连续的两个等号,而不是一个。



syms x
x0 = solve(x^2+100*x+99)


最前面添加代码:syms x;

扩展阅读:matlab2016a迅雷下载 ... matlab2016破解版百度云 ... matlab2016a仿真怎么用 ... lms test lab ... matlab2016a安装教程 ... matlab2016a激活教程 ... matlab r2016a安装 ... matlab r2018b ... matlab2016使用教程 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网