第八章 函数
- 格式:doc
- 大小:66.50 KB
- 文档页数:7
微积分第八章多元函数笔记微积分第八章多元函数是在一元函数的基础上拓展而来的,主要涉及多元函数的极限、连续性、偏导数、全微分、多元函数的微分、多元函数的导数以及拉格朗日乘数法等内容。
本文将重点探讨多元函数的微分和拉格朗日乘数法,并尝试用卷积的角度解释其中的概念。
一、多元函数的微分多元函数的微分是一种线性近似,它描述了函数在其中一点附近的变化情况。
多元函数的微分可以通过偏导数来求解。
对于二元函数f(x,y),在点(x0,y0)处可以定义偏微分算子∂=∂/∂x和∂/∂y,其定义为:∂f/∂x=f_x(x0,y0)=(f(x0+Δx,y0)-f(x0,y0))/Δx∂f/∂y=f_y(x0,y0)=(f(x0,y0+Δy)-f(x0,y0))/Δy其中Δx和Δy分别表示变量x和y的增量。
∂f/∂x和∂f/∂y分别表示函数f在点(x0,y0)处对变量x和y的变化率。
考虑函数f(x,y)的微分形式,可以表示为:df=f_x(x_0,y_0)dx+f_y(x_0,y_0)dy其中dx和dy分别表示x和y的增量。
df表示函数f在点(x0,y0)处的全增量。
可以将df看作是函数f的线性近似,其包含了对x和y的变化的线性度量。
二、卷积的思维解释卷积是一种线性运算,它用来描述信号经过系统处理后的结果。
在微积分中,可以将多元函数的微分看作是函数f和无穷小增量dx、dy的卷积操作。
其中,函数f可以看作是输入信号,dx和dy可以看作是脉冲响应。
通过卷积运算,可以得到函数f在(dx,dy)范围内的局部增量。
具体来说,可以将函数f(x,y)表示为一个二维矩阵,矩阵的每个元素对应函数f在不同点的值。
将增量dx、dy表示为一个二维矩阵,矩阵的大小与函数f相同,每个元素都是一个脉冲。
通过卷积运算,将函数f和增量dx、dy进行卷积,可以得到函数f在(dx,dy)范围内的局部增量。
三、拉格朗日乘数法拉格朗日乘数法是一种用于求解约束条件下的极值问题的方法。
第八章函数一、选择题:1、在C语言中,以下说法中正确的是:()A. 实参与其对应的形参各占用独立的存储单元B. 实参与其对应的形参占用同一个存储单元C. 只有当实参与形参同名时才占用同一个存储单元D. 实参占用存储单元,但形参是虚拟的,不占用存储单元2、以下正确的函数形式是:()A. double fun(int x, int y) { z=x+y; return z;}B. fun(int x,y) { int z; return z;}C. fun(x,y) { int x,y; double z; z=x+y; return z;}D. double fun(int x, int y) { double z; z=x+y; return z;}3、以下正确的函数定义形式是()A. double fun(int x, int y)B. double fun(int x ;int y)C. d ouble fun(int x, int y);D. d ouble fun(int x,y);4、定义为void类型的函数,其含义是()A. 调用函数后,被调用的函数没有返回值B. 调用函数后,被调用的函数不返回C. 调用函数后,被调用的函数的返回值为任意的类型D. 以上三种说法都是错误的5、定义C语言函数时,形参可以是:()A. 常量B. 变量C. 表达式D. 宏定义6、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是:()A. float型B. int型C. long型D. double型7、下面函数f(double x){printf(“%6d”,x);}的类型为: ( ) A. 实型 B. void 类型 C. int 类型 D. 均不正确8、有以下程序void f(int x,int y){ int t;if(x<y){ t=x; x=y; y=t; }}main(){ int a=4,b=3,c=5;f(a,b); f(a,c); f(b,c);printf("%d,%d,%d\n",a,b,c);}执行后输出的结果是:()A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,59、C语言中,简单变量做实参时,它和对应的形参之间的数据传递方式是()。
(A)地址传递(B)单向值传递(C)由实参传给形参,再由形参传递给实参(D)同用户指定传递方式10、有以下程序#include <stdio.h>int f(int x,int y){ return ((y-x)*x);}main(){int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d",d);}程序运行后的输出结果是:()A. 10B. 9C. 8D. 711、数组名作为实参传递给被调用的函数时,形参获得的是()A. 该数组第一个元素的值B. 该数组所有元素的值C. 该数组第一个元素的首地址D. 该数组所有元素的首地址12、若使用一维数组名作函数实参, 则以下正确的说法是:()A. 必须在主调函数中说明此数组的大小B. 实参数组类型与形参数组类型可以不匹配C. 在被调用函数中, 要设置形参数组的大小D. 实参数组名与形参数组名必须一致13、下列程序的输出结果是()。
f (int b[ ] , int m , int n){ int i , s=0;for(i=m ; i<=n ; i++)s=s+b[i] ;return s ; }main(){ int x , a[ ]={1, 2, 3, 4, 5, 6, 7, 8, 9};x=f (a , 3 ,5 );printf("%d\n " , x) ; }(A)15 (B)22 (C)30 (D)014、为了提高程序的运行速度,在函数中对于整型或指针可以使用的变量类型是:()A. autoB. registerC. staticD. extern15、若函数中有定义语句:int k;,则下列说法正确的是:()A. 系统将自动给k赋初值0B. 这时k中的值不确定C. 系统将自动给k赋初值-1D. 这时k中无任何值16、C语言中形参的缺省存储类别是()A.自动(auto)B.静态(static)C. 寄存器(register)D. 外部(extern)17. 下列叙述中错误的是:()A. 引用函数说明中指定的形参名,不必与函数定义中对应的形参名相同。
B. 不能用extern定义一个外部变量、数组。
C. 无论在函数外还是在函数内部引用自定义的函数,都可以不写extern关键字。
D. 用extern说明引用一个外部数组时,可以不给出数组大小。
18.在一个源文件中定义的全局变量的作用域为:()A. 本文件的全部范围B. 从定义该变量开始至本文件结束C. 本函数的全部范围D. 本程序的全部范围二、填空题:1、在C语言中,函数默认是。
(填“全局的”或“局部的”)2、已知函数定义为:int stat(int a,float *p){……………}则此函数的两个参数类型分别是、。
3、选择法排序函数:void sort(int array[],int n){ int i,j,k,t;for(i=0;i<n-1;i++){ k=i;for(; j<n;j++)if(array[j]<array[k]) k=j;t=array[k];;array[i]=t; } }三、看程序写结果:1、以下程序的运行结果是。
void fun(int i,int j){int x=7;pirntf("i=%d; j=%d; x=%d",i,j,x);}void main(){int i=2,x=5,j=7;fun(j,6);printf("i=%d; j=%d; x=%d",i,j,x);}2、以下程序的运行结果是。
max(int x, int y){int z;z=(x>y)?x:y;return(z);}void main(){int a=1,b=2,c;c=max(a,b);printf("max is %d",c);}3、以下程序的运行结果是。
void increment(){int x=0;x+=1;printf("%d",x);}void main(){increment();increment();increment();}4、以下程序的运行结果是。
int age(int n ){ int c;if(n= =1) c=20;else c=age(n-1)+2;return(c) ; }main( ){int x=4;printf("%d" ,age(x) ) ;}5、以下程序的运行结果是。
#include <stdio.h>main( ){ int x=10;{ int x=20;printf ("%d,", x);}printf("%d\n", x);}6、以下程序的运行结果是。
int f( int x ){static int b=0;b=b+1;return x+b ; }main( ){ int i;for(i=0; i<3; i++)p rintf(“% d ”, f(5)) ;}7、以下程序输出的结果是。
int w=2;int f(int x){ int y=1;static int z=3;y++;z++;return(x+y+z);}main(){ int k;for(k=0;k<3;k++)printf(“%4d”,f(w++);}8、以下程序输出的结果是。
fun(int a, int b){ if(a>b) return (a);Else return (b); }main(){ int x=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf(“%d\n”,r); }9、以下程序输出的结果是。
f (int m){static int k=2;m+=k;k+=m;return (k);}main ( ){ int i=4;while (i<6) printf(“%d \n”, f(i++));}10、以下程序输出的结果是。
int f(int n ){ int c;if(n= =1) c=1;else c=f(n-1) *n;return(c) ;}main( ){int x=4;printf("%d" ,f(x)) ;}11、以下程序输出的结果是。
long sub(int num){ int i;long subsum=1;for(i=1;i<=num;i++)subsum*=i;return(subsum);}main(){int i;long sum=0;for(i=1;i<=4;i++){sum+=sub( i );}printf("sum%1d=%ld\n",i,sum);}四、判断:1. 从作用域角度分,变量有局部变量和全局变量。
()2. 按变量存在的时间分,变量有动态存储和有静态存储方式。
()五、编程题:1、.编写一个求两个自然数的最大公约数的函数,通过主函数调用该函数来实现两数的最大公约数的判断。
函数定义格式如下:int gongyueshu(int m,int n){}2、现有函数prime(int m)其功能为判断m是否为素数。
请完成此函数,并在主函数中调用。
3、写一个函数计算2012以内最大的10个能被13或17整除的自然数之和(要求使用循环实现)。
输出格式:sum=234564、编写一个函数long newdata(long s)将长整型数s中每一位上为偶数的数码依次取出,构成一个新数放在t中。
高位仍放在高位,低位仍放在低位。
例如:当s中的数为87653142时,t中的数为8642。
在主函数中输入s,调用newdata。
5、编写一函数,要求输入一个整数字符串(即,字符串里全是整数字符,不含其他字符),返回该字符串对应的整数值,函数的原型:int tran(char s[ ])。
6、编写一函数,用选择排序法实现排序功能,原型如下。
(要求按元素值的升序排列)。
void selSort(int a[], int n)。