打印

已知xy变量值,求二元一次方程abc系数 C语言

[复制链接]
2341|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jiangzhe8525|  楼主 | 2017-7-28 17:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
jiangzhe8525|  楼主 | 2017-7-28 18:17 | 只看该作者
急急急,求各位大神帮帮忙

使用特权

评论回复
板凳
linqing171| | 2017-7-28 21:35 | 只看该作者
a*x1*x1+b*x1+c-y1=0; 其中abc为变量,x1和x2为常数。这是一个方程。然后把其它的也都带进来就是三个方程组。
令x1*x1=a1; x1=b1, 1=c1, -y1=d1; a=x; b=y; c=z;
转换为:
a1*x + b1*y + c1*z +d1 = 0


三元一次方程通解公式如下:

a1*x + b1*y + c1*z +d1 = 0
a2*x + b2*y + c2*z +d2 = 0
a3*x + b3*y + c3*z +d3 = 0
a1,a2,a3,b1,b2,b3,c1,c2,c3 都是已知的
1.
如果d1,d2,d3为已知常量。
用克莱姆法则,其实就是把方程组转换为矩阵,然后求该矩阵的行列式的值来做。

--[a1 b1 c1]
A=[a2 b2 c2] det(A)=a1b2c3+b1c2a3+c1a2b3-(c1b2a3+b1a2c3+a1c2b3)
--[a3 b3 c3]

---[-d1 b1 c1]
A1=[-d2 b2 c2]
---[-d3 b2 c3]
--------------|d1 b1 c1|
det(A1)=(-1)×|d2 b2 c2|=-[d1b2c3+b1c2d3+c1d2b3-(c1b2d3+b1d2c3+d1c2b3)]
--------------|d3 b3 c3|
(用d?代替a?,再乘-1)
依此类推,det(A2),det(A3)
---[a1 -d1 c1]
A2=[a2 -d2 c2]
---[a3 -d3 c3]

---[a1 b1 -d1]
A3=[a2 b2 -d2]
---[a3 b2 -d3]
(1)
如果det(A)!=0,有唯一解。
x1=det(A1)/det(A)
x2=det(A2)/det(A)
x3=det(A3)/det(A)
(2)
如果det(A)=0,有多个解。

2.如果d1,d2,d3为未知,有多个解。

使用特权

评论回复
地板
linqing171| | 2017-7-28 21:52 | 只看该作者
a*x1*x1 + b*x1+ c -y1=0;
a*x2*x2 + b*x2 +c-y2=0;
a*x3*x3 + b*x3 + c-y3=0;

第一个式子分别减去2和3,消去c得:

a*(x1*x1-x2*x2) + b(x1-x2) -y1+y2=0;
a*(x1*x1-x3*x3) + b(x1-x3) -y1+y3=0;


上乘以x1-x3, 下乘以 x1-x2, 然后相减得:

a*[(x1*x1-x2*x2)(x1-x3) -(x1*x1-x3*x3)*(x1-x2)] = (y1-y2)*(x1-x3)-(y1-y3)*(x1-x2)

得 a = [x1*y1-x1*y2-x3*y1+x3y2 - x1y1 +x1y3+x2y1-x2y3 ]/[ (x1-x2)*(x1-x3)*(x1+x2-x1-x3)]
化简得 a = [x1*(y3-y2)+x2*(y1-y3) + x3*(y2-y1)]/[ (x1-x2)*(x1-x3)*(x2-x3)];
回带得 b = xxxxxx
回带得 c= xxxxxx

不过还是用高斯消元来的通用,具体见大学教材《计算方法》

使用特权

评论回复
5
mcu5i51| | 2017-7-29 09:37 | 只看该作者
7z格式
程序是温度计算的,应该一样的功能

曲线拟合VC.7z.zip

3.86 MB

使用特权

评论回复
6
jiangzhe8525|  楼主 | 2017-8-1 09:52 | 只看该作者
谢谢各位,问题已经解决!

使用特权

评论回复
7
gujiamao12345| | 2017-8-1 10:43 | 只看该作者
jiangzhe8525 发表于 2017-8-1 09:52
谢谢各位,问题已经解决!

方便贴个代码学习下不

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

175

帖子

3

粉丝