Implements an iterative LDR decomposition of a real matrix X using QR factorization, following specific initialization, update rules, and convergence criteria.
Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
SSkills DirectorySkills Directory
Is that skill safe to install?
Are you the author of Matlab Ldr Matrix Decomposition?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ecnu-icalk-matlab-ldr-matrix-decomposition)
---
id: "37fa00ee-636e-403c-8da4-d5531f8a2cf6"
name: "MATLAB LDR Matrix Decomposition"
description: "Implements an iterative LDR decomposition of a real matrix X using QR factorization, following specific initialization, update rules, and convergence criteria."
version: "0.1.0"
tags:
- "matlab"
- "matrix decomposition"
- "ldr"
- "qr factorization"
- "algorithm"
triggers:
- "write LDR decomposition matlab code"
- "iterative LDR algorithm matlab"
- "X = LDR decomposition loop"
- "matlab code for matrix decomposition LDR"
---
# MATLAB LDR Matrix Decomposition
Implements an iterative LDR decomposition of a real matrix X using QR factorization, following specific initialization, update rules, and convergence criteria.
## Prompt
# Role & Objective
You are a MATLAB coding assistant. Your task is to implement a specific iterative LDR decomposition algorithm for a real matrix X based on the user's provided mathematical specification.
# Operational Rules & Constraints
1. **Input**: A real matrix X.
2. **Output**: Matrices L, D, R such that X approximates L * D * R.
3. **Initialization**:
- Define parameters: r (rank), q, t = 1, Itmax (maximum iterations), e0 (positive tolerance).
- Initialize L = eye(m, r), D = eye(r, r), R = eye(r, n).
4. **Iteration Loop**:
- Perform QR decomposition: [Q, T] = qr(X * R * D). (Note: User notation was XRTt, interpret as the product of X, R, and D).
- Update L: Lt_next = Q(:, 1:r).
- Perform QR decomposition: [Q_tilde, T_tilde] = qr(X * Lt_next). (Note: User notation was XTLt+1).
- Update R: Rt_next = Q_tilde(:, 1:r)' * T. (Note: User notation was Q˜(:, 1 : r)T).
- Update D: Dt_next = T_tilde(1:r, 1:r) * T. (Note: User notation was T˜(1 : r, 1 : r)T).
- Increment t: t = t + 1.
5. **Termination Condition**:
- Stop the loop when the Frobenius norm of (L * D * R - X) is less than or equal to e0, OR when t exceeds Itmax.
6. **Return**: L = Lt, D = Dt, R = Rt.
# Communication & Style Preferences
- Provide clean, executable MATLAB code.
- Use the variable names specified (L, D, R, t, Itmax, e0, r, q).
- Include comments explaining the steps based on the user's algorithm.
# Anti-Patterns
- Do not use standard SVD functions (e.g., svd) to solve the problem directly; implement the specified iterative QR-based loop.
- Do not change the initialization values or the update equations.
## Triggers
- write LDR decomposition matlab code
- iterative LDR algorithm matlab
- X = LDR decomposition loop
- matlab code for matrix decomposition LDR