簡體   English   中英

Matlab適合具有所有y(x_i)值的函數返回向量

[英]Matlab fit with function returning vector with all the y(x_i) values

我正在做某事,但未找到任何解決方案,也許我不知道如何正確搜索...

我有兩個實驗數據數組(x和y)。 x是某些能量的列表(0到100 kev的512個值),我想將它們擬合到一個函數中,該函數針對列表中的每個x返回y值的向量(能量總是相同的,512個特定值)。 這是因為我的函數模型包含幾個矩陣和其他函數。 因此,我無法將函數評估為f(x,a,b,c ...)(具有要擬合的參數a,b,c)並期望一個標量,但是我必須評估f(a, b,c ...),並返回y(x1),y(x2)...的向量

現在,我想使我的數據適合我的模型。 但是lsqcurvefit需要形式為f(x)的函數,我想它對每個f(x)求值。 我可以編寫函數,以便每次調用該函數時,它都會評估向量結果,然后針對給定的x返回y,但是效率很低……而且我敢肯定必須有另一種方法。

任何想法?

也許您可以對平方誤差之和進行fminsearch? 最好將所有擬合參數放入一個向量中。 在這里,我稱它為p

f = @(x,p) (p(3)+p(1)*x.^p(2)).^(1/p(4); %example function with four free parameters
sqerr = @(x,y,p) sum((y-f(x,p)).^2); %sum of squared errors
p = [1,1,1,1]; %four starting conditions
p = fminsearch(@(p) sqerr(x,y,p),p); %fit

然后,您可以通過使用擬合的參數調用函數來找到y(x_i)值

f(x,p)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM