作者ccam (′・ω・`)
看板MATLAB
标题[问题] 解完联立无法直接得到值
时间Mon Jul 9 22:26:26 2018
遇到的问题是
透过两条由连接两个点的线来找交点
都是简单的二元一次线性方程式
但是方程式的斜率和常数会需要一直改变
所以先用下面的方法测试
但是得出的交点却显示代数而不是直接显示数值
想要看数值必须把那串代数答案重新输入才看的到
有没有办法在跑的过程中直接得到数值答案?
变成:
x=4
y=4
这样。
感谢。
程式码:
%Line_1
x1=0;
y1=0;
x2=8;
y2=8;
a = polyfit([x1,x2],[y1,y2],1);
%Line_2
x3=0;
y3=8;
x4=8;
y4=0;
b = polyfit([x3,x4],[y3,y4],1);
value_ax = a(1,1); %Line1斜率
value_ay = a(1,2); %Line1常数
value_bx = b(1,1); %Line2斜率
value_by = b(1,2); %Line2常数
syms x y
[x,y] = solve('y = value_ax * x + value_ay','y = value_bx * x + value_by')
结果:
x =
-(value_ay - value_by)/(value_ax - value_bx)
y =
(value_ax*value_by - value_ay*value_bx)/(value_ax - value_bx)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 120.107.168.98
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1531146390.A.572.html
1F:推 LiamIssac: 先确定一下你的value ax ay什麽的是不是数值 有可能不 07/09 22:34
2F:→ LiamIssac: 是 07/09 22:34
3F:→ ccam: polyfit([x1,x2],[y1,y2],1)出来的结果是 [1 0] 07/09 22:41
4F:→ ccam: 所以value_ax跟value_ay就是1跟0 07/09 22:42
5F:→ ccam: 这个是确定的 07/09 22:42
原本我是写
[x,y] = solve('y = a(1,1) * x + a(1,2)','y = b(1,1) * x + b(1,2)')
结果答案会变:
x =
-(a(1, 2) - b(1, 2))/(a(1, 1) - b(1, 1))
y =
(a(1, 1)*b(1, 2) - a(1, 2)*b(1, 1))/(a(1, 1) - b(1, 1))
後来才试着用另一个数去取代,但是结果还是一样
※ 编辑: ccam (120.107.168.98), 07/09/2018 22:46:18