作业帮 > 综合 > 作业

matlab程序运行总是出现? Error using ==> sym.mpower Matrix must be sq

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 00:56:16
matlab程序运行总是出现? Error using ==> sym.mpower Matrix must be square. 加了“.”还是不行呀
m=zeros(1,50);a=zeros(1,50);b=zeros(1,50);f0=zeros(1,50);
syms d x1 x2 e;
m(1)=1;c=10;a(1)=0;b(1)=0;
f=16*x1+60*x2+e.*((2.667*x1.^2+30*x1.*x2-2285714.286).^2+(1.333*x1.^3+15*x1.^2.*x2-1677669903).^2); f0(1)=281458000000000000;
fx1=diff(f,'x1');
fx2=diff(f,'x2');
for k=1:100
x1=a(k);x2=b(k);e=m(k);
for n=1:100
f1=subs(fx1);
f2=subs(fx2);
if(double(sqrt(f1^2+f2^2))
dd=solve(Dd); x1=x1-dd.*f1; x2=x2-dd.*f2;
dd不止一个根,所以新生成的x1,x2就不是两个数字了,而是两个矩阵,之后:
f1=subs(fx1);
f2=subs(fx2);
f1,f2也变成矩阵,所以说
if(double(sqrt(f1^2+f2^2))
再问: f(double(sqrt(f1^2+f2^2)) sym.mtimes Inner matrix dimensions must agree.
再答: 15*(x1-d.*f1).^2后边少了个点 顺便说一下,你这样算D就是好几个方程了 Dd=diff(D,'d');这一步就会出现多个方程1个未知数的情形,然后每个方程又不止一个根,这样没完没了了 你还是想办法在循环中想办法把根过滤下,只保留一个根 就是想办法让每次循环得到的dd只有1个值