早教吧 育儿知识 作业答案 考试题库 百科 知识分享

matlab解连续几组三元一次方程组b=[6716766826846846896596286456566786786636706786736756776606616646676676706566676686726656586316366406396476536426446436456466486416416426436456466456306416426426

题目详情
matlab解连续几组三元一次方程组
b=[671 676 682 684 684 689
659 628 645 656 678 678
663 670 678 673 675 677
660 661 664 667 667 670
656 667 668 672 665 658
631 636 640 639 647 653
642 644 643 645 646 648
641 641 642 643 645 646
645 630 641 642 642 642
641 631 643 648 641 641
629 639 639 639 639 640];
[r,c]=size(b);
sym d
d=zeros(r,1)
s=zeros(1,3)
syms i
for i=1:r
s=solve('x*b(i,1)+y*b(i,2)+z*b(i,3)=b(i,4)','x*b(i,2)+y*b(i,3)+z*b(i,4)=b(i,5)','x*b(i,3)+y*b(i,4)+z*b(i,5)=b(i,6)','x,y,z');
result=[s.x,s.y,s.z];
d(i,1)=s.x*b(i,4)+s.y*b(i,5)+s.z*b(i,6)
end
解三元一次方程组,每一行前三个分别乘以xyz等于第四个数,每一行第二三四的数分别乘以xyz等于第五个数,每一行第三四五的数分别乘以xyz等于第六个数,再由解出来xyz分别乘以每行第四五六的数求出一个值,再将每个值填进向量d当中.改了好久一直有问题,
▼优质解答
答案和解析
试试这个
clear all
b=[671 676 682 684 684 689
659 628 645 656 678 678
663 670 678 673 675 677
660 661 664 667 667 670
656 667 668 672 665 658
631 636 640 639 647 653
642 644 643 645 646 648
641 641 642 643 645 646
645 630 641 642 642 642
641 631 643 648 641 641
629 639 639 639 639 640];
[r,c]=size(b);
d=zeros(r,1);
for i=1:r-1
syms x y z
f1=x*b(i,1)+y*b(i,2)+z*b(i,3)-b(i,4);
f2=x*b(i,2)+y*b(i,3)+z*b(i,4)-b(i,5);
f3=x*b(i,3)+y*b(i,4)+z*b(i,5)-b(i,6);
S=solve(f1,f2,f3);
result=[S.x,S.y,S.z];
d(i,1)=result(1)*b(i,4)+result(2)*b(i,5)+result(3)*b(i,6);
end
注意b的最后一行无解,所以loop是从1到r-1.