matlab solve 求解方程组算例遇到的问题1#和2#程序类似,1#运行没问题,但是2#运行会出现Error using ==> subsasgnSubscripted assignment dimension mismatch.Error in ==> sym.subsasgn at 33y = builtin('subsasgn',sx,a,b);请问问题
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/18 08:50:29
matlab solve 求解方程组算例遇到的问题1#和2#程序类似,1#运行没问题,但是2#运行会出现Error using ==> subsasgnSubscripted assignment dimension mismatch.Error in ==> sym.subsasgn at 33y = builtin('subsasgn',sx,a,b);请问问题
matlab solve 求解方程组算例遇到的问题
1#和2#程序类似,1#运行没问题,但是2#运行会出现
Error using ==> subsasgn
Subscripted assignment dimension mismatch.
Error in ==> sym.subsasgn at 33
y = builtin('subsasgn',sx,a,b);
请问问题出现在哪里,新手财富值不多,望大侠赐教,下面是程序代码
%1#
clc
clear
syms a b
c=1
d=2:1:10
n=length(d)
for i=1:n
A=a+b*d(i)-d(i)+c
B=a-b/2*d(i)+d(i)^2
equ1=A-3*b+4*c
equ2=B+a-2*c
[x(i),y(i)]=solve(equ1,equ2)
end
x'
%2#
clc
clear
syms a b
c=1
d=1:1:3
n=length(d)
for i=1:n
F=2*d(i) %6
G=d(i)/3+2*c %3
H=d(i)-2*c %1
equ1=(a-F)^2+(b-G)^2-18
equ2=(a-G)^2+(b+H)^2-18
[x(i),y(i)]=solve(equ1,equ2)
end
x'
matlab solve 求解方程组算例遇到的问题1#和2#程序类似,1#运行没问题,但是2#运行会出现Error using ==> subsasgnSubscripted assignment dimension mismatch.Error in ==> sym.subsasgn at 33y = builtin('subsasgn',sx,a,b);请问问题
clc
clear
syms a b
c=1
d=1:1:3
n=length(d)
x=zeros(2,length(d));
y=zeros(2,length(d));
for i=1:n
F=2*d(i); %6
G=d(i)/3+2*c; %3
H=d(i)-2*c; %1
equ1=(a-F)^2+(b-G)^2-18;
equ2=(a-G)^2+(b+H)^2-18;
[x(:,i),y(:,i)]=solve(equ1,equ2)
end
预分配一下向量内存即可.
你的错误在第二段的代码中的[x(i),y(i)]=solve(equ1,equ2)。
因为这是方程1和方程2是2二次方程,各有2个解;而x(i),y(i)只能接受一个值,故维数对不上,英文是“dimension mismatch”。
我想知道这个后你应该很容易改了。