已知向量m=(sinx,-1),向量n=(√3cosx,1/2),函数f(x)=(m+n)*m. (1)求f(x)的最小正周期T; (2)若不等

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已知向量m=(sinx,-1),向量n=(√3cosx,1/2),函数f(x)=(m+n)*m. (1)求f(x)的最小正周期T; (2)若不等相关的知识,希望对你有一定的参考价值。

已知向量m=(sinx,-1),向量n=(√3cosx,1/2),函数f(x)=(m+n)*m.
(1)求f(x)的最小正周期T;
(2)若不等式f(x)-t=0在x∈[π/4, π/2]上有解,求实数t的取值范围。

已知向量m=(sinx,-1),向量n=((√3)cosx,1/2);函数f(x)=(m+n)•m;(1)求f(x)的最小正周期T;
(2)若不等式f(x)-t=0在x∈[π/4, π/2]上有解,求实数t的取值范围。
解:(1)。m+n=(sinx+(√3)cosx,-1/2),
故f(x)=(m+n)•m=[sinx+(√3)cosx]sinx+1/2=sin²x+(√3/2)sin2x+1/2=(1-cos2x)/2+(√3/2)sin2x+1/2
=(√3/2)sin2x-(1/2)cos2x+1=sin2xcos(π/6)-cos2xsin(π/6)+1=sin(2x-π/6)+1
故f(x)的最小正周期T=2π/2=π;
(2)。f(x)-t=sin(2x-π/6)+1-t=0,得sin(2x-π/6)=t-1在[π/4,π/2]上有解,在此区间上,
1/2≦sin(2x-π/6)≦1;故1/2≦t-1≦1,即3/2≦t≦2.
参考技术A (1)f(x)=(m+n)•m=m•m+n•m
=(sin²x+1)+[(sinx*√3cosx-1*(1/2)]=sin²x+1+√3sinxcosx-1/2=(1-cos2x)/2 +(√3/2)sin2x +1/2
=1+sin(2x +π/6);
f(x) 的最小正周期是 π;
(2)不等式 f(x)-t = 1+sin(2x +π/6)-t = 0 在x∈[π/4, π/2]上有解,则
π/2 +π/6≤ (2x+π/6) ≤π +π/6,-1/2≤sin(2x +π/6)≤1;
即 -1/2≤ t-1 ≤1,1/2≤ t ≤2;本回答被提问者和网友采纳
参考技术B 已知向量m=(sinx,-1),向量n=(√3cosx,1/2),函数f(x)=(m+n)*m.
(1)求f(x)的最小正周期T;
(2)若不等式f(x)-t=0在x∈[π/4, π/2]上有解,求实数t的取值范围。
(1)f(x)=(m+n)*m=( sinx+√3cosx,-1/2)* (sinx,-1)
= sinx^2+√3 sinx cosx+1/2
=1-1/2* cos2x+√3/2* sin2x
=1+√3/2* sin2x-1/2* cos2x
=1+ sin(2x-π/6)
所以,函数的最小正周期T=π
(2)f(x)-t=0, 1+ sin(2x-π/6)-t=0, sin(2x-π/6)-t+1=0, -1≤t-1≤1, 0≤t≤2
令F(x)= sin(2x-π/6)-t+1,
当x=π/4,时,F(π/4)= sin(π/2-π/6)-t+1= sin(π/3)-t+1=√3/2-t+1=1+√3/2-t
当x= π/2时,F(π/2)= sin(π-π/6)-t+1= sin(π/6)-t+1=1/2-t+1=3/2-t
F(π/4)* F(π/2)= (1+√3/2-t)*( 3/2-t)<0,
解不等式得:3/2<t<1+√3/2
综合得:3/2<t<1+√3/2
参考技术C f(x)=(m+n)*m.=m^2+mn
=(1+sin^2x)+√3sinxcosx-1/2
=1+1/2-1/2cos2x+√3/2sin2x-1/2
=√3/2sin2x-1/2cos2x+1
=sin(2x-π/6)+1
T=2π/2=π
2)f(x)-t=0
sin(2x-π/6)=t-1
x∈[π/4, π/2]
2x-π/6∈[π/3, 5π/6]
1/2<=t-1<=1
3/2<=t<=2

返回一个已知大小的向量而不需要额外的包装器?

【中文标题】返回一个已知大小的向量而不需要额外的包装器?【英文标题】:Return a vector of known size without additional wrapper? 【发布时间】:2013-09-22 09:05:40 【问题描述】:

我只是被 SWIG 和 numpy 的一个小问题困住了。 我在 C 中有一个专门的矩阵 (n,k) 向量 (k) 产品,我想与 numpy 接口。所以在乘法之前我总是知道输出向量(n)的形状。

目前,C 函数分配内存并将 double* 返回给计算的乘积。防止内存泄漏并避免更改 C 代码 我像在dot example 中一样接口它:

%apply (int DIM1, int DIM2, double* IN_ARRAY2) (int m1, int nd1, double* xd);
%apply (int DIM1, double* IN_ARRAY1) (int nd2, double* zd);
%apply (int DIM1, double* ARGOUT_ARRAY1) (int nd4, double* za);

%rename (mat_vec_mul) my_mat_vec_mul;
%ignore mat_vec_mul;
%include "math_lib.h"
%exception my_mat_vec_mul 
    $action
    if (PyErr_Occurred()) SWIG_fail;

%inline %
void my_mat_vec_mul( int m1, int nd1, double* xd, int nd2, double* zd, int nd4, double* za) 

    if (nd1 != nd2) 
        PyErr_Format(PyExc_ValueError,
                     "Arrays of lengths (%d,%d) given",
                     nd1, nd2);
    

    int i;
    double *tmp = NULL;
    tmp = mat_vec_mul(m1,nd1,xd,zd);
    for( i = 0; i < nd1; i++)
        za[i] = tmp[i];
     
    free(tmp);

%

现在,因为我将输出向量指定为 ARGOUT_ARRAY1,所以该函数在 python 中被调用为

v = test.mat_vec_mul(A,b,A.shape[0])

这很不方便。有没有办法在内部告诉 swig 的大小?或者是提供用户友好界面以在其周围添加额外包装器的唯一方法:

def user_interface_mat_vec_mul(A,b):
    mat_vec_mul(A,b,A.shape[0])

提前致谢。

【问题讨论】:

【参考方案1】:

这是我的答案,我找到了一种将包装函数放入 swig 文件的方法,它基本上可以满足我的要求:

%pythoncode %
def mat_vec_mul(A, b):
    return _test._mat_vec_mul(A, b, A.shape[0])
%

【讨论】:

以上是关于已知向量m=(sinx,-1),向量n=(√3cosx,1/2),函数f(x)=(m+n)*m. (1)求f(x)的最小正周期T; (2)若不等的主要内容,如果未能解决你的问题,请参考以下文章

支持向量机初识支持向量

矩阵与线性方程组

急求,matlab中, 已知矩阵A,已完成对A的QR分解,下一步求A的特征值和特征向量,程序怎么编写?

返回一个已知大小的向量而不需要额外的包装器?

一个数怎么能对一个向量求导

支持向量机分类及在R中实现