python解三元一次方程组_关于实现求解三元一次方程组的小程序的一点小研究

引入

在今年的暑假,作者利用空闲时间阅读了gilbert strange的introduction to linear algebra。作为享誉国际学界多年的MIT教材,该书以高斯消元法求解二三元方程组为开头,先介绍矩阵,随后是线性空间,再是行列式,与国内苏联风格的教材大相径庭。当时正好作者也在自学Python,便萌生出编写一个求解三元一次方程组的程序的想法。很可惜,由于暑假的时间安排的原因,这个想法最终没有实现,Python的学习也半途而废。

在大一新生军训之后,随着课程的开始,这个想法再次浮现,并且这次是以C语言来编写。

作者在阅读完C primer plus一书中的数组和指针的相关章节后,就开始着手这个项目。

初步构思

数组这种形式,可以很方便的表示矩阵,这次作者选择了三个长度为四的数组来组成矩阵。用户在程序的引导下分三次完成各个系数和等号右边常数项的输入,数据将被保存至数组中,再利用高斯消元将其化为上三角矩阵,最后回代完成求解,并将解打印在屏幕上。

数据输入

作者在完成这个部分的时候走了一个很大的弯路,因为在一开始的设计中,用户会分三次输入数据,所以将键盘输入传入数组的工作最好是由函数来完成,在main函数中直接调用三次,就可以完成工作。

但是,C语言并不允许函数返回一个数组,只能通过返回一个指向数组地址的指针,再将这个返回值赋给main函数的相应指针来实现和main函数通信(此处指针就不能直接给数组赋值了)。(1.0ver如下图)

# include

int * getcoe(void);

int main(void)

{

int * p1 = NULL;

printf("Please enter the coefficients of the first equation one by one(divide them with blank):\n");

p1 = getcoe();

printf("%d %d %d", *p1,*(p1+1),*(p1+2));//我把数组打印出来

return 0;

}

int * getcoe(void)

{

int row[3];

int * pi = NULL;

int a1,a2,a3;

scanf("%d %d %d",&a1,&a2,&a3);

row[0] = a1;

row[1] &

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值