作业帮 > 综合 > 作业

matlab中,语句x=solve('x+cos(x)=0.6')可以得出结果,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/06/04 12:46:33
matlab中,语句x=solve('x+cos(x)=0.6')可以得出结果,
为什么语句H0=0.1;x=solve('x+cos(x)=0.5+H0')得不出结果呢?
函数solve的参数如果是字符串,其中的H0只是字符串的一部分,在解方程时被视为一个未知数,与工作区中的变量H0并不是一回事.
 
可以用两种方法解决:
1、定义符号变量,solve的参数使用符号表达式;
2、把变量H0转为字符串,并代替字符串中的'H0'.
 
示例:
>> H0=0.1;syms x;x=solve(x+cos(x)-(0.5+0.1)) 
x = 
-.34206425500873024081252106430336
 
>> H0=0.1;x=solve(['x+cos(x)=0.5+' num2str(H0)]) 
x = 
-.34206425500873024081252106430336