線性代數實現(部分)

2021-10-04 11:34:22 字數 2225 閱讀 3758

1.數學能力決定程式設計師發展上限。

2. c語言程式設計也是可以使用部分物件導向思想的,關鍵在人,而不在工具。

3. 如下程式設計風格大量出現在linux kernel& 其他開源**中,很明顯使用的物件導向程式設計思想。

think about it !

linear_algebra.h

#ifndef _linear_algebra_h_

#define _linear_algebra_h_

static void matrix_show(unsigned char *fmt,...);//for test use;

/*static int det(int *a,int n);

static void matrix_transposed(int *m,int r,int c);

static void matrix_add(int *a,int *b,int r,int c);

static void matrix_sub(int *a,int *b,int r,int c);

static void matrix_multi_lambda(int *a,int r,int c ,int lambda);

static void matrix_div_lambda (double *a,int r,int c,double lambda);

static int *matrix_multi_ab(int *a,int *b,int ar,int ac,int br,int bc);

static void matrix_power(int *a,int n,int m);

static int matrix_adjugate(int *a,int n);

static double *matrix_inverse(int *a,int n);

static int matrix_rank(int *a,int n);

*/struct namespace_matrix_func ;

void namespace_matrix_func_init(struct namespace_matrix_func *mf);

#endif

linear_algebra.c 主體部分

#include #include #include #include #include #include #include "linear_algebra.h"

static void matrix_show_double(void *m,int r,int c)

matrix_test.c  測試**

#include #include #include "linear_algebra.h"

int main(int argc,char **ar**)

; int det_a= ;

struct namespace_matrix_func *mf=(struct namespace_matrix_func*)malloc(sizeof(struct namespace_matrix_func));

namespace_matrix_func_init(mf);

//私有函式測試(static 代替 private),編譯器會報錯,表示測試成功 。

//matrix_show("matrix_show test:%d",a,3,4);

mf->transposed(a,3,4);

mf->show("matrix_transposed result:%d",a,4,3);

i=mf->det(det_a,4);

printf("deta=%d\n",i);

int a=;

int b= ;

m=mf->multi(a,b,2,2,2,2);

mf->show("matrix_multi_ab result:%d",a,2,2);

int a1=;

double *mt;

//matrix_adjugate(a1,3);

mt=mf->inverse(a1,3);

mf->show("matrix_inverse result:%f",mt,3,3);

system("pause");

free (mf) ;

return exit_success;

}

線性代數 線性代數的本質

線性代數在機器學習的領域中扮演者十分重要的角色,所以這裡岔開先整理一些線性代數的基本概念和計算方法。這裡是3blue1brown的線性代數課程的截圖和筆記。作為快速複習的網路筆記。本課程的特點 通過影象展現線性代數計算在幾何圖形上意義。這樣能更好的理解線性代數為什麼叫做線性代數。線性代數為什麼採用這...

線性代數入門 1 什麼是線性代數?

線性代數幾乎是每個學理工科的大學生都會學的一門課,然而我感覺大家對這門課的感覺都不怎麼好,很多人都覺得不知道線性代數是做什麼的,或者為了應付考試學會了一些計算和解題的方法。但在其他課程學習中卻常常看到那些矩陣 向量等等,便頭疼萬分,對線性代數更是深惡痛絕。最後乙個大學學下來,還是沒明白線性代數是什麼...

線性代數入門 1 什麼是線性代數?

線性代數幾乎是每個學理工科的大學生都會學的一門課,然而我感覺大家對這門課的感覺都不怎麼好,很多人都覺得不知道線性代數是做什麼的,或者為了應付考試學會了一些計算和解題的方法。但在其他課程學習中卻常常看到那些矩陣 向量等等,便頭疼萬分,對線性代數更是深惡痛絕。最後乙個大學學下來,還是沒明白線性代數是什麼...