[c语言编程二分法解方程]这段代码是求解方程f(x)=0在区间[-10,10]上的根的数值解。 方法的思想就是:一直选取区间中间的数值,如果发现中间的函数值与一侧函数值,异号,那么说明解在这个更小的区间中,采用e...+阅读
#include//y'=x+ydoublef1(doublex,doubley){returnx+y;}//y'=3y/(1+x)doublef2(doublex,doubley){return3*y/(1+x);}//y'=y*y;doubleftest(doublex,doubley){returny*y;}voidsolve(double(*func)(doublex,doubley),doubleminX,doublemaxX,doubley0,doubleh,doubleresult[][7],int*resultNum){doubleK1,K2,K3,K4;doubleXn_1,Yn_1;intn=0;result[n][0]=n;result[n][1]=minX;result[n][2]=0;result[n][3]=0;result[n][4]=0;result[n][5]=0;result[n][6]=y0;for(n=1;n*h
我有个偏微分方程的求解问题。这题目应该是用二阶差分方式解得吧
function varargout=liu(varargin)
N=5;%改这个N=10 15
a=0;b=1;c=0;d=1;h=1/(N-1);
f=inline('-2*(x^2+y^2)','x','y');
g1x=inline('0');
g2x=inline('x^2');
g1y=inline('0');
g2y=inline('y^2');
chfenmethed(f,g1x,g2x,g1y,g2y,a,b,c,d,h);
function [X,Y,Z]=chfenmethed(f,g1x,g2x,g1y,g2y,a,b,c,d,h)
%求解下问题
%u_xx+u_yy=-f(x,y) x,y 在区域内 x in a %u=g(x,y) x,y在边界上 %u=g(a,y)=g1y u=g(b,y)=g2y c= %u=g(x,c)=g1x u=g(x,d)=g2x a %h离散x方向的步长 %h离散y方向的步长 N=10000; x=a:h:b; y=c:h:d; m=length(x); n=length(y); ee=0.00001; [Y,X]=meshgrid(y,x); Uliu=f0(X,Y); Z=zeros(m,n); U=zeros(m,n); for i=2:m-1 U(i,1)=feval(g1x,x(i)); U(i,n)=feval(g2x,x(i)); end for j=1:n U(1,j)=feval(g1y,y(j)); U(m,j)=feval(g2y,y(j)); end %while true %下为高斯 赛德尔迭代法 %---------------------------------------------------------------------- for k=1:N U0=U; for i=2:m-1 for j=2:n-1 s1=U(i+1,j)+U(i,j+1)+U(i-1,j)+U(i,j-1); s2=U(i+1,j+1)+U(i-1,j+1)+U(i+1,j-1)+U(i-1,j-1); s3=feval(f,x(i+1),y(j))+feval(f,x(i-1),y(j))... +feval(f,x(i),y(j+1))+feval(f,x(i),y(j-1)); U(i,j)=(4*s1+s2-h^2/2*s3-4*h^2*feval(f,x(i),y(j)))/20; end end if max(max(abs(U0-U))) break end end %----------------------------------------------------- mesh(X,Y,U) hold on plot3(X,Y,Uliu,'ro') function z=f0(x,y) %精确解函数 z=(x.*y).^2; 以下为关联文档: 以C语言为工具利用二分法求解方程程序急#include "stdio.h" #include "math.h" float function(float x) { float f; f= x*x-2*x-1; return f; } void main() { float x1,x2,x0,fx1,fx2,fx0; x1=0;x2=3; fx1=function(... c语言二分法求解方程程序#include "stdio.h" #define MAX 100 typedef struct node { int key; }NODE; int binsearch(NODE r[MAX],int k,int n) { int t=1,h=n,m; while(t<=h) { m=(t+h)/2; if(k==r[... c语言二维数组编程问题#include<stdio.h> void main() { int a[2][3]; int i,j; printf("输入一个2*3整型数组\n"); for(i=0;i<2;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); printf("\n输出一个2*3整... C语言编程问题计算薪水float work_hours=0.0f;float pay=0.0f;int day=0;const cents_per_dollar=100;int pay_in_cent=0;pay_in_cent=(int)(pay*cents_per_dollar);printf("input your pay of a w... 急!C语言冒泡排序编程#include <stdio.h> #define MAX_ROW 15 #define MAX_COLUMN 10 void sort(int array[], int count, int arrayIndex) { int compareCount = 0; int moveCount = 0; for(int... C语言编程的while语句问题你怎么判断它只执行了一次呢??? 补充:首先不清楚你的芯片具体是什么型号的,从程序上看应该是PIC16或者pic18系列的。也不清楚晶振频率是多少。 我提出我的怀疑及其推论:首先我怀疑... c语言编程求素数的问题if(a[i],当i=2时;N,而且他们同是代表数组a的下标 那么当i=2时,那么此时的i是2,j);i++) for(j=i+1,你把j=4的a[j]=0。 最后剩下的就都是素数了 楼主主要注意一下i和j的循环 j的循... c语言多线程编程问题C语言中多线程的实现原理就是线程的原理,本人只了解Linux下面的C,linux下面的线程,不就是进程中的一个控制流么,相对来说代码很简单,但是原理却是很复杂,很难说清,还需要自己详细... C语言网络编程问题//UDP服务代码 // Module Name: Receiver.c // // Description: // This sample receives UDP datagrams by binding to the specified // interface and port number and t...