二元函数:
function yy=yy(x,y)
yy=3*x+4*y;
另一个函数:
function z2=z2(x)
z2=yy(x,2);
z2(4)
运行出错:
??? Input argument "x" is undefined.
Error in ==> z2 at 2
z2=yy(x,2);
matlab中,已在一个m文件里定义了一二元函数,如何在另一个m文件里给定其中一个值,把它变成一个一元函数
答案:2 悬赏:40 手机版
解决时间 2021-04-14 05:06
- 提问者网友:喧嚣尘世
- 2021-04-13 07:04
最佳答案
- 五星知识达人网友:野慌
- 2021-04-13 07:15
我刚试了,你的程序没有问题的。
z2(4)
ans =
20
你把两个函数都保存好了然后进行调用
z2(4)
ans =
20
你把两个函数都保存好了然后进行调用
全部回答
- 1楼网友:污到你湿
- 2021-04-13 07:35
我的理解如下
已知:
a=rand(8,1);
= 0.5497
0.9172
0.2858
0.7572
0.7537
0.3804
0.5678
0.0759
b=rand(8,1);
= 0.0540
0.5308
0.7792
0.9340
0.1299
0.5688
0.4694
0.0119
给出c的解析表达式:c=5+6*a+7*b+8*a.^2+9*b.^2
=11.1198
23.4844
18.2868
28.5195
15.1285
15.3344
16.2550
5.5857
即自变量为a和b,c为函数,5是常数项,6和7是一次项系数 8和9是二次项系数
要求:我们要通过函数拟合来得到这些系数:5 6 7 8 9
1)用polyfit是指单变量x与函数y之间的拟合关系
如果非要用这个函数,可以把二元的输入加权合并成一元输入,类似于一元回归的思想,比如将输入x=a+b(平均加权)作为输入变量,此时的映射关系为x为输入,c为函数输出
输入polyfit(x,c,2)
得到3.3457 8.2160 4.8824
即c=3.3457*x^2+ 8.2160*x+4.8824
=3.3457*(a+b)^2+ 8.2160*(a+b)+4.8824
或者你可以用更多阶来拟合
比如polyfit(x,c,3)得到1.0187 0.6132 10.1033 4.6768
2)可以用多元线性回归的命令regress
输入矩阵x=[ones(size(a)) a b a.*b a.^2 b.^2];
x为6列数据,得到的系数分别对应这6列
p=regress(c,x)
p = 5.0000
6.0000
7.0000
0.0000
8.0000
9.0000
p就是需要求解的系数这里面出现了一个0是对应交叉项a*b的
因为之前的解析式中就没有交叉项所以该系数为0
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯