子函数:
“% 四维G-S变换
function A = FourGS(V)% V 为4*4向量”
V是4*4向量,怎么在调用时的y0是3*3向量?
“ y0 = [y(4) y(7) y(10);
y(5) y(8) y(11);
y(6) y(9) y(12)];
%正交化
y0 = FourGS(y0); ”
谢谢! 原帖由 weitaolu 于 2007-4-29 14:53 发表
请教一个问题,就是上面的程序:
子函数:
“% 四维G-S变换
function A = FourGS(V)% V 为4*4向量”
V是4*4向量,怎么在调用时的y0是3*3向量?
“ y0 = [y(4) y(7) y(10);
y(5) y(8) y(11);
...
Gauss-Seidel迭代,楼主为了方便,直接拿4维的Gauss-Seidel迭代程序算三维的
实际上Gauss-Seidel迭代理论上可以任意维的,主要是计算量问题
上面这个Gauss-Seidel迭代程序最多只能算到4维的
楼主
运算您的程序后出现:??? Attempted to access V(:,4); index out of bounds because size(V)=.
Error in ==> FourGS at 5
v4 = V(:,4);
请问如何解决?谢谢! 你用的那个程序,几楼的,7楼? 本帖最后由 牛小贱 于 2015-3-16 11:39 编辑
你这个问题我还真没有遇到过,关于GS变换,我觉得之前写的程序也是有问题,这样等于多一次变化,就要多写一次的代码,所以将现在用的GS代码公布如下:(转载并非个人原创)
function A = GS(V)
% G-S正交化
% A = GS(V)
% V 为n*n向量
% A 为n*n正交向量
%
% Example:
% A=GS()
%
% Author:yujunjie
% Author's email: ustb03-07@yahoo.com.cn
%
n=length(V);
for i=1:n
k=0;
for j=1:i-1
k=k+(A(:,j)'*V(:,i)/(A(:,j)'*A(:,j)))*A(:,j);
end
A(:,i)=V(:,i)-k;
end
octopussheng 发表于 2008-3-22 10:03 static/image/common/back.gif
你这个问题我还真没有遇到过,关于GS变换,我觉得之前写的程序也是有问题,这样等于多一次变化,就要多写一 ...
我想画一条以一个参数变化的lyapunov指数图,如果想把最后的一个数值取出,再循环该如何编写! 本帖最后由 牛小贱 于 2015-3-16 11:39 编辑
lihaitao123 发表于 2013-4-7 18:39 static/image/common/back.gif
我想画一条以一个参数变化的lyapunov指数图,如果想把最后的一个数值取出,再循环该如何编写!
clear;clc
global R
gama=linspace(20,30,100);
for i=1:100;
R=gama(i);
=lyapunov(3,@lorenz_ext,@ode45,0,0.5,200,,10);
lam(i)=max(Res(end,:));
hold on
end
figure(1)
plot(gama,lam);
title('Dynamics of Lyapunov exponents');
xlabel('R'); ylabel('Lyapunov exponents');这么写倒是解决了!!可是郁闷的是每种方法都有其一定适应性! lihaitao123 发表于 2013-4-7 21:09 static/image/common/back.gif
clear;clc
global R
gama=linspace(20,30,100);
如何使每一次计算都从同一个初值开始呢? {:{39}:}{:{39}:}{:{39}:} 如何使每一次计算都从同一个初值开始呢?每次的初值不都是=lyapunov(3,@lorenz_ext,@ode45,0,0.5,200,,10);中的吗
页:
1
[2]