matlab 给空矩阵赋值,请教matlab用数组给参数矩阵赋值的问题 - 程序语言 - 小木虫 - 学术 科研 互动社区...
我还是不是很明白你要做什么,你这个程序写的我有点看不懂。但有点建议,一:你这个应该没有必要用符号计算,符号计算很慢。二:你这个程序编写的不怎样,基础不是很好,写的有C语言的感觉,可能你的想法你没用程序表达出来,要不你说说你要干啥吧,我看能不能帮你。话说直了点,望不怪。下面是我没用符号计算程序,速度快了很多,但是还是存在错误,出不了结果,因为我还是没有理解你要干啥。j=1;z=20;r=32;for
我还是不是很明白你要做什么,你这个程序写的我有点看不懂。但有点建议,一:你这个应该没有必要用符号计算,符号计算很慢。二:你这个程序编写的不怎样,基础不是很好,写的有C语言的感觉,可能你的想法你没用程序表达出来,要不你说说你要干啥吧,我看能不能帮你。话说直了点,望不怪。
下面是我没用符号计算程序,速度快了很多,但是还是存在错误,出不了结果,因为我还是没有理解你要干啥。
j=1;z=20;r=32;
for l=32:34 %设定范围
i=1; tezheng=0;
for rad=0:l; %这两个for的步长可以根据运算效率适当放大
for thea=0:pi/10:2*pi;
m=rad*cos(thea);
n=rad*sin(thea);
d11=1/3*(3*r+3*m+sqrt(9*l^2-9*n^2-9*z^2));
d12=1/3*(6*r-3*m+3*n*sqrt(3)+sqrt(36*l^2-27*m^2-18*m*n*sqrt(3)-9*n^2-36*z^2));
d13=1/3*(6*r-3*m-3*n*sqrt(3)+sqrt(36*l^2-27*m^2+18*m*n*sqrt(3)-9*n^2-36*z^2));
B(i,=[m,n,z,d11,d12,d13];
a=(1/B(i,1))*[B(i,3)+r-B(i,4) 0 0;0 -0.866*B(i,2)-0.5*B(i,3)+r-B(i,5) 0;0 0 0.866*B(i,2)-0.5*B(i,3)+r-B(i,6)];
b=[B(i,1) B(i,2) B(i,3)+r-B(i,4);B(i,1) B(i,2)-0.866*r+0.866*B(i,5) B(i,3)-0.5*r+0.5*B(i,5);B(i,1) B(i,2)+0.866*r-0.866*B(i,6) B(i,3)-0.5*r+0.5*B(i,6)];
% c=inv(a);
d=a\b;%d为雅克比矩阵
e = norm(d,'fro'); %2范数
hh(i,1)=1/e;%把这个范数记录在hh中
tezheng=hh(i,1)+tezheng;%相加对于相同l值的对应的范数
i=i+1;
end
end
tezheng1(j,=tezheng/(i-1+eps);%把不同l值对应的范数求和再除以相应的l值 存在数组tezheng1中
j=j+1;
end
更多推荐
所有评论(0)