當前位置:首頁 » 編程語言 » 線性擬合c語言

線性擬合c語言

發布時間: 2023-05-12 19:28:22

『壹』 用c語言編寫最小二乘法線性擬合

首先你要知道最小二乘法的公式,然後使用數組實現。比如定義數組double x[10]代表十個橫坐標,double y[10]代表縱坐標,然後套公式用循環計算

『貳』 急求!!!如何用c語言實現多元線性擬合

Dim a() As String, b() As String

Private Sub Command1_Click()
Dim temp1 As String
Dim i As Integer, k As Integer
temp1 = Text1.Text
a = Split(temp1, ",")
lenolds = Len("->")
For i = 0 To UBound(a)
s = a(i)
j = InStr(s, "->")
Do While j > 0
ReDim Preserve b(i, k)
b(i, k) = Val(Left(s, j + lenolds))
s = Left(s, j - 1) + "->" + Mid(s, j + lenolds + 1)
k = k + 1
j = InStr(s, "->")
Loop
ReDim Preserve b(i, k)
b(i, k) = s
Next i
For i = 0 To UBound(a)
For j = 0 To k
Text2.Text = Text2.Text + b(i, j)
Next j
Next i
End Sub

『叄』 求一元線性回歸分析的c語言代碼

//利用最小二乘法進行線形擬合
#include"stdio.h"
#include"math.h"
#define max_size 100
void main()
{
float data[max_size][2];
//用data數組來存放x,y的值.
float x_sum=0,y_sum=0;
float x_avg,y_avg;
float x,y;
float Lxy=0,Lxx=0,Lyy=0;
float r;
float a,b;
int i;
int count=0;
next:
printf("輸入至少2組x,y的值,輸入格式為 x,y");
printf("輸入 -999,-999 表示輸入結束!\n");
while(1)
{
scanf("%f,%f",&x,&y);
//實數最好不直接用"=="或"!="比較大小。
if(fabs(x+999)==0&&fabs(y+999)==0) break;
data[count][0]=x;
data[count][1]=y;
count++;
}
for(i=0;i<count;i++)
{
x_sum=data[i][0]+x_sum;
y_sum=data[i][1]+y_sum;
}
x_avg=x_sum/count;
y_avg=y_sum/count;
for(i=0;i<count;i++)
{
Lxy=(data[i][0]-x_avg)*(data[i][1]-y_avg)+Lxy;
Lxx=(data[i][0]-x_avg)*(data[i][0]-x_avg)+Lxx;
Lyy=(data[i][1]-y_avg)*(data[i][1]-y_avg)+Lyy;
}
//r用於計算相關系數,相關系數越接近1,表示相關性越好.
r=Lxy/sqrt(Lxx*Lyy);
if(r>0.5)
{
printf("數據的線形關系較好。\n");
a=Lxy/Lxx;
b=y_avg-a*x_avg;
}
else
{
printf("數據的線形關系不好!請重新輸入數據!\n");
goto next;
}
printf("線形擬合的結果為:\n");
if(fabs(b)==0)
printf("y=%3.1fx\n",a);
else if(b>0)
printf("y=%3.1fx+%3.2f\n",a,b);
else if(b<0)
printf("y=%3.1fx%3.2f\n",a,b);
printf("相關系數為:%3.1f\n",r);

}

『肆』 c語言曲線擬合問題。已經有源代碼, 求高手修改符合要求!!!!

題目要求不是很懂,QQ發來

『伍』 C語言線性曲線擬合

可以直接在線進行擬合,下面是地址(已驗證)
http://3.14159.biz/math/Fit.html
建議你直接對數據用Matlab的cftool擬合(可以自由的自定義擬合函數形式)

『陸』 已知散點,怎樣用C語言求出斜率,線性擬合

擬合直線之後會有一個擬合結果表,在這個表裡有直線的方程,斜率值(slop),截距值(intercept),以及這些值的誤差(error),和擬合結果的r^2(越接近於1,表明擬合結果越好)。
如果沒有看到這個表,那麼點擊菜單欄上的view
-
results
log,就能看到了。

『柒』 用C語言或C++編寫線性方程擬合 y=a+bx

#include<iostream>

usingnamespacestd;

constintMAXNUM=3;

intmain()

{

腔搜

doublex[MAXNUM],y[MAXNUM];

doublesumx=0,sumy=0,sumxy=0,sumxx=0;

doublea,b;

inti;

cout<<"輸入"<<MAXNUM<<"組樣本:"猜雹;

for(i=0;i<MAXNUM;i++)

{

cin>>x[i]>>y[i];

sumx穗圓帆+=x[i];

sumy+=y[i];

sumxy=x[i]*y[i];

sumxx=x[i]*x[i];

}

doubleaveragex,averagey;

averagex=sumx/MAXNUM;

averagey=sumy/MAXNUM;

b=(sumxy-MAXNUM*averagex*averagey)/(sumxx-MAXNUM*averagex*averagex);

a=averagey-b*averagex;

cout<<"線性擬合曲線為:y="<<a<<"+"<<b<<"*y ";

return0;

}

『捌』 C語言曲線擬合原理

雖然我知道什麼是曲線擬合,怎麼做,但是我不清楚你問題的具體內容,
從chuaike24的回答
「請高手 說實話 我是菜鳥 但你的程序感覺好凌亂 好多地方可以精簡說最明顯的問題 power函數返回值無論怎樣都返回0 」來看,我可能是沒看到你的程序,所以信息不全。
我只回答什麼是曲線擬合
曲線擬合,簡單來說,是指以近似的方法用一條曲線逼近一組數據點。
逼近的方法最常用的事最小二乘法,當然也有其他方法。
逼近的曲線可以是直線,也可以是多項式曲線,二次,三次,多次,也可以是分段多項式曲線,也可以是B樣條曲線。在這里,如果不需要深入研究,你只要把B樣條曲線理解為一種近似於分段多項式曲線即可。
你問的不多,這些對你的回答已經足夠,需要深入了解再問

『玖』 c語言怎麼把數據擬合成函數並畫線

1、通過一些點擬合出一條直線。
2、參數:pt_input指向傳入的點的指針。
3、ptNumbers傳入的點數量。
4、k指向擬合直線參數k的指針。
5、b指向擬合直線參數b的指針。

『拾』 c語言曲線擬合問題

很簡單 問題已經轉化成 從文件讀數據 數據類型轉化 賦值到數組 這三步

#include"stdio.h"
#include<stdlib.h>

main()
{
intx[3]={0};//默認文件存了三個數據
FILE*fp1;//定義文件流指針,用於打開讀取的文件
chartext[1024];//定義一個字元串數組,用於存儲讀取的字元
fp1=fopen("d:\forecast1.txt","r");//只讀方式打開文件a.txt
inti=0;
while(fgets(text,1024,fp1)!=NULL)//逐行讀取fp1所指向文件中的內容到text中
{
inttmp=atoi(text);//輸出到屏幕
x[i++]=tmp;
}
fclose(fp1);//關閉文件a.txt,有打開就要有關閉
}
y[i]同理
熱點內容
電腦版我的世界自救練習伺服器 發布:2025-07-18 06:22:25 瀏覽:263
光遇之前為什麼不在安卓上線 發布:2025-07-18 06:20:17 瀏覽:284
c語言偏移 發布:2025-07-18 06:03:01 瀏覽:889
甘肅雲堤伺服器 發布:2025-07-18 06:02:52 瀏覽:650
狼人殺腳本群 發布:2025-07-18 06:00:45 瀏覽:289
oracle10g安裝linux 發布:2025-07-18 05:53:33 瀏覽:619
百科php 發布:2025-07-18 05:53:33 瀏覽:879
刪除觸發器的sql語句 發布:2025-07-18 05:44:42 瀏覽:678
安卓手機adv是什麼意思 發布:2025-07-18 05:44:02 瀏覽:842
ims醫葯資料庫 發布:2025-07-18 05:33:52 瀏覽:815