当前位置:首页 > 基于MATLAB的数值分析编程上机作业1
基于MATLAB的数值分析编程上机作业(1)
班级:学号:姓名:日期:页数:
基于MATLAB的数值分析编程上机作业(1)
一、给定向量x≠0,计算初等反射阵H。 1、基本原理: 若x??x,x,?,x??R的分量不全为零,则由
???sign(x1)x2??u?x??e1?(x1??,x2,?,xn)?12? ???u2??(??x1)2??uuT?1T?H?I?22?I??uuu2??确定的镜面反射阵H使得Hx???e?y;当(1?k?n)时,由
n?21/2??k?sign(xk)(?(xi))i?k??u(k)?(0,?,0,xk??k,xk?1,?,xn)T?Rn ????1(u(k))Tu(k)??(??x)=?(u(k))Tkkkk?k2??1(k)(k)T?Hk?I??ku(u)有Hkx?(x1,x2,?,xk?1,??k,0,?,0)T?Rn 算法1:
1、 输入x 2、 将x规范化, M?max?x,x,?,x如果M=0,则转出停机 ? 否则xi?xiM,i?1,2,?,n 3、 计算??x2,如果x1?0,则???? 4、???(??x1) 5、计算u?x,u(1)?x1?? 6、H?I??uu 7、y?(?M?,0,?,0) 8、按要求输出 结束
1
?1T基于MATLAB的数值分析编程上机作业(1)
2、程序代码: function [p,u]=holder2(x) %HOLDER2 给定向量x≠0,计算Householder初等变换阵的p,u %程序功能:函数holder2给定向量x≠0,计算Householder初等变换阵的p,u; %输入:n维向量x; %输出:[p,u]。p是Householder初等变换阵的系数ρ, % u是Householder初等变换阵的向量U。 %使用举例: % [p,u]=holder2(x) Tfine variables: % x - 输入的n维向量; % n - n维向量x的维数; % M - M是向量x的无穷范数,即x中绝对值最大的一项的绝对值; % p - Householder初等变换阵的系数ρ; % u - Householder初等变换阵的向量U % s - 向量x的二范数; n=length(x); % 得到n维向量x的维数; p=1;u=0; % 初始化p,u; M=max(abs(x)); % 得到向量x的无穷范数,即x中绝对值最大的一项的绝对值; if M==0 % 如果x=0,提示出错,程序终止; disp('M=0'); return; else x=x/M; % 规范化 end; s=norm(x); % 求x的二范数 if x(1)<0 % 首项为负,s值要变号 s=-s; end u=x; % 除首项外,其余各项x,u相同 u(1)=s+x(1); % 计算u的首项 p=s*u(1); % 计算p if n==1 u=0; end % 若x是1×1维向量,则u=0
function H=holderk(x,k) %HOLDERK 给定向量x≠0,数k,计算初等反射阵Hk,使HkX=Y,其中Y的第k+1项到最后项全为零; %程序功能:函数holderk给定向量x≠0,数k,计算初等反射阵Hk,使HkX=Y,%程序功能:函数holder2给定向量x≠0,计算Householder初等变换阵的p,u; %输入:n维向量x,数k; %输出:H。H是Householder初等变换阵,H*x=y,使得y的第k+1项到最后项全为零; %引用函数: % holder2;示例 [p,u]=holder2(x);
2
基于MATLAB的数值分析编程上机作业(1)
%使用举例: % H=holderk(x,k) Tfine variables: % x - 输入的n维向量; % n - n维向量x的维数; % p - Householder初等变换阵的系数ρ; % u - Householder初等变换阵的向量U % k - 数k,H*x=y,使得y的第k+1项到最后项全为零; n=length(x); % 得到n维向量x的维数; H=eye(n); % 初始化H,并使H(1:k,1:k)=I; [p,u]=holder2(x(k:n)); % 得到计算Householde初等变换阵的系数ρ、向量U; H(k:n,k:n)=eye(n-k+1)-p\%u*u'; % 计算H(k:n,k:n)=I-p\%u*u';
3、计算实例: >> x=[2,0,2,1]' x = 2 0 2 1 >> H=holderk(x,3) H = 1.0000 0 0 0 0 1.0000 0 0 0 0 -0.8944 -0.4472 0 0 -0.4472 0.8944 >> H*x ans = 2.0000 0 -2.2361 0 3
共分享92篇相关文档