关于matlab解决一元多次方程的问题。
我在matlab中用solve解决有如solve(x^2+3*x=7)能很快得到答案。但是当我要求解的式子是在一个算法中,并且是一个迭代算法,设式子中的常量a,b会随着每...
我在matlab中用solve解决有如solve(x^2+3*x=7)能很快得到答案。但是当我要求解的式子是在一个算法中,并且是一个迭代算法,设式子中的常量a,b会随着每次循环改变,比如a=2,b=3,那么solve(x^a+3*x=7)就不能很好的解出我想要的x。请问碰到这种问题应该怎么解决呢?谢谢。
展开
1个回答
展开全部
1、题主【solve(x^2+3*x=7)】这样的写法居然能求出答案?姑且不说全角括号的错误,方程中允许出现等号?
2、如果是把方程写在字符串中,solve('x^2+3*x=7'),那么,用solve('x^a+b*x=7')肯定是不行的。那样a和b都是作为不确定的常数,极有可能不满足代数方程有解的条件。
3、就变参数问题而言,大多数情况下可以用匿名函数或嵌套函数。
2、如果是把方程写在字符串中,solve('x^2+3*x=7'),那么,用solve('x^a+b*x=7')肯定是不行的。那样a和b都是作为不确定的常数,极有可能不满足代数方程有解的条件。
3、就变参数问题而言,大多数情况下可以用匿名函数或嵌套函数。
追问
恩,我忘了在括号里加引号了。这个问题我也找到了解决的办法。先用f=solve('x^a+b*x=7','x')解出x关于a b的表达式,在用
g=subs(f,'a',2)
h=subs(g,'b',3)这两条解出x的数值。
不过着各种方法对比较复杂的方程也不好用,所以还是用嵌套函数写迭代法好一些。还是感谢你的帮忙。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询