MATLAB中关于solve函数的用法

2025-01-01 00:42:55
推荐回答(5个)
回答1:

主要是这个命令上的错误,['num2str(T0)*(0.9)^x=',num2str(Tend)]

最后一句代码应该这样改一下就可以了。

Time1=ceil(double(solve([num2str(T0),'*(0.9)^x=',num2str(Tend)]))) %计算迭代的次数

修改后执行结果

回答2:

你将T0转化成字符串干什么?不知道你还有其他特殊的用途没有,我的理解就是你想解T0*(0.9)^x== 1e-30,这个用solve直接代进去解就可以了
syms x
Time=solve(T0*(0.9)^x== 1e-30,x)
如果你想了解solve的用法,用matlab的帮助文件查看一下,matlab的帮助文件还是很强大的,祝好!

回答3:

单引号里的东西是代表字符本身,系统不会认为它是一个变量或者数组名。solve('temp=1','p11')只会认为temp是要求解的未知量,结果是1,而你又要得到p11这个表达式里没有的东西,当然不可以咯。很简单,你把单引号去掉就可以了哦,此时等号也要去掉(右边默认为0)

回答4:

x1=1;x2=2;w=3;f=4; %假设它们的值是这些 g=10; y1=f*g; y2=-f*g; k=solve('-y2=(-8)*x2*w^2*(sin(k)+x1/(16*x2))^2+4*x2*w^2+((x1*w)^2)/(32*x2)','k') k=subs(k) 运行结果: k = asin(1/16/x2*(-x1*w+(x1^2*w^2+32*y2*x2+128*x2^2*w^2)^(1/2))/w) asin(1/16/x2*(-x1*w-(x1^2*w^2+32*y2*x2+128*x2^2*w^2)^(1/2))/w) k = 0.4569 -0.5279

回答5:

帮助文档是写在m文件里的,没有m文件help也就显示不出了
-------------------------------------------------
正常安装matlab后一定有solve函数。
之所以没有可能是你没有安装工具箱symbolic
或者文件夹symbolic没有导入到matlab的工作路径中