zxqk.net
当前位置:首页 >> mAtlAB用solvE求表达式 >>

mAtlAB用solvE求表达式

是不是要在最后那个 'ti1' 的前面加个逗号啊?没有逗号隔开肯定出错啊~ 对了 你还要在solve 前面加上subs(solve())函数,不然系统不认识你之前算出来的值

你可以不再Command Window里面操作,在m文件中写命令,不要显示表达式或者在Command Window中也不要显示表达式

这是由于matlab里面有个关于默认自变量规定问题 一般情况下默认自变量为表达式中距离x最近的字母 你可以用这种方法来求解 [x0]=solve('2600*(z0+15)=(z0-24985)*x1') [z0]=solve('2600*(z0+15)=(z0-24985)*x1') 由于上两行行中只有x1与z0两个变量,而且x1与x较近,所以是求解x1 为了求解z0,可以用 [z0]=solve('2600*(z0+15)=(z0-24985)*x1','z0') 这样的话就没问题了 建议你指定代求变量 相关函数 findsym 查找自变量,比较有用

s= solve (eq1,eq2,eq3, x,y,z);返回的是一个结构体变量 可以改成[x1 x2 x3]= solve (eq1,eq2,eq3, x,y,z); x1,x2,x3分别对应x,y,z的值

subs(表达式,符号,符号赋值)通过这样就可以对表达式中的符号赋值,从而得到数值解.

matlab的运行结果是: 0 -8.0000 -8.5000 - 0.8660i -0.0000 + 0.0000i -8.5000 + 0.8660i -0.0000 - 0.0000i上面的结果自身就是不正确的,我分析的原因是:matlab先求出了解析解,接着代入系数值,由于matlab运算精度低,系数又太多,公式极

用 subs(z) 就可以.不过,由于solve求解的是关于z的6次方程,求出的有6个根,直接代入会把6个根都混杂在一起.如果需要的话,最好逐个代入,例如,对第一个根就用 subs(z(1)).

clear;clc;syms H Sc=4.4545[H,S]=solve(H==(5-0.514+0.00659*S+2.014*log10(S+10))/1.5,H==c)fprintf(1,'H=%f\nS=%f\n',H,S)

记得好像是solve('x^2+4*x-100=0')也可以syms x;y=x^2+4*x; solve(y-100,'x')

>> syms x y z>> solve('x^2+y+z^3') // 默认输出x的表达式.ans = (-y-z^3)^(1/2) -(-y-z^3)^(1/2)>> solve('x^2+y+z^3',y) //自己制定y.ans =-x^2-z^3

mwfd.net | qimiaodingzhi.net | zdly.net | xmjp.net | 5689.net | 网站首页 | 网站地图
All rights reserved Powered by www.zxqk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com