原创 matlab生成稀疏對稱正定矩陣

R = sprandsym(n,density,rc,kind) 詳細參考https://ww2.mathworks.cn/help/matlab/ref/sprandsym.html 其中,n爲矩陣的階數,density爲稀疏密度

原创 Fortran計算大型對稱稀疏矩陣的二範數

在fortran中,有時候需要對一個大型的稀疏矩陣求取2範數。 由於大型稀疏矩陣一般使用CSR存儲格式,MKL函數庫中的gesvd的參數是稠密矩陣<matlab可以直接計算稀疏矩陣的2範數> 所以本文根據相關知識,給出求解CSR存儲的對

原创 部分主元法求解線性方程組

!//---------------原方程------------- !// x + y + z + w = 10 !// 2x + 3y + z + w = 15 !// 3x - y + 2z - w = 3 !

原创 病態方程求解問題

% test % 以希爾伯特矩陣測試 clear; clc; dt = 1e-8; A = hilb(12); % 條件數:1.6211639047475e+16 x0 = ones(12,1); b = A*x0; n =

原创 共軛梯度法求解線性方程組

Program ConjugateGradientMethods Implicit none Integer :: i Integer, parameter :: n = 3 Real(kind=8) :: A(n,n)

原创 龍貝格積分

!// author: luk !// time: 2018/3/20 !// purpose: Romberg integral for ln(x) between 1 and 2 Module mod Implicit none

原创 二分法求解方程的零點

Program BisectionMethod !// 二分法求解方程f(t) = cos(t) - t在區間[0,1]上的根 Implicit none Real(kind=8), parameter :: eps = 1d

原创 迭代法求解線性方程組

!// [ 3 -1 0 0 0 0.5 ] [x1] [2.5] !// [ -1 3 -1 0 0.5 0 ] [x2] [1.5] !// [ 0 -1 3 -1 0 0 ] [x3] = [1.0] !// [ 0

原创 高斯牛頓法求解最小二乘問題

!// 本代碼原理以及測試數據來自wiki: https://en.wikipedia.org/wiki/Gauss%E2%80%93Newton_algorithm#Example Module varGS Implicit No

原创 自動變步長Simpson積分方法函數

Module mod Implicit none Real(kind=8), parameter :: a = 1.d0, b = 1.02d0 !// 積分區間 Real(kind=8), parameter :: ep

原创 楚列斯基分解

!// 首先給出對稱正定矩陣的概念 !// 如果A'= A,則n*n矩陣A是對稱矩陣。如果對於所有向量x/=0,x'Ax > 0,則稱矩陣A是正定矩陣 !// 對稱正定矩陣是非奇異的 !// 任意矩陣A的行列式爲矩陣對應的特徵值的乘積

原创 使用不動點迭代方法求解方程的零點

Program FixedPointIteration !// 使用不動點迭代方法求解方程 x^3 + x - 1 = 0 的零點 Implicit none Real(kind=8), parameter :: ep

原创 LU分解求解線性代數方程組

!//---------------原方程------------- !// x + 2y - z = 3 !// 2x + y -2z = 3 !// -3x + y + z = -6 !//-----------

原创 預條件共軛梯度法求解線性方程組1

!// 在病態矩陣問題上,共軛梯度法比部分主元的高斯消去法還要差 !// 這種情況下,可通過預條件得到緩解,主要是將問題轉化爲良態矩陣系統,再實施CG方法 !// 此代碼的預條件因子M=D,爲雅可比預條件因子,D爲A的對角線矩陣 Pro

原创 使用牛頓迭代法求解方程零點

Program NewtonIterationMethod Implicit none Real(kind=8), external :: func, DerivativeFunc Real(kind=8), paramet