[問題] 用solve算出的解有問題?已回收
版上的各位前輩好:
小弟現在遇到一個很奇怪的問題,就是用solve算出來的解帶回原方程式竟不成立!?
小弟原先的數學問題是:"平面上用兩點求出一直線的方程式",一個很簡單的題目
小弟的程式碼如下:(已知兩點(x0,y0),(x1,y1))
syms a b x y;
f = x+a*y+b;
x0 = 523.4;
y0 = 378;
x1 = 529.3;
y1 = 155.7;
f1 = subs(f,{x,y},{x0,y0});
f2 = subs(f,{x,y},{x1,y1});
answer = solve(f1,f2);
a_ans = answer.a;
b_ans = answer.b;
line = subs(f,{a,b},{a_ans,b_ans}); %如此便求出此直線的方程式
===========================================
但是這邊問題就來了
如果我把(x0,y0) or (x1,y1)代入 line 內,得到的答案竟不等於 0 !!
>>subs(line,{x,y},{x0,y0})
ans =
3.9307e-014
可是如果我把算出的 a 和 b 代入 f1 和 f2 的話卻是等於 0
>> subs(f1,{a,b},{a_ans,b_ans})
ans =
0
也就是說對於假設的方程式 f = x+a*y+b
如果先代入(x0,y0),再代入(a_ans,b_ans)的話,答案等於 0
>> subs(f,{x,y},{x0,y0})
ans =
2617/5+378*a+b
>> subs(ans,{a,b},{a_ans,b_ans})
ans =
0
可是如果順序相反的話,答案卻不等於0
>>subs(f,{a,b},{a_ans,b_ans})
ans =
x+59/2223*y-658789/1235
>> subs(ans,{x,y},{x0,y0})
ans =
3.9307e-014
這是為什麼呢?請版上的各位高手幫忙解惑一下,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.47.241
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章