作业帮 > 综合 > 作业

matlab的方程式求解问题!(急)~

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/06 13:13:02
matlab的方程式求解问题!(急)~
 下面这段程序哪里有问题,要怎么改过来? 
例如:主要是给定M=4,2个a值,通过满足以下两个式子,求另外两个数值

 handles.metricdata.M=4;
  handles.metricdata.a1=0.5;
   handles.metricdata.a2=0.35;
M = handles.metricdata.M;
for i=1:M-2
    express=['a(',int2str(i),')=','handles.metricdata.','a',int2str(i)];
    eval(express);
end
a                                
%这边a为什么显示不是a=[0.5 0.35]

na = length(a);
k = ones(na,1).*(-1).^(0:na-1)';
a11  = sum(a);
a12  = sum(k.*a);      %这边会显示‘.*'是错的,为什么?
if mod(na,2)==1
    am2 = (1-a11-a12)/2;
else
    am2 = (a12-a11+1)/2;
end
am1 = 1 -a11 -am2;
a = [a;am1;am2];
matlab的方程式求解问题!(急)~
试试修改后的代码
handles.metricdata.M=4;
handles.metricdata.a1=0.5;
handles.metricdata.a2=0.35;
M = handles.metricdata.M;
for i=1:M-2
express=['a(',int2str(i),')=','handles.metricdata.','a',int2str(i)];
eval(express);
end
a
%这边a为什么显示不是a=[0.5 0.35]
na = length(a);
k = ones(1,na).*(-1).^(0:na-1);
a11 = sum(a);
a12 = sum(k.*a); %这边会显示‘.*'是错的,为什么?
if mod(na,2)==1
am2 = (1-a11-a12)/2;
else
am2 = (a12-a11+1)/2;
end
am1 = 1 -a11 -am2;
a = [a am1 am2];
再问: 你把断点设置在a那边看下。 它的结果是a=[0.5 0.35 0 0.15] 我想要的是a=[0.5 0.35]。 您再帮我看下。谢谢哇!
再答: 首先在程序最开始加上一句 clear,clc 然后加断点,运行到a那行后的结果应该就是 a = 0.5000 0.3500 啊