1、首先看一下matlab求解方程的方法,首先指明所解方程的变量,然后指明方程,未知数和限制条件,最后求解方程。
2、在matlab命令行窗口中输入symsx[x,params,conds]=solve(sin(x)==1,'ReturnConditions', true),按回车键可以得到方程解。
3、转换一下,可以看到sin(x)=1方程的解是如下图所示 。
4、也可以求解下面的一个方程。
5、输入symsabcyx;[x,y]=solve([a*x^2+b*y+c==0,a*x+2*y==4],[x,y])。
6、按回车键可以得到方程解。
出错原因:下列的函数表达式定义错误,
x=fmincon('((-3*x(1)+2*x(2)+fval1)^2+(4*x(1)+3*x(2)+fval2)^2)^(1/2)',x0,A,b,[],[],lb,[])
纠正方法,用句柄函数来定义函数表达式,即
@(x)((-3*x(1)+2*x(2)+fval1)^2+(4*x(1)+3*x(2)+fval2)^2)^(1/2)
完整写法如下,
x=fmincon(@(x)((-3*x(1)+2*x(2)+fval1)^2+(4*x(1)+3*x(2)+fval2)^2)^(1/2),x0,A,b,[],[],lb,[])
更改后运行,可得到
x1 = 0.1756;x2= 5.8829
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)