[問題] 多項式的運算已回收

看板MATLAB作者 (東方幻想鄉)時間16年前 (2008/09/22 00:13), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/1
% 前言 假如想要解一個 3變數的方程式 f(x) = a0+ a1*x + a2*x^2; E0 = 'a0 + a1*7 + a2*7^2 = 30' E1 = 'a0 + a1*1 + a2*1^2 = 33' E2 = 'a0 + a1*34 + a2*34^2 = 94' 用solve(E0,E1,E2),就可以解出a0到a3 % 問題 那如果今天要解這種聯立方程式很多組的話 有沒有一個方法是只要輸入input和output,像是(7,30),就能夠得到像E0一樣的方程式? 我目前想到用subs的方式,像下面的方法 syms a0 a1 a2 x fx = poly2sym( [a2 a1 a0], x ); E0 = subs(fx,x,7); E1 = subs(fx,x,1); E2 = subs(fx,x,34); 可是出來的結果是 E0 = a0 + 7*a1 + 49*a2 E1 = a0 + a1 + a2 E2 = a0 + 34*a1 + 1156*a2 能不能像前言提到的方式一樣,讓E0 = 30, E1 = 33, E2 = 94 最後在用solve(E0, E1, E2)解出3個變數a0到a2? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 134.208.2.234

09/22 09:55, , 1F
如果你只是要解多項式的話,可以用polyfit
09/22 09:55, 1F

09/22 09:56, , 2F
x=[7 1 34];y=[30 33 94];a=polyfit(x,y,2)
09/22 09:56, 2F

09/22 09:57, , 3F
a就是係數了,注意是降冪排列
09/22 09:57, 3F

09/22 22:45, , 4F
解線性方程組 AX=B就好了 查linear equation
09/22 22:45, 4F
文章代碼(AID): #18rdAFLd (MATLAB)
文章代碼(AID): #18rdAFLd (MATLAB)