倒分饮料问题编程求解手动编程程式

求助:“沙迪克”火花机手动编程程序_百度知道
求助:“沙迪克”火花机手动编程程序
但去别的公司面试要求会手动编程。该如何编辑沙迪克程序都是自动生成的??
我有更好的答案
推荐到你到甲壳虫技术论坛学习
并不难的,你会nc代码编程就行!
其他类似问题
为您推荐:
火花机的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁查看: 3795|回复: 10|关注: 0
用MATLAB解高次复杂方程,如何编写程序?
已知T=1423,a=0.2087,b=0.5281,a+b+c=1,
方程是下面三个,
x1+x2+x3+K1*x1^3*x2+K2*x1^2*x2+K3*x1*x2+K4*x1^3*x3+K5*x1^3*x3^2+K6*x1*x3+K7*x2^3*x3+K8*x2^3*x3^2+K9*x2*x3^4=1;
a*x2-b*x1+(a-3*b)*K1*x1^3*x2+(a-2*b)*K2*x1^2*x2+(a-b)*K3*x1*x2-b*(3*K4*x1^3*x3+3*K5*x1^3*x3^2+K6*x1*x3)+a*(3*K7*x2^3*x3+3*K8*x2^3*x3^2+K9*x2*x3^4)=0;
a*x3-c*x1+c*(3*K1*x1^3*x2+2*K2*x1^2*x2+K3*x1*x2)+(a-3*c)*K4*x1^3*x3+(2*a-3*c)*K5*x1^3*x3^2+(a-c)*K6*x1*x3+a*(K7*x2^3*x3+2*K8*x2^3*x3^2+4*K9*x2*x3^4)=0;
其中; K1---K9的值为【14.9692& & 4.6245& & 2.2912& & 5.7717& & 2.1332& & 1.195& & 0.469& & 2.1501& & 0.385& & 】
求x1,x2,x3的值?
怎么编程,用牛顿迭代能解吗?
关注者: 284
解数值方程可以直接调用 fsolve 函数,代码如下:T=1423; a=0.2087; b=0.5281; c=1-a-b;
K = [14.9692& & 4.6245& & 2.2912& & 5.7717& & 2.1332& & 1.195& & 0.469& & 2.1501& & 0.385];
syms x1 x2 x3
eq1 = x1+x2+x3+K(1)*x1^3*x2+K(2)*x1^2*x2+K(3)*x1*x2+K(4)*x1^3*x3+K(5)*x1^3*x3^2+K(6)*x1*x3+K(7)*x2^3*x3+K(8)*x2^3*x3^2+K(9)*x2*x3^4-1;
eq2 = a*x2-b*x1+(a-3*b)*K(1)*x1^3*x2+(a-2*b)*K(2)*x1^2*x2+(a-b)*K(3)*x1*x2-b*(3*K(4)*x1^3*x3+3*K(5)*x1^3*x3^2+K(6)*x1*x3)+a*(3*K(7)*x2^3*x3+3*K(8)*x2^3*x3^2+K(9)*x2*x3^4);
eq3 = a*x3-c*x1+c*(3*K(1)*x1^3*x2+2*K(2)*x1^2*x2+K(3)*x1*x2)+(a-3*c)*K(4)*x1^3*x3+(2*a-3*c)*K(5)*x1^3*x3^2+(a-c)*K(6)*x1*x3+a*(K(7)*x2^3*x3+2*K(8)*x2^3*x3^2+4*K(9)*x2*x3^4);
f = matlabFunction([eq1;eq2;eq3], 'vars', {[x1 x2 x3]});
x0 = [0 0 0];
options=optimset('Display','iter','MaxFunEvals',1000,'TolFun',1e-10);
[x,fval,exitflag,output] = fsolve(f,x0,options)复制代码返回值 x 就是你要的结果:
& &-0.0749& &-0.1101& & 1.8555
好的,非常感谢!
winner245 发表于
解数值方程可以直接调用 fsolve 函数,代码如下:返回值 x 就是你要的结果:
您好!冒昧地打扰了,还请见谅!我把 您编的程序复制了一遍,
syms x1 x2 x3
T=1423; a=0.2087; b=0.5281; c=1-a-b;
K = [14.9692& & 4.6245& & 2.2912& & 5.7717& & 2.1332& & 1.195& & 0.469& & 2.1501& & 0.385];
eq1 = x1+x2+x3+K(1)*x1^3*x2+K(2)*x1^2*x2+K(3)*x1*x2+K(4)*x1^3*x3+K(5)*x1^3*x3^2+K(6)*x1*x3+K(7)*x2^3*x3+K(8)*x2^3*x3^2+K(9)*x2*x3^4-1;
eq2 = a*x2-b*x1+(a-3*b)*K(1)*x1^3*x2+(a-2*b)*K(2)*x1^2*x2+(a-b)*K(3)*x1*x2-b*(3*K(4)*x1^3*x3+3*K(5)*x1^3*x3^2+K(6)*x1*x3)+a*(3*K(7)*x2^3*x3+3*K(8)*x2^3*x3^2+K(9)*x2*x3^4);
eq3 = a*x3-c*x1+c*(3*K(1)*x1^3*x2+2*K(2)*x1^2*x2+K(3)*x1*x2)+(a-3*c)*K(4)*x1^3*x3+(2*a-3*c)*K(5)*x1^3*x3^2+(a-c)*K(6)*x1*x3+a*(K(7)*x2^3*x3+2*K(8)*x2^3*x3^2+4*K(9)*x2*x3^4);
f = matlabFunction([eq1;eq2;eq3], 'vars', {[x1 x2 x3]});
x0 = [0 0 0];
options=optimset('Display','iter','MaxFunEvals',1000,'TolFun',1e-10);
[x,fval,exitflag,output] = fsolve(f,x0,options)
在运行的时候怎么出现下面:??? Undefined function or method 'matlabFunction' for input arguments of type 'sym'.
Error in ==& z8 at 8
f = matlabFunction([eq1;eq2;eq3], 'vars', {[x1 x2 x3]});
关注者: 284
qicenmatlab 发表于
您好!冒昧地打扰了,还请见谅!我把 您编的程序复制了一遍,
syms x1 x2 x3
T=1423; a=0.2087; b=0.5281 ...
这说明你的matlab版本太老,不支持&&matlabFunction 这个函数。你可以手动构造函数句柄 f,来实现这个功能,代码如下:syms x1 x2 x3
T=1423; a=0.2087; b=0.5281; c=1-a-b;
K = [14.9692& & 4.6245& & 2.2912& & 5.7717& & 2.1332& & 1.195& & 0.469& & 2.1501& & 0.385];
eq1 = x1+x2+x3+K(1)*x1^3*x2+K(2)*x1^2*x2+K(3)*x1*x2+K(4)*x1^3*x3+K(5)*x1^3*x3^2+K(6)*x1*x3+K(7)*x2^3*x3+K(8)*x2^3*x3^2+K(9)*x2*x3^4-1;
eq2 = a*x2-b*x1+(a-3*b)*K(1)*x1^3*x2+(a-2*b)*K(2)*x1^2*x2+(a-b)*K(3)*x1*x2-b*(3*K(4)*x1^3*x3+3*K(5)*x1^3*x3^2+K(6)*x1*x3)+a*(3*K(7)*x2^3*x3+3*K(8)*x2^3*x3^2+K(9)*x2*x3^4);
eq3 = a*x3-c*x1+c*(3*K(1)*x1^3*x2+2*K(2)*x1^2*x2+K(3)*x1*x2)+(a-3*c)*K(4)*x1^3*x3+(2*a-3*c)*K(5)*x1^3*x3^2+(a-c)*K(6)*x1*x3+a*(K(7)*x2^3*x3+2*K(8)*x2^3*x3^2+4*K(9)*x2*x3^4);
f1 = eval(['@(x1,x2,x3)',vectorize(eq1)]);
f2 = eval(['@(x1,x2,x3)',vectorize(eq2)]);
f3 = eval(['@(x1,x2,x3)',vectorize(eq3)]);
f = @(x) [f1(x(1),x(2),x(3)); f2(x(1),x(2),x(3)); f3(x(1),x(2),x(3))];
x0 = [0 0 0];
options=optimset('Display','iter','MaxFunEvals',1000,'TolFun',1e-10);
[x,fval,exitflag,output] = fsolve(f,x0,options)复制代码
谢谢你,出来了,我用的是matlab20081
您好!再一次打扰您!真是不好意思!当常数变量,a,b ,c的值是一组数据是,该怎么定义常数变量?
syms x1 x2 x3
T=1423; a=[0.1947& & & & 0.1782& & & & 0.1584& & & & 0.1221& & & & 0.0891& & & & 0.0726& & & & 0.0528& & & & 0.033& & & & 0.0165& & & & 0.0033]; b=[.801& & & & 0.8039& & & & 0.8084& & & & 0.8129& & & & 0.8158& & & & 0.8158& & & & 0.8175& & & & 0.8164& & & & 0.8164& & & & 0.8147]; c=1-a-b;
K = [14.9692& & 4.6245& & 2.2912& & 5.7717& & 2.1332& & 1.195& & 0.469& & 2.1501& & 0.385];
eq1 = x1+x2+x3+K(1)*x1^3*x2+K(2)*x1^2*x2+K(3)*x1*x2+K(4)*x1^3*x3+K(5)*x1^3*x3^2+K(6)*x1*x3+K(7)*x2^3*x3+K(8)*x2^3*x3^2+K(9)*x2*x3^4-1;
eq2 = a*x2-b*x1+(a-3*b)*K(1)*x1^3*x2+(a-2*b)*K(2)*x1^2*x2+(a-b)*K(3)*x1*x2-b*(3*K(4)*x1^3*x3+3*K(5)*x1^3*x3^2+K(6)*x1*x3)+a*(3*K(7)*x2^3*x3+3*K(8)*x2^3*x3^2+K(9)*x2*x3^4);
eq3 = a*x3-c*x1+c*(3*K(1)*x1^3*x2+2*K(2)*x1^2*x2+K(3)*x1*x2)+(a-3*c)*K(4)*x1^3*x3+(2*a-3*c)*K(5)*x1^3*x3^2+(a-c)*K(6)*x1*x3+a*(K(7)*x2^3*x3+2*K(8)*x2^3*x3^2+4*K(9)*x2*x3^4);
f1 = eval(['@(x1,x2,x3)',vectorize(eq1)]);
f2 = eval(['@(x1,x2,x3)',vectorize(eq2)]);
f3 = eval(['@(x1,x2,x3)',vectorize(eq3)]);
f = @(x) [f1(x(1),x(2),x(3)); f2(x(1),x(2),x(3)); f3(x(1),x(2),x(3))];
x0 = [0 0 0];
options=optimset('Display','iter','MaxFunEvals',1000,'TolFun',1e-10);
[x,fval,exitflag,output] = fsolve(f,x0,options)
运行后,报错下列信息:@(x1,x2,x3)matrix([[3./10.*x2-2./5.*x1-3.*x1.^3.*x2-.*x1.^2.*x2-.*x1.*x2-6.*x1.^3.*x3-.*x1.^3.*x3.^2-.*x1.*x3+.*x2.^3.*x3+1.*x2.^3.*x3.^2+00000.*x2.*x3.^4,1./5.*x2-1./2.*x1-4.*x1.^3.*x2-.*x1.^2.*x2-2.*x1.*x2-6.*x1.^3.*x3-.*x1.^3.*x3.^2-.*x1.*x3+267./5248.*x2.^3.*x3+.*x2.^3.*x3.^2+6.*x2.*x3.^4]])
Error in ==& @(x)[f1(x(1),x(2),x(3));f2(x(1),x(2),x(3));f3(x(1),x(2),x(3))]
Error in ==& fsolve at 195
& && &&&fuser = feval(funfcn{3},x,varargin{:});
Error in ==& z5 at 16
[x,fval,exitflag,output] = fsolve(f,x0,options)
关注者: 284
本帖最后由 winner245 于
03:21 编辑
qicenmatlab 发表于
您好!再一次打扰您!真是不好意思!当常数变量,a,b ,c的值是一组数据是,该怎么定义常数变量?
syms x1&&...
实现的主体部分跟5楼的程序一样,只是,需要代入向量a、b、c的所有数值求解,这一代入可以借助循环,也可以用 arrayfun 来实现。下面提供 arrayfun 方法,最大的优点是代码简洁:syms x1 x2 x3 a b c
T=1423;
K = [14.9692& & 4.6245& & 2.2912& & 5.7717& & 2.1332& & 1.195& & 0.469& & 2.1501& & 0.385];
eq1 = x1+x2+x3+K(1)*x1^3*x2+K(2)*x1^2*x2+K(3)*x1*x2+K(4)*x1^3*x3+K(5)*x1^3*x3^2+K(6)*x1*x3+K(7)*x2^3*x3+K(8)*x2^3*x3^2+K(9)*x2*x3^4-1;
eq2 = a*x2-b*x1+(a-3*b)*K(1)*x1^3*x2+(a-2*b)*K(2)*x1^2*x2+(a-b)*K(3)*x1*x2-b*(3*K(4)*x1^3*x3+3*K(5)*x1^3*x3^2+K(6)*x1*x3)+a*(3*K(7)*x2^3*x3+3*K(8)*x2^3*x3^2+K(9)*x2*x3^4);
eq3 = a*x3-c*x1+c*(3*K(1)*x1^3*x2+2*K(2)*x1^2*x2+K(3)*x1*x2)+(a-3*c)*K(4)*x1^3*x3+(2*a-3*c)*K(5)*x1^3*x3^2+(a-c)*K(6)*x1*x3+a*(K(7)*x2^3*x3+2*K(8)*x2^3*x3^2+4*K(9)*x2*x3^4);
f1 = eval(['@(x1,x2,x3,a,b,c)',vectorize(eq1)]);
f2 = eval(['@(x1,x2,x3,a,b,c)',vectorize(eq2)]);
f3 = eval(['@(x1,x2,x3,a,b,c)',vectorize(eq3)]);
f = @(x,a,b,c) [f1(x(1),x(2),x(3),a,b,c); f2(x(1),x(2),x(3),a,b,c); f3(x(1),x(2),x(3),a,b,c)];
a=[0.2 0.1 0.6 0. 0.3];
b=[.801 0.4 0.8 0.5 0.4 0.8147];
c=1-a-b;
x0 = [0 0 0];
options=optimset('MaxFunEvals',1000,'TolFun',1e-10);
[x,fval,exitflag] = arrayfun(@(a,b,c) fsolve(@(x) f(x,a,b,c),x0,options),a,b,c,'UniformOutput',false)复制代码
您好!非常感谢,打扰您很多,非常抱歉!
关注者: 284
qicenmatlab 发表于
您好!非常感谢,打扰您很多,非常抱歉!
不用客气 :-)
另外,回帖的时候请点击我帖子下方的 “回复” 按钮,这样我才能收到系统自动提示,知道你有新问题。
站长推荐 /2
Powered by工作趣事 之 通常处理程序使用Session(个人亲身经历) - 编程当前位置:& &&&工作趣事 之 通常处理程序使用Session(个人亲身经历工作趣事 之 通常处理程序使用Session(个人亲身经历)&&网友分享于:&&浏览:4次工作趣事 之 一般处理程序使用Session(个人亲身经历)
工作一个月了 接到一个任务
制作一个图库的网站 我用了一天的时间 设计了一下网站的各个功能 &开始制作
一开始我做的是“登陆”和“注册”
这些感觉不怎么难 我定的目标是用一天的时间完成
注册的时候 有一个验证码 我先简单的介绍一下验证码的原理 我们在网上见到的验证码基本也是这样的原理:
1.根据要求 随机生成一个字符串 可以是只含有数字 也可以含有数字和字母
2.创建一个Session 将生成的字符串放在创建的Session中
3.最后 在后台中 将用户输入的验证码和Session中保存的验证码做比较&
如果相同 则说明用户输入的验证码正确 则 可以注册
我用生活中的一个例子来说一下:
您可以把Session当做成一个放东西的容器 将一个物品(随机生成的字符串)放在这个容器中
然后再拿来一个相同的物品(用户输入的验证码) 和容器中的物品比较
原理说明白了 说说我是怎么做的吧&
我在一般处理程序里面(.ashx)创建了随机数 ,创建的随机数的图片 并且 创建了Session
但是在.aspx文件中使用Session的时候 犯了一个特别幼稚的错误
先来看一下我在一般处理程序(.ashx)里面创建Session 并给Session赋值
再来看一下在.aspx中使用Session 和 报错信息
看到这里 也许您已经看出错误所在了&
对 我没有实现 &IRequiresSessionState &&接口
授人鱼不如授人以渔 我就来说说为什么一般处理程序(.ashx)要实现这个接口 而 .aspx却不用实现这个接口 直接拿来能用:
在.aspx文件中 微软以及帮我实现了IRequiresSessionState & 在Reflector反编译器中 我们可以查看.aspx是怎么实现&IRequiresSessionState & 接口的
而在一般处理程序里面(.ashx) 需要我们手动的实现&IRequiresSessionState & 接口
在第9和第11个事件之间 有一个事件会接受浏览器发过来的SessionID 并根据值到服务器的Session池中找到对应的Session对象 将其引用赋值给当前页面上的Session对象
他先尝试将页面类对象转换成 IRequiresSessionState 接口 如果转换不成功 则不加载Session对象&
如果转换成功 则会从请求报文中拿到Cookie里的SessionID & & 最后在Session池中找到对应的Session对象 将引用赋值给当前页面的Session
话说回来 IRequiresSessionState 到底是什么什么接口 这么重要?
呵呵 他是一个标示接口 里面什么都没有&
知识标示了 当前页面中使用了Session
只要实现了这个接口 在一般处理程序里面 就可以自用的使用了!!!
这样的低级错误 以后我是再也不会犯了 希望这篇文章 能对大家有所帮助&
& & & & 关于Session的一些原理 大家可以看&ASP.Net原理篇
之 Session
由于个人能力有限 错误的地方还请您指出 以便我改进 &万分感谢!!!
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有

我要回帖

更多关于 宏程式编程实例 的文章

 

随机推荐