matlab-如何解决这个矩阵问题?

问题描述

如何解决这个矩阵问题?
附带了测试用的matlab代码。

 A = [0.8   0.25    0.18   0.1;      0.1   0.7     0.12   0.4;      0.1   0.05    0.7    0.2];beta = [0.68  0.40  0.80  0.5;        0.15  0.34  0.35  0.4;        0.45  0.70  0.30  0.5;        1     1     1     1];y = A*beta;% For convenience I use the same y as input.%---------------------Method One-------------------AThreeInverse = inv(A(:1:3));tmp = -A(:4);AInverse1 = [AThreeInversetmp];yTmp = [y; 1 1 1 1];final1 = AInverse1*yTmp;errors = final1 - beta(1:3:);disp(errors);%-------------------Method Two---------------------% This method seems bullshit.AInverse2 = pinv(A);final2 = AInverse2*y;errors = final2(1:3:) - beta(1:3:);disp(errors);

这个问题的简化版本就是,已知A和y2,求beta2. 其中beta2也是4x4的方阵,且最后一行为1.

如果A的主对角线的比重较小,那么第一种方法的误差会很大。如何得到精确或者误差较小的值?有没有通用的较好的方法?

解决方案

已经解决了,当我提出该问题时,就觉得没戏

时间: 2024-08-19 18:02:00

matlab-如何解决这个矩阵问题?的相关文章

c语言-C语言怎么实现matlab定义的空矩阵

问题描述 C语言怎么实现matlab定义的空矩阵 简单的说怎么实现上面图片显示的功能?主要困扰我的就是怎么实现空矩阵,,,把矩阵赋值为NULL,显示的是0:如果只是开辟内存空间不赋值,显示的又是随机数.怎么解决啊? #include #include #include #include void main()//// { int M,M1,**M2; int i, j,y; M = (int **)malloc(sizeof(int *)); for (i = 0; i < 1;i++) { f

合并-Matlab如何将数据矩阵分成若干段

问题描述 Matlab如何将数据矩阵分成若干段 我现在有一个206*2896的波形数据,现在需要将每一行分成18段,再将18段中每段的最大值求出,最后把结果合并到一个矩阵当中,如何编写这个循环? 解决方案 http://zhidao.baidu.com/link?url=GoL2ht8RyJ1FHaujQh6r70sB46cRSgcm4mi-FxSj6MhCrduBmujdiF3gGDb121JGKnbCJKM0OAOtFJ4qWziM8-zqj_k4PSoL1Qh81SGwEeW 解决方案二:

link如何解决如下矩阵生成难题

问题描述 link如何解决如下矩阵生成难题 将1~N*N放入一个N*N的矩阵,要求矩阵每行每列以及对角线的和相等.请问怎么实现? 解决方案 解决方案二: 这是算法题, 和LINQ没有关系 解决方案三: using System; using System.Collections.Generic; using System.Text; namespace MagicMatrix { class Program { int[,] mm; static void Main(string[] args)

对角线-link如何解决如下矩阵生成难题?注意一定要用link实现。

问题描述 link如何解决如下矩阵生成难题?注意一定要用link实现. 将1~N*N放入一个N*N的矩阵,要求矩阵每行每列以及对角线的和相等.请问怎么实现?注意一定要用link实现. 解决方案 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication2 { class

matlab求解决图像增强问题

问题描述 matlab求解决图像增强问题

Matlab梯度下降解决评分矩阵分解

for iter = 1:num_iters %梯度下降 用户向量 for i = 1:m %返回有0有1 是逻辑值 ratedIndex1 = R_training(i,:)~=0 ; %U(i,:) * V' 第i个用户分别对每个电影的评分 %sumVec1 第i个用户分别对每个电影的评分 减去真实值 sumVec1 = ratedIndex1 .* (U(i,:) * V' - R_training(i,:)); product1 = sumVec1 * V; derivative1 =

Matlab实现movieLens转矩阵

for mm=1:num_m %电影编号是mm的训练集行号 ff= find(train_vec(:,2)==mm); %train_vec(ff,1) 行号对应的用户编号 count(train_vec(ff,1),mm) = train_vec(ff,3); end 桉的是电影数目,每次处理一个电影,比双重for循环看着给力.不过转矩阵,一般matlab会提示超内存.

C语言解决螺旋矩阵算法问题的代码示例_C 语言

赶集网校招就采用了螺旋输出矩阵作为程序题,要求将矩阵螺旋输出如: 图中6*6矩阵线条所示为输出顺序,如果输出正确的话应该输出1~36有序数字.  我想的是这么做的: #include <stdio.h> //#define LEN 1 //#define LEN 2 //#define LEN 3 #define LEN 4 void printClock(int a[][LEN]){//输出函数 int t; int i = 0, m = 0; int j = LEN, n = LEN; w

matlab 矩阵-matlab冷门图像(mrc)格式解析出的矩阵如何作为imread解析的图像格式显示?

问题描述 matlab冷门图像(mrc)格式解析出的矩阵如何作为imread解析的图像格式显示? 自己写代码使用matlab将一个mrc图像文件(matlab不支持的图像格式)读取并成功解析成矩阵I,可是使用imshow(I) 来显示图像,提示错误,猜测应该是读取的目前目的是想把该矩阵转换为为imread读出的一般图像(jpg.png等)的矩阵方便以后对该图像处理,但google了很多次也找不到方法,想知道如何将该矩阵转换成imread解析出的矩阵,可行吗? 一般imread读出的矩阵有什么属性