當前位置:首頁 » 編程語言 » c語言求滿足b1x1b2x2
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言求滿足b1x1b2x2

發布時間: 2022-06-13 03:53:38

c語言數據結構的一元多項式計算

除以上功能外,還有乘法和除法的計算和導數計算呢。 這是我以前做的數據結構課程設計。希望能幫上你的忙。 #include<stdio.h> #include<malloc.h> typedef struct Polynomial{ float coef; int expn; struct Polynomial *next; }*Polyn,Polynomial; //Polyn為結點指針類型 void Insert(Polyn p,Polyn h){ if(p->coef==0) free(p); //系數為0的話釋放結點 else{ Polyn q1,q2; q1=h;q2=h->next; while(q2&&p->expn<q2->expn){ //查找插入位置 q1=q2; q2=q2->next; } if(q2&&p->expn==q2->expn){ //將指數相同相合並 q2->coef+=p->coef; free(p); if(!q2->coef){ //系數為0的話釋放結點 q1->next=q2->next; free(q2); } } else{ //指數為新時將結點插入 p->next=q2; q1->next=p; } } }//Insert Polyn CreatePolyn(Polyn head,int m){//建立一個頭指針為head、項數為m的一元多項式 int i; Polyn p; p=head=(Polyn)malloc(sizeof(struct Polynomial)); head->next=NULL; for(i=0;i<m;i++){ p=(Polyn)malloc(sizeof(struct Polynomial));//建立新結點以接收數據 printf("請輸入第%d項的系數與指數:",i+1); scanf("%f %d",&p->coef,&p->expn); Insert(p,head); //調用Insert函數插入結點 } return head; }//CreatePolyn void DestroyPolyn(Polyn p){//銷毀多項式p Polyn q1,q2; q1=p->next; q2=q1->next; while(q1->next){ free(q1); q1=q2;//指針後移 q2=q2->next; } } void PrintPolyn(Polyn P){ Polyn q=P->next; int flag=1;//項數計數器 if(!q) { //若多項式為空,輸出0 putchar('0'); printf("\n"); return; } while (q){ if(q->coef>0&&flag!=1) putchar('+'); //系數大於0且不是第一項 if(q->coef!=1&&q->coef!=-1){//系數非1或-1的普通情況 printf("%g",q->coef); if(q->expn==1) putchar('X'); else if(q->expn) printf("X^%d",q->expn); } else{ if(q->coef==1){ if(!q->expn) putchar('1'); else if(q->expn==1) putchar('X'); else printf("X^%d",q->expn); } if(q->coef==-1){ if(!q->expn) printf("-1"); else if(q->expn==1) printf("-X"); else printf("-X^%d",q->expn); } } q=q->next; flag++; }//while printf("\n"); }//PrintPolyn int compare(Polyn a,Polyn b){ if(a&&b){ if(!b||a->expn>b->expn) return 1; else if(!a||a->expn<b->expn) return -1; else return 0; } else if(!a&&b) return -1;//a多項式已空,但b多項式非空 else return 1;//b多項式已空,但a多項式非空 }//compare Polyn AddPolyn(Polyn pa,Polyn pb){//求解並建立多項式a+b,返回其頭指針 Polyn qa=pa->next; Polyn qb=pb->next; Polyn headc,hc,qc; hc=(Polyn)malloc(sizeof(struct Polynomial));//建立頭結點 hc->next=NULL; headc=hc; while(qa||qb){ qc=(Polyn)malloc(sizeof(struct Polynomial)); switch(compare(qa,qb)){ case 1: { qc->coef=qa->coef; qc->expn=qa->expn; qa=qa->next; break; } case 0: { qc->coef=qa->coef+qb->coef; qc->expn=qa->expn; qa=qa->next; qb=qb->next; break; } case -1: { qc->coef=qb->coef; qc->expn=qb->expn; qb=qb->next; break; } }//switch if(qc->coef!=0){ qc->next=hc->next; hc->next=qc; hc=qc; } else free(qc);//當相加系數為0時,釋放該結點 }//while return headc; }//AddPolyn Polyn SubtractPolyn(Polyn pa,Polyn pb){//求解並建立多項式a+b,返回其頭指針 Polyn h=pb; Polyn p=pb->next; Polyn pd; while(p){ //將pb的系數取反 p->coef*=-1; p=p->next; } pd=AddPolyn(pa,h); for(p=h->next;p;p=p->next) //恢復pb的系數 p->coef*=-1; return pd; }//SubtractPolyn float ValuePolyn(Polyn head,float x){//輸入x值,計算並返回多項式的值 Polyn p; int i; float sum=0,t; for(p=head->next;p;p=p->next){ t=1; for(i=p->expn;i!=0;){ if(i<0){t/=x;i++;}//指數小於0,進行除法 else{t*=x;i--;}//指數大於0,進行乘法 } sum+=p->coef*t; } return sum; }//ValuePolyn Polyn Derivative(Polyn head){//求解並建立a的導函數多項式,並返回其頭指針 Polyn q=head->next,p1,p2,hd; hd=p1=(Polyn)malloc(sizeof(struct Polynomial));//建立頭結點 hd->next=NULL; while(q){ if(q->expn!=0){ //該項不是常數項時 p2=(Polyn)malloc(sizeof(struct Polynomial)); p2->coef=q->coef*q->expn; p2->expn=q->expn-1; p2->next=p1->next;//連接結點 p1->next=p2; p1=p2; } q=q->next; } return hd; }//Dervative Polyn MultiplyPolyn(Polyn pa,Polyn pb){//求解並建立多項式a*b,返回其頭指針 Polyn hf,pf; Polyn qa=pa->next; Polyn qb=pb->next; hf=(Polyn)malloc(sizeof(struct Polynomial));//建立頭結點 hf->next=NULL; for(;qa;qa=qa->next){ for(qb=pb->next;qb;qb=qb->next){ pf=(Polyn)malloc(sizeof(struct Polynomial)); pf->coef=qa->coef*qb->coef; pf->expn=qa->expn+qb->expn; Insert(pf,hf);//調用Insert函數以合並指數相同的項 } } return hf; }//MultiplyPolyn void DevicePolyn(Polyn pa,Polyn pb){//求解並建立多項式a*b,返回其頭指針 Polyn hf,pf,af,temp1,temp2,q; Polyn qa=pa->next; Polyn qb=pb->next; hf=(Polyn)malloc(sizeof(struct Polynomial));//建立頭結點,存儲商 hf->next=NULL; pf=(Polyn)malloc(sizeof(struct Polynomial));//建立頭結點,存儲余數 pf->next=NULL; temp1=(Polyn)malloc(sizeof(struct Polynomial)); temp1->next=NULL; temp2=(Polyn)malloc(sizeof(struct Polynomial)); temp2->next=NULL; temp1=AddPolyn(temp1,pa); while(qa!=NULL&&qa->expn>=qb->expn){ temp2->next=(Polyn)malloc(sizeof(struct Polynomial)); temp2->next->coef=(qa->coef)/(qb->coef); temp2->next->expn=(qa->expn)-(qb->expn); Insert(temp2->next,hf); pa=SubtractPolyn(pa,MultiplyPolyn(pb,temp2)); qa=pa->next; temp2->next=NULL; } pf=SubtractPolyn(temp1,MultiplyPolyn(hf,pb)); pb=temp1; printf("商是:"); PrintPolyn(hf); printf("余數是:"); PrintPolyn(pf); }//DevicePolyn int main(){ int m,n,flag=0; float x; Polyn pa=0,pb=0,pc,pd,pe,pf;//定義各式的頭指針,pa與pb在使用前付初值NULL printf("請輸入a的項數:"); scanf("%d",&m); pa=CreatePolyn(pa,m);//建立多項式a printf("請輸入b的項數:"); scanf("%d",&n); pb=CreatePolyn(pb,n);//建立多項式a //輸出菜單 printf("**********************************************\n"); printf("操作提示:\n\t1.輸出多項式a和b\n\t2.建立多項式a+b\n\t3.建立多項式a-b\n"); printf("\t4.計算多項式a在x處的值\n\t5.求多項式a的導函數\n\t6.建立多項式a*b\n"); printf("\t7.建立多項式a/b\n\t8.退出\n**********************************************\n"); for(;;flag=0){ printf("執行操作"); scanf("%d",&flag); if(flag==1){ printf("多項式a:");PrintPolyn(pa); printf("多項式b:");PrintPolyn(pb);continue; } if(flag==2){ pc=AddPolyn(pa,pb); printf("多項式a+b:");PrintPolyn(pc); DestroyPolyn(pc);continue; } if(flag==3){ pd=SubtractPolyn(pa,pb); printf("多項式a-b:");PrintPolyn(pd); DestroyPolyn(pd);continue; } if(flag==4){ printf("輸入x的值:x="); scanf("%f",&x); printf("多項式a的值%g\n",ValuePolyn(pa,x));continue; } if(flag==5){ pe=Derivative(pa); printf("多項式a的導函數:");PrintPolyn(pe); DestroyPolyn(pe);continue; } if(flag==6){ pf=MultiplyPolyn(pa,pb); printf("多項式a*b:");PrintPolyn(pf); DestroyPolyn(pf);continue; } if(flag==7){ DevicePolyn(pa,pb); continue; } if(flag==8) break; if(flag<1||flag>8) printf("Error!!!\n");continue; }//for DestroyPolyn(pa); DestroyPolyn(pb); return 0; }

Ⅱ c語言解線性方程組的編程題 【做的好會多給分】

以下演算法的適用條件:A的各階主子式不為零
另外還可以採用
直接法:
消元法:Gauss-Jordan消元法,
分解法:Dolittle分解 (我用的是Courant分解法),追趕法,對稱正定矩陣的LDL『分解
----------
迭代法:
Jacobi迭代
Gauss-Seidel迭代
鬆弛迭代
-----------------
你上網可以搜索一下,或者看看數值計算方面的書

OK, 你看看這個, 另外還加了注釋 :
Courant分解演算法:
aX = b, 作 A=LU, L是下三角矩陣, U是上三角矩陣
即L =
| L11
| L21 L22
| L31 L32 L33
| ..............
| Ln1 Ln2 ........Lnn

U =
| 1 U12 ..... U1n
| 空格 1 ..... U2n
| 空格 空格 ........
| 空格 空格 空格 空格 空格1
---------------------------------------------------
aX = b -----> LUX = b
記 UX = y,
由Ly = b得到
因為無法輸出數學符號,以下採用[i, j]Ai 表示對Ai從i到j求和
yi = (bi - [j=1, i-1]Lij yj) / Lii i = 1, 2, ..., n
由UX = y得到
xi = yi - [j=i+1, n]uij xj j = n, n-1, ..., 2, 1
你在紙上驗證一下就明白了
--------------------------------------------------------------

以下採用Courant分解 解 aX = b, 經檢查,程序運行正確
這是運行結果:
--------------------------------------------------------------
Input n value(dim of Ax=b): 3
Now input the matrix a(i, j), i, j = 0, ..., 2:
1 2 1 -2 -1 -5 0 -1 6
Now input the matrix b(i), i = 0, ..., 2:
24 -63 50
Solve...x_i =
7.000000
4.000000
9.000000
--------------------------------------------------------------
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#define MAX_N 20
int main(int argc, char* argv[])
{
int n; // 未知數個數
int i, j, k;
static double a[MAX_N][MAX_N], b[MAX_N], x[MAX_N], y[MAX_N];
static double l[MAX_N][MAX_N], u[MAX_N][MAX_N];
printf("\nInput n value(dim of Ax=b): ");
scanf("%d", &n);
if(n >MAX_N)
{
printf("The input n is larger than MAX_N, please redefine the MAX_N.\n");
return 1;
}
if(n <= 0)
{
printf("Please input a number between 1 and %d.\n", MAX_N);
return 1;
}
// {{ 程序輸入
printf("Now input the matrix a(i, j), i, j = 0, ..., %d:\n", n-1);
for (i=0; i<n; i++)
for (j=0; j<n; j++)
scanf("%lf", &a[i][j]);
printf("Now input the matrix b(i), i = 0, ..., %d:\n", n-1);
for(i=0; i<n; i++)
scanf("%lf", &b[i]);
// }} 程序輸入
for(i=0; i<n; i++)
u[i][i] = 1; //
for(k=0; k<n; k++)
{
for(i=k; i<n; i++) // 計算L的第k列元素
{
l[i][k] = a[i][k];
for(j=0; j<=k-1; j++)
l[i][k] -= (l[i][j]*u[j][k]);
}
for(j=k+1; j<n; j++) //計算U的第k行元素
{
u[k][j] = a[k][j];
for(i=0; i<=k-1; i++)
u[k][j] -= (l[k][i]*u[i][j]);
u[k][j] /= l[k][k];
}
}
for(i=0; i<n; i++) // 解Ly = b
{
y[i] = b[i];
for(j=0; j<=i-1; j++)
y[i] -= (l[i][j]*y[j]);
y[i] /= l[i][i];
}
for(i=n-1; i>=0; i--) // 解UX = Y
{
x[i]=y[i];
for(j=i+1; j<n; j++)
x[i] -= (u[i][j]*x[j]);
}
printf("Solve...x_i = \n"); // 輸出結果
for(i=0; i<n; i++)
printf("%f\n", x[i]);
return 0;
}

Ⅲ 如何用C語言解二元一次方程組

設計思路如下:

1、問題描述:

給定一個二元一次方程組,形如:

a * x + b * y = c;

d * x + e * y = f;

x,y代表未知數,a, b, c, d, e, f為參數。

求解x,y。

2、數據規模和約定:

0 <= a, b, c, d, e, f <= 2147483647。

3、設計思路:

二元一次方程組是由兩個含有兩個未知數的方程組成的,要求解,就要把二元轉化為一元。由二元一次方程組的解法思想知,要把二元轉化為一元.

實現的功能代碼如下:

因為在求解過程中只有數之間的運算,而沒有整個式子的運算,因此這種方法被廣泛地用於計算機中。

Ⅳ 用C語言編寫一程序求解一元二次方程的根。

#include<stdio.h>
#include<math.h>
void m(float a,float b,float c)
{
double x1,x2;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("方程的根是%.2lf和%.2lf",x1,x2);
}
void n(float a,float b,float c)
{
double x;
x=(-b)/(2*a);
printf("方程的根為%.2lf",x);
}
void f(float a,float b,float c)
{
printf("方程無實數根\n");
}
main()
{
float a,b,c;
printf("請輸入a,b,c的值\n");
scanf("%f%f%f",&a,&b,&c);
if(b*b-4*a*c>0)
m(a,b,c);
if(b*b-4*a*c==0)
n(a,b,c);
if(b*b-4*a*c<0)
f(a,b,c);
}

Ⅳ C語言,求一元二次方程的解

對於如下的一元二次方程:

ax*x+bx+c=0

設計C語言程序,輸入一元二次方程的三個系數a、b、c,求解出該方程的兩個根,並且允許用戶在程序中多次輸入不同的系數,以求解不同的一元二次方程的解。

編程思路分析:

對於該方程,令delta=b^2-4*a*c,從數學的角度來講,我們需要根據delta的值來判斷該方程的根情況:

當delta>=0時,其兩個根為實數解,分別為(-b+sqrt(delta))/(2*a)和(-b-sqrt(delta))/(2*a);

當delta<0時,其兩個根為復數解,實部皆為-b/(2*a),虛部分別為sqrt(-delta)/(2*a)和-sqrt(-delta)/(2*a)。

其中,sqrt(delta)代表對delta作開根號運算。

在代碼設計中,可定義一個結構體Complex存儲該方程的根,在該結構體中包括實部和虛部兩個變
在程序中,定義兩個Complex類型的根x1和x2,當delta>=0時,兩個根的虛部為0,否則,分別求解兩個根的虛部值。
具體編程如下:

#include"stdio.h"
#include"math.h"
/*求一元二次方程ax*x+bx+c=0的解*/
main()
{floata,b,c,x1,x2,d;
printf("請輸入a:");
scanf("%f",&a);
printf("請輸入b:");
scanf("%f",&b);
printf("請輸入c:");
scanf("%f",&c);
d=b*b-4*a*c;if(d<0)
printf("方程沒有實數解。 ");
if(d==0){x1=(-b)/(2*a);
printf("x1=%f ",x1);}
if(d>0){x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f ",x1,x2);}}
請輸入a:12
請輸入b:34
請輸入c:4
x1=-0.122985,x2=-2.710348
Pressanykeytocontinue

為迭代序列。

Ⅵ c語言問題求解

#include
#include
using namespace std;
#define N 1000
#define INF 65535
typedef struct
{
int a[N];//記錄多項式
int len;//記錄多項式的長度
}Ploy;
void ADD(Ploy A,Ploy B,Ploy *M)
/*多項式A與多項式B相加,得到多項式M*/
{
int la=A.len,lb=B.len,i;
void PrintPloy1(Ploy A)
{
int i;
printf(" %dx^%d ",A.a[A.len],A.len);
for(i=A.len-1;i>=1;i--)
{
if(A.a[i]==0) ;
else if(A.a[i]==1) printf(" + x^%d ",i);
else if(A.a[i]==-1) printf(" - x^%d ",i);
else
{
if(A.a[i]>0)
printf("+ %dx^%d ",A.a[i],i);
else
printf("- %dx^%d ",-A.a[i],i);
}
}
if(A.a[0]==0) ;
else if(A.a[0]>0)
printf(" + %d",A.a[0]);//列印x的0次項
else
printf(" - %d",-A.a[0]);
printf("\n");
return ;
}
void PrintPloy2(Ploy A)
{
int i=0;
while(A.a[i]==0) ++i;
if(i==0) printf("%d",A.a[i]);
else {
if(A.a[i]==1) printf("x^%d",i);
else if(A.a[i]==-1) printf("-x^%d",i);
else printf("%dx^%d",A.a[i],i);}
for(++i;i1)
{
printf(" + %dx^%d",A.a[i],i);
}
else if(A.a[i]>id;
while(2)
{
if(id=='1')
{
ADD(A,B,&M);
printf("降冪輸出請按1,升冪輸出請2!\n");
cin>>sh;

}

Ⅶ c語言 二元一次方程組

到底是一元二次還是二元一次

Ⅷ 用C語言編程求兩曲線交點.跪求!!!

你看看這個是不是你要求的-------------------------------------------------------#include<stdio.h>
main()
{
while(1){
double a,b,c,a1,b1,c1,x,x2;
printf("請輸入參數:");
scanf("%lf,%lf,%lf,%lf,%lf,%lf",&a,&b,&c,&a1,&b1,&c1);
if((a1*b-a*b1)!=0)
{
x=(c1*a-c*a1)/(a1*b-a*b1);//求交點的縱坐標
x2=-(b*x+c)/a;//求交點的橫坐標
printf("曲線交點是:(%lf,%lf)",x2,x);//列印交點
break;

}//endif

}//endwhile
}----------------------------------------

Ⅸ 請高手幫我做一套C語言的題4

自變數x和因變數y有如下關系:
y=kx+b (k為任意不為零實數,b為任意實數)
則此時稱y是x的一次函數。
特別的,當b=0時,y是x的正比例函數。
即:y=kx (k為任意不為零實數)
定義域:自變數的取值范圍,自變數的取值應使函數有意義;若與實際相反,

一次函數的性質
1.y的變化值與對應的x的變化值成正比例,比值為k
即:y=kx+b(k≠0) (k為任意不為零的實數 b取任何實數)
2.當x=0時,b為函數在y軸上的截距。
3.k為一次函數y=kx+b的斜率,k=tg角1(角1為一次函數圖象與x軸正方向夾角)
形。取。象。交。減
一次函數的圖像及性質
1.作法與圖形:通過如下3個步驟
(1)列表[一般取兩個點,根據兩點確定一條直線];
(2)描點;
(3)連線,可以作出一次函數的圖像——一條直線。因此,作一次函數的圖像只需知道2點,並連成直線即可。(通常找函數圖像與x軸和y軸的交點)
2.性質:(1)在一次函數上的任意一點P(x,y),都滿足等式:y=kx+b(k≠0)。(2)一次函數與y軸交點的坐標總是(0,b),與x軸總是交於(-b/k,0)正比例函數的圖像總是過原點。
3.函數不是數,它是指某一變數過程中兩個變數之間的關系。
4.k,b與函數圖像所在象限:
y=kx時
當k>0時,直線必通過一、三象限,y隨x的增大而增大;
當k<0時,直線必通過二、四象限,y隨x的增大而減小。
y=kx+b時:
當 k>0,b>0, 這時此函數的圖象經過一,二,三象限。
當 k>0,b<0, 這時此函數的圖象經過一,三,四象限。
當 k<0,b<0, 這時此函數的圖象經過二,三,四象限。
當 k<0,b>0, 這時此函數的圖象經過一,二,四象限。
當b>0時,直線必通過一、二象限;
當b<0時,直線必通過三、四象限。
特別地,當b=0時,直線通過原點O(0,0)表示的是正比例函數的圖像。
這時,當k>0時,直線只通過一、三象限;當k<0時,直線只通過二、四象限。
4、特殊位置關系
當平面直角坐標系中兩直線平行時,其函數解析式中K值(即一次項系數)相等
當平面直角坐標系中兩直線垂直時,其函數解析式中K值互為負倒數(即兩個K值的乘積為-1)
確定一次函數的表達式
已知點A(x1,y1);B(x2,y2),請確定過點A、B的一次函數的表達式。
(1)設一次函數的表達式(也叫解析式)為y=kx+b。
(2)因為在一次函數上的任意一點P(x,y),都滿足等式y=kx+b。所以可以列出2個方程:y1=kx1+b …… ① 和 y2=kx2+b …… ②
(3)解這個二元一次方程,得到k,b的值。
(4)最後得到一次函數的表達式。
一次函數在生活中的應用
1.當時間t一定,距離s是速度v的一次函數。s=vt。
2.當水池抽水速度f一定,水池中水量g是抽水時間t的一次函數。設水池中原有水量S。g=S-ft。
常用公式(不全,希望有人補充)
1.求函數圖像的k值:(y1-y2)/(x1-x2)
2.求與x軸平行線段的中點:|x1-x2|/2
3.求與y軸平行線段的中點:|y1-y2|/2
4.求任意線段的長:√(x1-x2)^2+(y1-y2)^2 (註:根號下(x1-x2)與(y1-y2)的平方和)
5.求兩一次函數式圖像交點坐標:解兩函數式
兩個一次函數 y1=k1x+b1 y2=k2x+b2 令y1=y2 得k1x+b1=k2x+b2 將解得的x=x0值代回y1=k1x+b1 y2=k2x+b2 兩式任一式 得到y=y0 則(x0,y0)即為 y1=k1x+b1 與 y2=k2x+b2 交點坐標
6.求任意2點所連線段的中點坐標:[(x1+x2)/2,(y1+y2)/2]
7.求任意2點的連線的一次函數解析式:(X-x1)/(x1-x2)=(Y-y1)/(y1-y2) (其中分母為0,則分子為0)
k b
+ + 在一、二、三象限
+ - 在一、三、四象限
- + 在一、二、四象限
- - 在二、三、四象限
8.若兩條直線y1=k1x+b1‖y2=k2x+b2,那麼k1=k2,b1≠b2
9.如兩條直線y1=k1x+b1⊥y2=k2x+b2,那麼k1×k2=-1
應用
一次函數y=kx+b的性質是:(1)當k>0時,y隨x的增大而增大;(2)當k<0時,y隨x的增大而減小。利用一次函數的性質可解決下列問題。
一、確定字母系數的取值范圍
例1. 已知正比例函數 ,則當m=______________時,y隨x的增大而減小。
解:根據正比例函數的定義和性質,得 且m<0,即 且 ,所以 。
二、比較x值或y值的大小
例2. 已知點P1(x1,y1)、P2(x2,y2)是一次函數y=3x+4的圖象上的兩個點,且y1>y2,則x1與x2的大小關系是( )
A. x1>x2 B. x1<x2 C. x1=x2 D.無法確定
解:根據題意,知k=3>0,且y1>y2。根據一次函數的性質「當k>0時,y隨x的增大而增大」,得x1>x2。故選A。
三、判斷函數圖象的位置
例3. 一次函數y=kx+b滿足kb>0,且y隨x的增大而減小,則此函數的圖象不經過( )
A. 第一象限 B. 第二象限
C. 第三象限 D. 第四象限
解:由kb>0,知k、b同號。因為y隨x的增大而減小,所以k<0。所以b<0。故一次函數y=kx+b的圖象經過第二、三、四象限,不經過第一象限。故選A . 典型例題:
例1. 一個彈簧,不掛物體時長12cm,掛上物體後會伸長,伸長的長度與所掛物體的質量成正比例.如果掛上3kg物體後,彈簧總長是13.5cm,求彈簧總長是y(cm)與所掛物體質量x(kg)之間的函數關系式.如果彈簧最大總長為23cm,求自變數x的取值范圍.
分析:此題由物理的定性問題轉化為數學的定量問題,同時也是實際問題,其核心是彈簧的總長是空載長度與負載後伸長的長度之和,而自變數的取值范圍則可由最大總長→最大伸長→最大質量及實際的思路來處理.
解:由題意設所求函數為y=kx+12
則13.5=3k+12,得k=0.5
∴所求函數解析式為y=0.5x+12
由23=0.5x+12得:x=22
∴自變數x的取值范圍是0≤x≤22
【考點指要】
一次函數的定義、圖象和性質在中考說明中是C級知識點,特別是根據問題中的條件求函數解析式和用待定系數法求函數解析式在中考說明中是D級知識點.它常與反比例函數、二次函數及方程、方程組、不等式綜合在一起,以選擇題、填空題、解答題等題型出現在中考題中,大約佔有8分左右.解決這類問題常用到分類討論、數形結合、方程和轉化等數學思想方法.
例2.如果一次函數y=kx+b中x的取值范圍是-2≤x≤6,相應的函數值的范圍是-11≤y≤9.求此函數的的解析式。
解:(1)若k>0,則可以列方程組 -2k+b=-11
6k+b=9
解得k=2.5 b=-6 ,則此時的函數關系式為y=2.5x—6
(2)若k<0,則可以列方程組 -2k+b=9
6k+b=-11
解得k=-2.5 b=4,則此時的函數解析式為y=-2.5x+4
【考點指要】
此題主要考察了學生對函數性質的理解,若k>0,則y隨x的增大而增大;若k<0,則y隨x的增大而減小。
一次函數解析式的幾種類型
①ax+by+c=0[一般式]
②y=kx+b[斜截式]
(k為直線斜率,b為直線縱截距,正比例函數b=0)
③y-y1=k(x-x1)[點斜式]
(k為直線斜率,(x1,y1)為該直線所過的一個點)
④(y-y1)/(y2-y1)=(x-x1)/(x2-x1)[兩點式]
((x1,y1)與(x2,y2)為直線上的兩點)
⑤x/a-y/b=0[截距式]
(a、b分別為直線在x、y軸上的截距)
解析式表達局限性:
①所需條件較多(3個);
②、③不能表達沒有斜率的直線(平行於x軸的直線);
④參數較多,計算過於煩瑣;
⑤不能表達平行於坐標軸的直線和過圓點的直線。
傾斜角:x軸到直線的角(直線與x軸正方向所成的角)稱為直線的傾斜 角。設一直線的傾斜角為a,則該直線的斜率k=tg(a)
形如y=kx(k為常數,且k不等於0),y就叫做x的正比例函數.
正比例函數屬於一次函數,正比例函數是一次函數的特殊形式.
即當一次函數 y=kx+b 若b=0,則此為正比例函數.
圖像做法
1.列表
2.描點
3.連線(一定要經過坐標軸的原點)
其次,正比例函數的圖像是經過原點和(1,k)[或(2,2k),(3,3k)等]兩點的一條直線。
其他:當k>0時,它的圖像(除原點外)在第一、三象限,y隨x的增大而增大
當k<0時,它的圖像(除原點外)在第二、四象限,y隨x的增大而減小
總結:y=kx(k不等於0)
而以方程的角度來說,只要將正比例函數上的一個點的坐標給出,就能確定這個解析式
若求正比例函數與一次函數,二次函數或反比例函數的交點坐標,就是將兩個已知的方程聯立成方程組
求出其x,y值便可
正比例函數在線性規劃問題中體現的力量也是無窮的
比如斜率問題就取決於K值,當K越大,則該函數圖像與x軸的夾角越大,反之亦然
還有,Y=Kx是Y=K/x 圖像的對稱軸.
1)正比例:兩種相關聯的量,一種量變化,另一種量也隨著變化,如果這兩種量相對應的兩個數的比值(也就是商)一定,這兩種量就叫做成正比例的量,它們的關系叫做成正比例關系. ①用字母表示:如果用字母x和y表示兩種相關聯的量,用k表示它們的比值,(一定)正比例關系可以用以下關系式表示:
②正比例關系兩種相關聯的量的變化規律:對於比值為正數的,即y=kx(k>0),此時的y與x,同時擴大,同時縮小,比值不變.例如:汽車每小時行駛的速度一定,所行的路程和所用的時間是否成正比例?
以上各種商都是一定的,那麼被除數和除數. 所表示的兩種相關聯的量,成正比例關系. 注意:在判斷兩種相關聯的量是否成正比例時應注意這兩種相關聯的量,雖然也是一種量,隨著另一種的變化而變化,但它們相對應的兩個數的比值不一定,它們就不能成正比例. 例如:一個人的年齡和它的體重,就不能成正比例關系,正方形的邊長和它的面積也不成正比例關系.

Ⅹ c語言求一元二次方程的根

#include<iostream>

#include<cmath>

usingnamespacestd;

intmain()

{floata,b,c;floatx1,x2; cin>a>>b>>c;floatdlt=b*b-4*a*c;if(dlt>=0){x1=-b/2/a+sqrt(dlt)。

/2/ax2=-b/2/a-sqrt(dlt)/2/a。

cout<<a<<"x^2+"<<b<<"x+"<<c<<"=0有兩個實根:";cout<<"x1="<<x1<<",x2="<<x2<<endl;}

else

{x1=-b/2/a;x2=sqrt(-dlt)/2/a;cout<<a<<"x^2+"<<b<<"x+"<<c<<"=0有兩個虛根:"。

cout<<"x="<<x1<<"+/-"<<x2<<"i"<<endl;}

return0。

(10)c語言求滿足b1x1b2x2擴展閱讀:

成立條件:

一元二次方程成立必須同時滿足三個條件:

①是整式方程,即等號兩邊都是整式,方程中如果有分母;且未知數在分母上,那麼這個方程就是分式方程,不是一元二次方程,方程中如果有根號,且未知數在根號內,那麼這個方程也不是一元二次方程(是無理方程)。

②只含有一個未知數;

③未知數項的最高次數是2。