matlab 数值怎么写入字符串

来源:百度知道 编辑:UC知道 时间:2024/06/22 17:14:59
我通过自己编的函数计算出a=14;
我要把这个a的数值(也就是14)放到一个方程里
我是这样写的
'1+x^2+a'
我希望得到的是函数1+x^2+14
可是结果仍是1+x^2+a
谁能帮忙解决一下呀?
我是要用fzero('1+x^2+a')这个命令解1+x^2+a=0这个方程,而a是由上一个程序解出来的结果 。
我的目的是要求x,但用fzero括号内必须是字符串。

a=14;%这就是你算出的中间量
fzero(inline(subs('1+x^2+a','a',a)),1)%这样就可以了,fzero里面必须是函数

还有,1+x^2+14=0无实数解,得到的是nan(fzero是用数值迭代法求解的)
如果a=-14的话,就解得出了

既然你的a是个变量,那干嘛用sub,等到需要数值的时候再sub啊。
中途一定要用14这个符号替换a么?
syms也可以定义数值常量的。显示为数值,单不会代入计算。
----------------------------
原来你只是需要解这个方程,
求解方程的代码可以使用a,不用改。因为之前算出a了,所以在解方程时会自动将a赋值。
你可以用这两句代码试试:
a = -5; %表示你之前算出的 a = 某复杂算法;

z = fzero(@(x)1+x^2+a,3) %解你的方程

如果解为无穷大,那是方程本身无解。比如a为正值。

clear
syms a x;
subs('1+x^2+a',a,14)