c语言求矩阵特征值的程序,如何用C语言编写求对称矩阵的特征值和特征向量的程序编写对称矩阵的特征值和特征向量,其中矩阵用二维数组保存.特征向量要求有大到小放到数组里....
优质解答
//数值计算程序-特征值和特征向量
//
//约化对称矩阵为三对角对称矩阵
//利用Householder变换将n阶实对称矩阵约化为对称三对角矩阵
//a-长度为n*n的数组,存放n阶实对称矩阵
//n-矩阵的阶数
//q-长度为n*n的数组,返回时存放Householder变换矩阵
//b-长度为n的数组,返回时存放三对角阵的主对角线元素
//c-长度为n的数组,返回时前n-1个元素存放次对角线元素
void eastrq(double a[],int n,double q[],double b[],double c[]);
//
//求实对称三对角对称矩阵的全部特征值及特征向量
//利用变型QR方法计算实对称三对角矩阵全部特征值及特征向量
//n-矩阵的阶数
//b-长度为n的数组,返回时存放三对角阵的主对角线元素
//c-长度为n的数组,返回时前n-1个元素存放次对角线元素
//q-长度为n*n的数组,若存放单位矩阵,则返回实对称三对角矩阵的特征向量组
// 若存放Householder变换矩阵,则返回实对称矩阵A的特征向量组
//a-长度为n*n的数组,存放n阶实对称矩阵
int ebstq(int n,double b[],double c[],double q[],double eps,int l);
//
//约化实矩阵为赫申伯格(Hessen berg)矩阵
//利用初等相似变换将n阶实矩阵约化为上H矩阵
//a-长度为n*n的数组,存放n阶实矩阵,返回时存放上H矩阵
//n-矩阵的阶数
void echbg(double a[],int n);
//
//求赫申伯格(Hessen berg)矩阵的全部特征值
//返回值小于0表示超过迭代jt次仍未达到精度要求
//返回值大于0表示正常返回
//利用带原点位移的双重步QR方法求上H矩阵的全部特征值
//a-长度为n*n的数组,存放上H矩阵
//n-矩阵的阶数
//u-长度为n的数组,返回n个特征值的实部
//v-长度为n的数组,返回n个特征值的虚部
//eps-控制精度要求
//jt-整型变量,控制最大迭代次数
int edqr(double a[],int n,double u[],double v[],double eps,int jt);
//
//求实对称矩阵的特征值及特征向量的雅格比法
//利用雅格比(Jacobi)方法求实对称矩阵的全部特征值及特征向量
//返回值小于0表示超过迭代jt次仍未达到精度要求
//返回值大于0表示正常返回
//a-长度为n*n的数组,存放实对称矩阵,返回时对角线存放n个特征值
//n-矩阵的阶数
//u-长度为n*n的数组,返回特征向量(按列存储)
//eps-控制精度要求
//jt-整型变量,控制最大迭代次数
int eejcb(double a[],int n,double v[],double eps,int jt);
//
选自
每个程序都加上了适当地注释,陆陆续续干了几个月才整理出来的啊.
今天都给贴出来了
#include "stdio.h"
#include "math.h"
//约化对称矩阵为三对角对称矩阵
//利用Householder变换将n阶实对称矩阵约化为对称三对角矩阵
//a-长度为n*n的数组,存放n阶实对称矩阵
//n-矩阵的阶数
//q-长度为n*n的数组,返回时存放Householder变换矩阵
//b-长度为n的数组,返回时存放三对角阵的主对角线元素
//c-长度为n的数组,返回时前n-1个元素存放次对角线元素
void eastrq(double a[],int n,double q[],double b[],double c[])
{
int i,j,k,u,v;
double h,f,g,h2;
for (i=0; i1)
{
for (k=0; k0.0)
{
c[i-1]=-c[i-1];
}
h=h-q[u]*c[i-1];
q[u]=q[u]-c[i-1];
f=0.0;
for (j=0; j
c语言求矩阵特征值的程序,如何用C语言编写求对称矩阵的特征值和特征向量的程序编写对称矩阵的特征值和特征向量,其中矩阵用二维数组保存.特征向量要求有大到小放到数组里....相关推荐
- C语言编程>第七周 ⑧ 请编一个函数void fun(int a[M][N],int b[N]),c指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入b所指一维数组中。
例题:请编一个函数void fun(int a[M][N],int b[N]),c指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入b所指一维数组中.二维数组中的数己在主函数中赋予. ...
- 调用网易云二维码登录API,实现微信小程序登录
调用网易云二维码登录API,实现微信小程序登录 首先前往网易云音乐API官网 binaryify.github.io/NeteaseClou- 首先根据文档的链接下载好配置文件,再根据官方文档启动好本 ...
- 一码多用:扫描一个二维码自动跳转支付宝/微信小程序、安卓/iosAPP
随着支付宝,微信小程序的慢慢崛起,现在很多公司同一款程序都开发了四个版本.支付宝/微信小程序.安卓/iosAPP.但是随着程序的增加,引导用户使用就成了问题.比如,一家店门口如何贴一张二维码.实现用户 ...
- 二维火收银系统服务器超时,小店难开,二维火收银告诉你“再小的店也可以拥有智慧收银系统”!...
原标题:小店难开,二维火收银告诉你"再小的店也可以拥有智慧收银系统"! 小本经营,如何在控制成本的同时还能不影响店铺经营是现在很多小店商家寻求的解决方法.为了更好地帮助个体商户和小 ...
- 小程序分享自己的二维码 保存到相册
wxml的代码 重要的就一个 canvas-id <view class="zhezao" hidden="{{flag}}"><view c ...
- 二维码门禁(基于微信小程序)
门禁系统是一个经典系统,很多人都在做,比如说指纹门禁.人脸门禁等.二维码门禁相比于传统的门禁有什么特点:1:权限分明,2:日志跟踪,3:管理方便. 硬件:二维码扫描器.继电器.电池锁.网线 软件:微信 ...
- 二维码保存时看到是一张纯黑色图片问题
二维码生成和保存的小常识:一般zxing自动生成的二维码是根据坐标来绘制黑色点,来生成最后的二维码,但是白色区域其实是没有绘制的,理论上是透明色,但为什么把生成的bitmap设置到imageview中 ...
- js将两个图片保存下载(二维码保存为例)
1.两个图片保存的原理 要将两个图片保存下载,要使用h5的canvas来实现,不需要引用任何插件就可以实现.这里使用canvas的drawImage函数,利用这个函数可以将两个图片都放入画布中,然后调 ...
- Python生成动态二维码,又掌握了一个小技巧
有点无聊,用Python来生成一个动态二维码吧,只需要几行代码~ 模块相关 我们要用到的是,MyQR这个库, 当然,最直接的方式,就是pip install pip install MyQR 参数讲解 ...
最新文章
- 年薪75万的真实技术面试实践攻略(篇章二)
- Deep Learning | 深度学习介绍与基本概念
- 在SQL Server中分页结果的最佳方法是什么
- 批处理bat中的脚本
- JQUERY 常用方法汇总
- java处理高并发高负载类网站的优化方法
- FusionCharts参数的详细说明和功能特性
- 基于Spring开发的DUBBO服务接口测试
- caffe调用的一个例子
- ZOJ 3804 YY's Minions (简单模拟)
- leetcode —— 面试题54. 二叉搜索树的第k大节点
- Java高级开发工程师面试考纲
- 监控某个dll被修改_浅谈动力环境监控系统技术标准
- Rabbit MQ 安装
- 令牌桶限流-java实现
- 如何下载专利(国内)
- autoit3转换php,AutoIt3调用动态链接库DLL
- 生成领料单(编号:20110704A1153)
- vue-cropper图片裁剪 结合 OSS 实现图片直传(后台)
- autoit3模拟鼠标点击之MouseClick