MATLAB中关于solve函数的用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB中关于solve函数的用法相关的知识,希望对你有一定的参考价值。
T0=1e10;
Tend=1e-30;
L=2;
q=0.9;
Time=ceil(double(solve(['num2str(T0)*(0.9)^x=',num2str(Tend)])));%计算迭代的次数
上面这个程序一运行就出现以下问题,我也不知道式之中引号应该往哪里放
错误使用 solve>getEqns (line 418)
List of equations must not be empty.
出错 solve (line 226)
[eqns,vars,options] = getEqns(varargin:);
主要是这个命令上的错误,['num2str(T0)*(0.9)^x=',num2str(Tend)]
最后一句代码应该这样改一下就可以了。
Time1=ceil(double(solve([num2str(T0),'*(0.9)^x=',num2str(Tend)]))) %计算迭代的次数
修改后执行结果
参考技术A 你将T0转化成字符串干什么?不知道你还有其他特殊的用途没有,我的理解就是你想解T0*(0.9)^x== 1e-30,这个用solve直接代进去解就可以了syms x
Time=solve(T0*(0.9)^x== 1e-30,x)
如果你想了解solve的用法,用matlab的帮助文件查看一下,matlab的帮助文件还是很强大的,祝好! 参考技术B 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 参考技术C 单引号里的东西是代表字符本身,系统不会认为它是一个变量或者数组名。solve('temp=1','p11')只会认为temp是要求解的未知量,结果是1,而你又要得到p11这个表达式里没有的东西,当然不可以咯。很简单,你把单引号去掉就可以了哦,此时等号也要去掉(右边默认为0) 参考技术D 帮助文档是写在m文件里的,没有m文件help也就显示不出了
-------------------------------------------------
正常安装matlab后一定有solve函数。
之所以没有可能是你没有安装工具箱symbolic
或者文件夹symbolic没有导入到matlab的工作路径中
MySQL中关于coalesce的用法
coalesce在sql中其实是一个很有用的函数;coalesce()主要作用是返回第一个非null值;
例如:
coalesce(null, null, 2, 4) ==> 返回2,
coalesce(null,null) ==> 返回null
当然,coalesce()函数的最主要作用判断一个值是不是null,如果是,则返回一个定值,
例如:
coalesce(money,0) ==> 解释: 返回数据库中字段为money的值,如果money为null,则返回0;
这个就相当于case when ... then ... end
以上是关于MATLAB中关于solve函数的用法的主要内容,如果未能解决你的问题,请参考以下文章