首页 > 其他分享 >使用QR分解 求一元四次方程的根

使用QR分解 求一元四次方程的根

时间:2024-04-05 11:32:34浏览次数:29  
标签:一元 QR 特征值 矩阵 a1 四次 a2 收敛

        在求特征值的时候,通过QR迭代后就是一个拟上三角矩阵,但不一定是上三角矩阵。

        在一定条件下,由QR算法生成的序列{Ak}收敛为Schur分块上三角形,对角块按特征值的模从大到小排列。但有特殊情况,当收敛结果为Schur分块上三角形时,序列{Ak}的对角块以上的元素以及2阶块的元素不一定收敛。需要继续求得该二阶矩阵的特征值,补充到原矩阵的特征值中即可。

        其matlab代码如下:

% a1*x^4+a2*x^3+a3*x^2+a4*x+a5 = 0

A = [-a2/a1, -a3/a1, -a4/a1, -a5/a1;
     1,0,0,0;
     0,1,0,0;
     0,0,1,0];
i = 0;
while i<1
    i = i+1;
    B1 = A  ;
    r1 = sqrt(B1(1,1)^2+B1(2,1)^2);
    c1 = B1(1,1)/r1;
    s1 = B1(2,1)/r1 ;   
    R21 = [c1,s1,0,0;
           -s1,c1,0,0;
           0,0,1,0;
           0,0,0,1] ; 
    B2 = R21*B1;
    r2 = sqrt(B2(2,2)^2+B2(3,2)^2);
    c2 = B2(2,2)/r2;
    s2 = B2(3,2)/r2  ;
    R32 = [1,0,0,0;
           0,c2,s2,0;
           0,-s2,c2,0;
           0,0,0,1]  ;
    B3 = R32*B2 ;
    r3 = sqrt(B3(3,3)^2+B3(4,3)^2);
    c3 = B3(3,3)/r3;
    s3 = B3(4,3)/r3   ; 
    R43 = [1,0,0,0;
           0,1,0,0;
           0,0,c3,s3;
           0,0,-s3,c3];
    B4 = R43*B3  ;  
    Q = R21'*R32'*R43';
    R = R43*R32*R21*B1;
    A1 = R*Q;
    norm(A-Q*R);
    A = A1 ;
end

g1 = A(1,1);
g2 = A(1,2);
g3 = A(2,1);
g4 = A(2,2);
g5 = A(3,3);
g6 = A(3,4);
g7 = A(4,3);
g8 = A(4,4);
m = (g1+g4)/2;
n = g1*g4-g2*g3;
m1 = (g5+g8)/2;
n1 = g5*g8-g6*g7;

x1 = m+sqrt(m^2-n)
x2 = m-sqrt(m^2-n)
x3 = m1+sqrt(m1^2-n1)
x4 = m1-sqrt(m1^2-n1)

标签:一元,QR,特征值,矩阵,a1,四次,a2,收敛
From: https://blog.csdn.net/2301_77102058/article/details/137249262

相关文章

  • 【数据结构】一元多项式的表示与相加(无序输入 有序输出)
    一元多项式的表示与运算——课程设计(无序输入有序输出)目录一元多项式的表示与运算——课程设计(无序输入有序输出)一.例题:(输入无序,指数升序排列的一元多项式)1.链表结点定义2.创建单链表存放一元多项式(将无序的输入有序存放于链表)3.输出一元多项式4.一元多项式求值......
  • SAP BW 增量抽取报错任务 ODQR_***** 已失败
    修复处理链发现一直报错,报错信息如下: 怀疑是源端的增量出现问题:打开源端,TCODE:ODQMON 选择,双击进入 找到对应的DTP,双击进入  找到增量出错的那条,点击,尝试重新抽取增量,如果不行,看后台任务是否还在运行,如果报错任务直接删掉。然后更新请求状态,变成了红叉,直接运行DTP......
  • P1024 [NOIP2001 提高组] 一元三次方程求解
    题目描述有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在 −100 至 100 之间),且根与根之差的绝对值 ≥1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后......
  • 高等数学基础篇之判断一元函数是否连续、可导、可微,极限、原函数是否存在
    一元函数:一、极限存在的条件二、连续的条件三、可导的条件四、可微的条件五、原函数存在的条件目录一、极限存在的条件1.自变量趋于无穷大时函数的极限2.自变量趋于有限值时函数的极限二、连续的条件1.自变量改变量趋于0时,函数值改变量也趋于02.该点的极限等于该......
  • NET Core使用Grpc通信(一):一元请求
    gRPC是一个现代的开源高性能远程过程调用(RPC)框架,它可以高效地连接数据中心内和跨数据中心的服务,支持负载平衡、跟踪、运行状况检查和身份验证。gRPC通过使用ProtocolBuffers作为数据传输格式,实现了在不同平台上的通信,并支持双向流和流式传输。RPC是远程过程调用的缩写,实现......
  • qrcodejs2 首次生成微信支付二维码不渲染问题
    使用qrcodejs2生成微信支付二维码,后端向前端传递了微信二维码url,通过此方法生成渲染二维码图片  qrcode(url){ //前端根据URL生成微信支付二维码   console.log("调用二维码生成")   //先清除,后增加   document.getElementById("qrcodeIm......
  • 山东大学23强基班计算机导论第四次习题答案
    T7.1#include<iostream>usingnamespacestd;intmain(){intlower,upper;cin>>lower>>upper;if(lower>upper||upper>100||lower<=0){cout<<"Invalid.";return0;}......
  • TCP三次握手、四次挥手出现意外情况时,如何保证稳定可靠?
    TCP作为一个靠谱的协议,在传输数据的前后,需要在双端之间建立连接,并在双端各自维护连接的状态。TCP并没有什么特别之处,在面对多变的网络情况,也只能通过不断的重传和各种算法来保证可靠性。建立连接前,TCP会通过三次握手来保证双端状态正确,然后就可以正常传输数据了。当数据传......
  • HCIA——三、TCP四次挥手及其wireshark抓包
    ZYHCIA所有内容:TCPTCP四次挥手全过程第一次挥手第二次挥手第三次挥手第四次挥手补充wireshark抓包工具1、搭建拓扑图2、手配ip地址与子网掩码3、服务器启动HTTP服务4、客户端访问HTTP服务器全过程5、TCP数据包数据包信息第一行以及它所包含的信息:数据包信息第二行以及它......
  • 心电生理信号处理:基于MATLAB的心电生理信号处理和分析,包括心电信号滤波、QRS检测和心
    鱼弦:公众号【红尘灯塔】,CSDN内容合伙人、CSDN新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)基于MATLAB的心电生理信号处理:原理、应用、实现与分析1.心电生理信号处理概述......