当前位置:首页 » 编程语言 » 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。