MATLAB怎么定义已知定义在r上的函数f(x),t 10)=g(x,t)

function在MATLAB中怎么用_百度知道
function在MATLAB中怎么用
function f=yuandu_mzc(x)r=[2.8,0,-3.4,-4.7,-4.1,-6.0,-7.8,-8.4,-11.2,-11.9,-13.8,-14.4,-13.8,-16.4,-14.5,-14.8
-16.0,-14.5,-14.8,-16.0,-14.5,-16.0,-16.0,-15.7,-14.8,-15.1,-12.5,-13.4,-9.4,-10.1,
-8.8,-9.7,-8.7,-8.7,-6.7,-4.6,-3.8,-1.7,-0.7,2.1,2.0,5.1,5.7,7.0,7.9,9.6,11.9,10.1,
14.2,15.0,16.9,16.9,17.0,18.6,19.8,20.9,19.6,20.9,20.3,17.8,21.0,18.9,18.7,14.1,17.9,14.9,
15.6,14.5,11.0,13.5,7.0,10.0,6.9,4.0,4.1];theta=[2*pi/72:2*pi/72:2*pi]';x=[-8:1:12]';y=[-27:1:-7]';for i=1:21
z(i)=max(r'-x(i)*cos(theta)-y(i)*sin(theta))-min(r'-x(i)*cos(theta)-y(i)*sin(theta));end[a1,b1]=meshgrid(-8:2:12,-27:2:-7);z1=griddata(x,y,z,a1,b1,'v4');subplot(1,2,1),surf(a1,b1,z1),axis([-8,12,-27,-7,5,35]);subplot(1,2,2),contour(a1,b1,z1,10)望达人给指点一下这个程序的错误,我怎么运行不出来,不胜感谢
我有更好的答案
M函数除了直接用函数名调用之外,也可以进行参数传递,使得Matlab应用更加方便。M函数文件以function开头,格式为function 输出变量 = 函数名称(输入变量)语句。编写一个求自变量X的正弦值的m函数,如下:function y=mysin(x)y=sin(x);% 函数体此时在Matlab命令窗口输入若下内容时&&x=pi/2;&&y=mysin(x)Matlab便会调用y.m文件子函数,计算sin值,并给出结果为&&y=1。
function用来定义函数,一般一个函数放在一个.m文件里。举个简单的例子建立一个myfunction.m,然后在文件中写。function y=myfunction(a,b)其中a,b是输入函数的参数,y是函数返回的值。当需要返回多个值时,可以将y看作一个数组,或者直接将函数的开头写成如function [x,y]=myfunction(x,y)的形式。然后就是定义函数的内容,通俗的说就是怎样由输入参数a,b得到返回值y。比如最简单的y=a+b。总结一下,将下面的代码function y=myfunction(a,b)y=a+b;保存为一个m文件myfunction.m,调用方式如下。num=myfunction(3,4);这样就可以由函数中的y=a+b得到num的值是3+4=7。以上是最简单的例子,不知说清楚没有,如不清楚可以直接hi我。
本回答被提问者和网友采纳
要在command窗口中直接调用运行
我想,你运行不出来的原因是:你可能直接运行此function函数了。如果要真是这样的话,那肯定是不行的。function函数只能被调用。不能直接运行。
可以直接用polyval([1 0 3 4],0), 由于你这个是多项式,很好处理的 如果是不能写成矩阵系数的非线性函数,相对就麻烦一点了 比如y=sin(x)+x^2,要求x=0处的值,可以这样求, f=inline('sin(x)+x^2','x')%表示符号函数 y=f(0)%将x=0带入符号函数中,求符号函数的值如果你要问的只是function的用法,那么需要另外建立一个单独的文件,相对来说不如上述方法简单。function的用法是1新建一个m文件
function f=f(x)
f(1)=x^3+3*x+4;%f(1)表示第一个方程,如果还有可以追加f(2),一次类推,当然只有一个时f(1)可以简写成f。2将其保存为f_x.m2在matlab命令窗口中直接调用f_x(0)就可以了&& f_x(0)ans =
2bbhshehjsjsjusjshsjsjsjsuwiiwiwiwiiwiwi
2条折叠回答
其他3条回答
为您推荐:
其他类似问题
matlab的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。求高手指教:matlab编写一个函数文件,知道x,y的关于t的参数方程,求y*x'(x对t的导数)的返回函数的值_百度知道
求高手指教:matlab编写一个函数文件,知道x,y的关于t的参数方程,求y*x'(x对t的导数)的返回函数的值
比如说:function s=y_diff_x(t);x=sin(t);y=cos(t);s=y*diff(x);这样编写的话直接在命令框中输入y_diff_x(1)的话,不能返回s=cos(1)*cos(1)的值,返回的是空矩阵,要怎么编写才对,谢谢!
我有更好的答案
你是要输入一个t的数值t0然后返回y(t0)*x'(t0)吗?是的话这样写吧:function s=y_diff_x(t0)syms tx=sin(t);y=cos(t);s=subs(y,t,t0)*subs(diff(x,t),t,t0);(当然其实可以写得更简洁)需要答案是symbolic的还是numerical的?我是按numerical写的
其实我的最终目标是想求定积分,想求quad('y_diff_x',t0,t2)的积分,按照你的方法可以求出我所需要的结果,但是积分的时候会出错,我是matlab新手,所以基本功很不扎实,你的回答很专业,万分感谢!
你想求这个定积分就直接把y_diff_x的表达式弄进去积分啊。。。唉,算了,我怀疑我没有搞懂你到底要干什么。。。
对于我的表达我很抱歉,我在matlab中用m文件编号你提供的程序,在命令行中输入y_diff_x(0),可以算出结果,但是输入quad('y_diff_x',0,1)的时候提示出错了,如下面所示:不知道是哪里出问题了,还请帮帮忙,谢谢!
(说实话,我从来没用过quad。。。help里面都说以后要把quad丢出去。。。=-=)那个函数我重写一遍:function s=y_diff_x(t0)syms tx=sin(t);y=cos(t);s=subs(y,t,t0).*subs(diff(x,t),t,t0);主要是要加个“.”
采纳率:77%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。matlab定义函数??_百度知道
matlab定义函数??
&& n=1;h=b-a;wugu=1;x=a;k=0;RT=zeros(4,4);
&& RT(1,1)=h*(feval(fun,a)+feval(fun,b))/2;
??? RT(1,1)=h*(feval(fun,a)+feval(fun,b))/2;
Error: Missing variable or function
我想问一下,fun函...
我有更好的答案
  可以有三种方法创建:   (1)inline函数:  f=inline('3*x+1','x')   可以得到:f=  Inline function :  f(x)=3*x+1   输入t=0:3;  f(t)   ans =  1 4 7 10   (2)匿名函数:  f=@(x)3*x+1   可以得到:f=  @(x)3*x+1   输入t=0:3;  f(t)   ans =  1 4 7 10   (3)创建M-函数  新建m文件,输入:  function f=equation(x)  f=3*x+1;   保存m文件到工作文件夹;   调用:  输入t=0:3;  f=equation(t)   ans =  1 4 7 10这样可以么?
第三种调用的时候,可以在t未知的情况下,直接调用f么?
采纳率:63%
为您推荐:
其他类似问题
matlab的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。matlab函数如何传入参数这个是函数部分function y=testf(t,x)a=0.8;m = 0.01;b=0.1;y=[-a*x(1)*x(2)+m*x(2)-b*x(1),a*x(1)*x(2)-b*x(2)-m*x(2),b*x(1)+b*x(2)]';这个是执行部份ts=0:0.1:50;x0=[0.98,0.02,0.00]; [t,x]=ode45('testf',ts,x0);plot(t,x(:,2),'b-'),grid,这个是画的二维函数图,我想问一下,怎么把m作为参数传入函数,然后做m,t,和x(2)的三维函数,可能还有些问题,希望有缘人可以帮我
函数定义时,多加一个参数mfunction y=testf(t,x,m)a=0.8;m = 0.01;b=0.1;y=[-a*x(1)*x(2)+m*x(2)-b*x(1),a*x(1)*x(2)-b*x(2)-m*x(2),b*x(1)+b*x(2)]';执行部分ts=0:0.1:50;x0=[0.98,0.02,0.00];mm=1:0.1:50; %不同的...
(5y - 根号3)=0y=5分之根号32 - (根号2)y= 0y=根号2所以y=根号2或5分之根号3
①化简:(根号5+根号6)(根号5-根号6) ②解方程:x?+2x+6=1-4x①化简:(根号5+根号6)(根号5-根号6)②解方程:x?+2x+6=1-4x
①化简:(根号5+根号6)(根号5-根号6)=(根号5)?-(根号6)?=5-6=-1②解方程:x?+2x+6=1-4xx?+6x+5=0(x+1)(x+5)=0x=-1或x=-5
①原始的公式:S扇=θ/360°×S圆=θ/360°×2πr?.其中r是圆的半径,θ是圆心角角度.这个很好理解,就是算出圆的面积再算扇形,乘以扇形占总面积的比例.不过这个方法用的地方不是很多.②曲边三角形公式:S扇=1/2 ×Lr ,其中L为扇形的弧长,r为圆的半径.这个公式很好之处在于它和三角形面积公式非常相似,就把扇形看成底边弯曲成圆弧的三角形,面积还是1/2底乘高.③弧度制下的半径与弧度表达式:S扇=1/2 αr?,其中α为圆心角弧度.可以直接由弧度定义αr=L(弧长)从②推出来.
x?-5x-6=0?(x-6)(x+1)=0
a^2 + 2ab + b^2 = (a^2 + ab) + (ab + b^2) = -3 + 7 =4所以 (a+b)^2 = 4a+b = 2或-2因为a^2 + ab = a(a+b) = -3,所以a = 3/2,b =-7/2 或 a =-3/2,b=7/2所以a^2b^2 = (ab)^2 = (21/4)^2 = 441/16
其他相关问题新版Matlab中神经网络训练函数Newff的使用方法
新版Matlab中神经网络训练函数Newff的使用方法
介绍新版newff
newff(P,T,[S1 S2...S(N-l)],{TF1 TF2...TFNl},
BTF,BLF,PF,IPF,OPF,DDF)
Description
newff(P,T,[S1 S2...S(N-l)],{TF1 TF2...TFNl},
BTF,BLF,PF,IPF,OPF,DDF) takes several arguments
R x Q1 matrix of Q1 sample R-element input
SN x Q2 matrix of Q2 sample SN-element
target vectors
Size of ith layer, for N-1 layers, default
(Output layer size SN is determined from T.)
Transfer function of ith layer. (Default =
'tansig' for
hidden layers and 'purelin' for output layer.)
Backpropagation network training function
(default = 'trainlm')
Backpropagation weight/bias learning
function (default = 'learngdm')
Row cell array of input processing
functions. (Default =
{'fixunknowns','removeconstantrows','mapminmax'})
Row cell array of output processing
functions. (Default =
{'removeconstantrows','mapminmax'})
Data divison function (default =
'dividerand')
problem consisting of inputs P and targets T to be solved with a
P = [0 1 2 3 4 5
6 7 8 9 10];T = [0 1 2 3 4 3 2 1 2 3 4];
Here a network is created
with one hidden layer of five neurons.
newff(P,T,5);
The network is simulated and
its output plotted against the targets.
sim(net,P);plot(P,T,P,Y,'o')
The network is trained for
50 epochs. Again the network's output is plotted.
net.trainParam.epochs = 50;net = train(net,P,T);Y =
sim(net,P);plot(P,T,P,Y,'o')
新版newff与旧版newff调用语法对比
比如输入input(6*1000),输出output为(4*1000),那么
旧版定义:net=newff(minmax(input),[14,4],{'tansig','purelin'},'trainlm');
新版定义:net=newff(input,output,14,{'tansig','purelin'},'trainlm');
比如输入input(6*1000),输出output为(4*1000),那么
旧版定义:net=newff(minmax(input),[49,14,4],{'tansig','tansig','tansig'},'traingdx');
新版定义:net=newff(input,output, [49,14],
{'tansig','tansig','tansig'},'traingdx');
旧版newff使用方法在新版本中使用
提示:旧版本定义的newff虽也能在新版本中使用,但会有警告,警告如下:
Warning: NEWFF used in an obsolete way.
& In obs_use at 18
&&In newff&create_network at
&&In newff at 102
&& & See help
for NEWFF to update calls to the new argument
新版newff与旧版newff使用的训练效果对比
&旧版本:旧用法训练次数多,但精度高&&
新版本:新用法训练次数少,但精度可能达不到要求
造成上述原因是:
程序里面的权值、阈值的初始值是随机赋值的,所以每次运行的结果都会不一样,有好有坏。你可以把预测效果不错的网络的权值和阈值作为初始值。具体可以查看net.iw{1,1}、net.lw{2,1}、net.b{1}、net.b{2}的值。
现在给一个完整的例子
&%% 清空环境变量
%% 训练数据预测数据
data=importdata('test.txt');
%从1到768间随机排序
k=rand(1,768);
[m,n]=sort(k);
%输入输出数据
input=data(:,1:8);
=data(:,9);&
%随机提取500个样本为训练样本,268个样本为预测样本
input_train=input(n(1:500),:)';
output_train=output(n(1:500),:)';
input_test=input(n(501:768),:)';
output_test=output(n(501:768),:)';&
%输入数据归一化
[inputn,inputps]=mapminmax(input_train);&
%% BP网络训练
% %初始化网络结构
net=newff(inputn,output_train,10);&
net.trainParam.epochs=1000;
net.trainParam.lr=0.1;
net.trainParam.goal=0.0000004;
%% 网络训练
net=train(net,inputn,output_train);&
%% BP网络预测
%预测数据归一化
inputn_test=mapminmax('apply',input_test,inputps);&
%网络预测输出
BPoutput=sim(net,inputn_test);&
%% 结果分析
%根据网络输出找出数据属于哪类
BPoutput(find(BPoutput&0.5))=0;
BPoutput(find(BPoutput&=0.5))=1;&
%% 结果分析
%画出预测种类和实际种类的分类图
plot(BPoutput,'og')
plot(output_test,'r*');
legend('预测类别','输出类别')
title('BP网络预测分类与实际类别比对','fontsize',12)
ylabel('类别标签','fontsize',12)
xlabel('样本数目','fontsize',12)
ylim([-0.5
%预测正确率
rightnumber=0;
i=1:size(output_test,2)
if BPoutput(i)==output_test(i)
rightnumber=rightnumber+1;
rightratio=rightnumber/size(output_test,2)*100;
sprintf('测试准确率=%0.2f',rightratio)
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 定义在r上的函数f(x)满足 的文章

 

随机推荐